PDA

View Full Version : چرا اسکریپت من درست کار نمی کنه؟



m_feyz
جمعه 16 بهمن 1388, 19:21 عصر
سلام به همه دوستان. اسکریپت زیر برای متن خاصیت onmousover هست. در ابتدای صفحه وب خوب کار می کنه ولی در انتهای صفحه هر چی اسکرول بار رو بیشتر پایین می کشیم متن نمایش داده شده توسط این اسکریپت از نشانگر ماوس فاصله می گیره و بالاتر نمایش پیدا می کنه تا جایی که اگه صفحه وب خیلی بزرگ باشه در لینک های انتهای صفحه متن نمایش داده شده به قدری از نشانگر ماوس فاصله داره که اصلاً دیده نمیشه. مشکل رو چطوری می تونم حل کنم؟

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Randy Bennett (rbennett@thezone.net) -->
<!-- Web Site: http://home.thezone.net/~rbennett/utility/javahead.htm -->

<!-- Begin
function setupDescriptions() {
var x = navigator.appVersion;
y = x.substring(0,4);
if (y>=4) setVariables();
}
var x,y,a,b;
function setVariables(){
if (navigator.appName == "Netscape") {
h=".left=";
v=".top=";
dS="document.";
sD="";
}
else
{
h=".pixelLeft=";
v=".pixelTop=";
dS="";
sD=".style";
}
}
var isNav = (navigator.appName.indexOf("Netscape") !=-1);
function popLayer(a){
desc = "<table cellpadding=3 border=1 bgcolor=F7F7F7><td>";
if (a==1) desc += "JavaScript Source Code 3000 Home Page!";
if (a==2) desc += "Updates on all the latest scripts added to the site!";
if (a==3) desc += "Browser our Table of Contents page!";
if (a==4) desc += "Get JavaScript assistance in our JS forum!";
if (a==5) desc += "Get the answers to our commonly asked JS questions!";
desc += "</td></table>";
if(isNav) {
document.object1.document.write(desc);
document.object1.document.close();
document.object1.left=x+25;
document.object1.top=y;
}
else {
object1.innerHTML=desc;
eval(dS+"object1"+sD+h+(x+25));
eval(dS+"object1"+sD+v+y);
}
}
function hideLayer(a){
if(isNav) {
eval(document.object1.top=a);
}
else object1.innerHTML="";
}
function handlerMM(e){
x = (isNav) ? e.pageX : event.clientX;
y = (isNav) ? e.pageY : event.clientY;
}
if (isNav){
document.captureEvents(Event.MOUSEMOVE);
}
document.onmousemove = handlerMM;
// End -->
</script>
</head>

<BODY OnLoad="setupDescriptions()">

<div id="object1" style="position:absolute; visibility:show; left:25px; top:-50px; z-index:2">layer hidden off the screen</div>

