2011-07-12 319 views
0

本質上,它應該是一個滾動的iFrame,一旦它觸及底部,重置到頂部。這些功能都可以正常工作。但是,(注意這是在一個.asp文件中)我還需要一個函數,當用戶將鼠標懸停在窗口上時,停止滾動。它可以工作,但是當用戶將鼠標放在窗口周圍時,不要讓鼠標保持靜止,滾動就會發生,事實上,它甚至會更快地滾動。有什麼建議麼?滾動鼠標滾動窗口滾動

<html> 
    <head> 
     <link href="intranet.css" rel="stylesheet" type="text/css"> 
     <style> 
     </style> 
     <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.2.min.js" type="text/javascript"></script> 
     <script type="text/javascript"> 
      var num2 = 3; 
      function getheight() { 
       console.log(num2); 
       var myWidth = 0, 
      myHeight = 0; 
       if (typeof (window.innerWidth) == 'number') { 
        //Non-IE 
        myWidth = window.innerWidth; 
        myHeight = window.innerHeight; 
       } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { 
        //IE 6+ in 'standards compliant mode' 
        myWidth = document.documentElement.clientWidth; 
        myHeight = document.documentElement.clientHeight; 
       } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { 
        //IE 4 compatible 
        myWidth = document.body.clientWidth; 
        myHeight = document.body.clientHeight; 
       } 
       var scrolledtonum = window.pageYOffset + myHeight + 2; 
       var heightofbody = document.body.offsetHeight; 
       if (scrolledtonum >= heightofbody) { 
        window.scroll(0, 0); 
       } 
      } 

      window.onscroll = getheight; 

      function pageScroll() { 
       num2 = 3; 
       clearTimeout(scrolldelay); 
       pageScroller(); 
      } 
      function unpageScroll() { num2 = 0; } 
      function pageScroller() { 
       window.scrollBy(0, num2); 
       scrolldelay = setTimeout('pageScroller()', num); 
      } 
      var num = 50; 
      window.onmouseout = pageScroll; 
      window.onmouseover = unpageScroll; 
     </script> 
    </head> 
    <body onLoad="pageScroller()"> 
    <p></p> 
    <br /> 
    <p></p> 
    <br /> 
    <div id="datacontainer" style="position:relative;width:100%;text-align:center;" onMouseover="unpageScroll" onMouseout="unpageScroll"> 

    <!-- ADD YOUR SCROLLER COMMENT INSIDE HERE---------------------> 
    <font face="Arial, Helvetica, sans-serif" size="1"> 
    <br> 
    <center> 
    <font size=2> 
<!-- CONTENT--> 
<!-- Closing tags ---> 

回答

0

這個簡單的腳本似乎工作,也許你可以從中推斷如何改變你的腳本:http://jsfiddle.net/xkuZF/1/

function func() { 
    document.body.scrollTop++; 
} 

document.body.onmouseover = function() { 
    clearInterval(interval); 
}; 

document.body.onmouseout = function() { 
    interval = setInterval(func); 
}; 

var interval = setInterval(func); 
+0

我運行它時出現錯誤:未捕獲的類型錯誤:無法設置null屬性的'onmouseout' - 任何想法? – Guy

+0

@Guy:這意味着'document.body'是'null'(非常不可能 - 在你的場景中可能嗎?)。如果你使用'document.onmouseout'呢? – pimvdb

+0

是的,我相信是的。什麼會表明這一點?請注意,我在iFrame中使用腳本,這會對我應該使用的代碼產生影響嗎?另請注意,該頁面是asp。 – Guy