2013-02-15 31 views
0

我有一個iframe用於顯示我的網頁的主要內容;不過,無論鼠標指向何處,我都想讓IFRAME滾動。我不希望我的訪問者因無法滾動而感到困惑,除非他們的鼠標懸停在iframe上。這可能嗎?用鼠標懸停在身體​​上的任何地方滾動iframe?滾動一個iframe,而不必鼠標移動它

我不會鏈接任何代碼,因爲我唯一相關的代碼是iframe> </iframe>標記<。

(身體本身不可滾動,隱藏滾動條)

+0

我找不到任何與谷歌或本網站相關的東西:( – 2013-02-15 17:55:51

+0

我認爲這將是可能的使用JavaScript以某種方式......我不是太知道JS的創建它雖然。東西與定義整個< body>的鼠標懸停區域被鏈接到iframe,所以滾動鼠標滾輪在框架邊界外仍然滾動它 – 2013-02-15 18:41:20

+0

我想我需要有人給我寫一段代碼,基本上說:「body.hover(或body onmouseover)滾動iframeid「或類似的哈哈,就像我說我在JS失敗。 – 2013-02-15 18:50:42

回答

0

好的。我放在一起爲這個相當快速和骯髒的解決方案,包括以下步驟:

  • 添加一個「id」你元素。 (在我的示例中,我使用了id="myFrame"
  • jQuery Mousewheel插件連同最新的jQuery一起添加到您的html頁面的標題中。


<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script type="text/javascript" src="https://raw.github.com/brandonaaron/jquery-mousewheel/master/jquery.mousewheel.js"></script> 


  • 最後在HTML主體的端部或的IFRAME本身後添加以下JavaScript代碼。


<script type="text/javascript"> 
    var scrolloffset = 30; // amount of scrolling per mousewheel step 

    var myFrame = $('#myFrame'); // the iframe ID 
    var frameScrollPosition = 0; 

    $(window).mousewheel(function(event,delta){ 

     // reset stored offset so that it matches with iframe's 
     frameScrollPosition = myFrame.contents().scrollTop(); 

     var frameHeight = myFrame.contents().height() - myFrame.height(); 

     if(delta > 0){ 
      var newPosition = frameScrollPosition - scrolloffset; 
     } else { 
      var newPosition = frameScrollPosition + scrolloffset; 
     } 

     if(newPosition < 0){ 
      newPosition = 0; 
     } 

     if(newPosition >= frameHeight){ 
      newPosition = frameHeight; 
     } 

     frameScrollPosition = newPosition; 
     myFrame.contents().scrollTop(frameScrollPosition); 

    }); 
</script> 

確保您download插件,並從GitHub像我這樣不叫。這只是爲了測試和概念驗證。

+0

你說什麼,但沒有什麼不同是發生:(在Chrome,Safari和Firefox測試。這項工作爲你測試它嗎? – 2013-02-23 19:39:36

+0

可能與此代碼衝突的事情是,iFrame本身不滾動 - 我使用iframe源代碼中的滾動條而不是讓iframe本身滾動它的內容問題是否可以解決?(如果我改變它,以便iframe滾動,我會在某些瀏覽器中丟失自定義滾動條。) – 2013-02-23 19:41:37

+0

(抱歉,延遲響應,我在度假!)感謝您的幫助: ) – 2013-02-23 20:48:40