2013-03-27 36 views
1

在可滾動區域內調用疊加層。使用tinyscrollbar插件([http://www.baijs.nl/tinyscrollbar/][1]),當調用疊加層時,我想將tinyscrollbar中的滾動選項設置爲false。這是標頭中的腳本:如何設置jquery tinyscrollbar滾動:重疊中爲false

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#scrollbar2').tinyscrollbar({ scroll: true }); 
    }); 
</script> 

這是覆蓋腳本:

<script> 
    $(document).ready(function() { 
     $("img[rel]").overlay({ 
      onBeforeLoad: function (event) { 
       $('#scrollbar2').tinyscrollbar({ scroll: false }); 
      }, 
      onClose: function (event) { 
       $('#scrollbar2').tinyscrollbar({ scroll: true}); 
      } 
     }); 
    }); 
</script> 

正如你所看到的,在onBeforeLoad,我嘗試滾動設置爲false,OnClose中設置回沒錯,但是這些都被忽略了。有點新的jquery,所以不知道如何動態地改變這些選項。設置滾動選項後嘗試調用tinyscrollbar_update(),但沒有任何效果。不知道如何做到這一點...

回答

0

雖然我不能想出任何解決方案,而不是添加代碼到tinyscrollbar源,我沒有想出一個解決方法。由於在加載頁面之後獲取tinyscrollbar的唯一方法是在我的腳本中調用tinyscrollbar_update(),在onBeforeLoad中調用覆蓋功能,我將封閉的「.overview」容器的高度設置爲小於最小高度調用滾動條,然後調用tinyscrollbar_update()。由於tinyscrollbar發現它不需要渲染,所以它消失了。然後,在onBeforeClose中,我只是將高度重置爲原來的值,再次調用tinyscrollbar_update()並重新顯示滾動條。

這裏是修改後的代碼:

<script> 
    $(document).ready(function() { 
     $('#scrollbar2').tinyscrollbar(); 

     $('img[rel]').overlay({ 
      oneInstance: false, 
      onBeforeLoad: function (event) { 
       $('.overview').css('height','150px'); 
       $('#scrollbar2').tinyscrollbar_update(); 
      }, 
      onBeforeClose: function (event) { 
       $('.overview').css('height','auto'); 
       $('#scrollbar2').tinyscrollbar_update(); 
      } 
     }); 
    }); 
</script>