<a href="http://javascriptsource.com (http://javascriptsource.com/)" onMouseOver="popLayer(1)" onMouseOut="hideLayer(-50)">Home Page</a>
<p>
<a href="http://javascriptsource.com/new.html" onMouseOver="popLayer(2)" onMouseOut="hideLayer(-50)">What's New?</a>
<p>
<a href="http://javascriptsource.com/toc.html" onMouseOver="popLayer(3)" onMouseOut="hideLayer(-50)">Site Contents</a>
<p>
<a href="http://javascriptsource.com/forum/" onMouseOver="popLayer(4)" onMouseOut="hideLayer(-50)">JavaScript Forum</a>
<p>
<a href="http://javascriptsource.com/faq/" onMouseOver="popLayer(5)" onMouseOut="hideLayer(-50)">JavaScript FAQs</a>
<p>
<a href="http://javascriptsource.com (http://javascriptsource.com/)" onMouseOver="popLayer(1)" onMouseOut="hideLayer(-50)">Home Page</a>
<p>
<a href="http://javascriptsource.com/new.html" onMouseOver="popLayer(2)" onMouseOut="hideLayer(-50)">What's New?</a>
<p>
<a href="http://javascriptsource.com/toc.html" onMouseOver="popLayer(3)" onMouseOut="hideLayer(-50)">Site Contents</a>
<p>
<a href="http://javascriptsource.com/forum/" onMouseOver="popLayer(4)" onMouseOut="hideLayer(-50)">JavaScript Forum</a>
<p>
<a href="http://javascriptsource.com/faq/" onMouseOver="popLayer(5)" onMouseOut="hideLayer(-50)">JavaScript FAQs</a>
<p>
<a href="http://javascriptsource.com (http://javascriptsource.com/)" onMouseOver="popLayer(1)" onMouseOut="hideLayer(-50)">Home Page</a>
<p>
<a href="http://javascriptsource.com/new.html" onMouseOver="popLayer(2)" onMouseOut="hideLayer(-50)">What's New?</a>
<p>
<a href="http://javascriptsource.com/toc.html" onMouseOver="popLayer(3)" onMouseOut="hideLayer(-50)">Site Contents</a>
<p>
<a href="http://javascriptsource.com/forum/" onMouseOver="popLayer(4)" onMouseOut="hideLayer(-50)">JavaScript Forum</a>
<p>
<a href="http://javascriptsource.com/faq/" onMouseOver="popLayer(5)" onMouseOut="hideLayer(-50)">JavaScript FAQs</a>
<p>
<a href="http://javascriptsource.com (http://javascriptsource.com/)" onMouseOver="popLayer(1)" onMouseOut="hideLayer(-50)">Home Page</a>
<p>
<a href="http://javascriptsource.com/new.html" onMouseOver="popLayer(2)" onMouseOut="hideLayer(-50)">What's New?</a>
<p>
<a href="http://javascriptsource.com/toc.html" onMouseOver="popLayer(3)" onMouseOut="hideLayer(-50)">Site Contents</a>
<p>
<a href="http://javascriptsource.com/forum/" onMouseOver="popLayer(4)" onMouseOut="hideLayer(-50)">JavaScript Forum</a>
<p>
<a href="http://javascriptsource.com/faq/" onMouseOver="popLayer(5)" onMouseOut="hideLayer(-50)">JavaScript FAQs</a>
<p>

<!-- Script Size: 2.93 KB -->
</body>
</html>

mrbm_2007
یک شنبه 25 بهمن 1388, 19:04 عصر
;y = ( (isNav) ? e.pageY : event.clientY )+document.body.scrollTop

m_feyz
پنج شنبه 29 بهمن 1388, 16:29 عصر
;y = ( (isNav) ? e.pageY : event.clientY )+document.body.scrollTop

خیلی خیلی ممنونم از شما کاربر محترم mrbm_2007 . جواب شما خیلی مفید بود.

hajizahiry
چهارشنبه 05 اسفند 1388, 15:19 عصر
شاید به دردت بخوره :
///////گرفتن موقعیت ماوس در netScape///////////////
function getPageEventCoords(evt)
{
var coords = {left:0, top:0};
if (evt.pageX) {
coords.left = evt.pageX;
coords.top = evt.pageY;
}
else if (evt.clientX)
{
coords.left =
evt.clientX + document.body.scrollLeft - document.body.clientLeft;
coords.top =
evt.clientY + document.body.scrollTop - document.body.clientTop;
if (document.body.parentElement && document.body.parentElement.clientLeft)
{
var bodParent = document.body.parentElement;
coords.left += bodParent.scrollLeft - bodParent.clientLeft;
coords.top += bodParent.scrollTop - bodParent.clientTop;
}
}
return coords;
}
///////گرفتن موقعیت ماوس در IE///////////////
function getPositionedEventCoords(evt)
{
var elem = (evt.target) ? evt.target : evt.srcElement;
var coords = {left:0, top:0};
if (evt.layerX) {
coords.left = evt.layerX - borders.left;
coords.top = evt.layerY - borders.top;
}
else if (evt.offsetX)
{
coords.left = evt.offsetX;
coords.top = evt.offsetY;
}
evt.cancelBubble = true;
return coords;
}