2013-03-27 56 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> 
相关问题