2012-07-26 59 views
0

我将两个脚本组合在一起:滚动条和内容推子。当我交换内容(淡入淡出)时,具有大量内容的div使得滚动div超长。我正在阅读内容滚动的插件演示(http://manos.malihu.gr/jquery-custom-content-scroller),您可以在加载不同内容时使用$(selector).mCustomScrollbar("update");来使div相应地调整。调整滚动格的高度

我知道代码需要在我的淡入淡出的脚本中,但在哪里?这是淡化的脚本,它会去哪里?

<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){ 
(function($) { 
    $.fn.Fader = function() { 
     this.each(function() { 
      $('.clickme').bind('click', function(e) { 
       e.preventDefault(); 
       $("#mediaswap div").fadeOut(); 
       $("#mediaswap div" + $(this).attr('name')).fadeIn(); 
      }) 
     }); 
    } 
})(jQuery); 


$(function() { 
    $('#mediaswap').Fader(); 
}); 
});//]]> 

</script> 

回答

3

我已经回复了您对该帖子的评论,但我也在此处撰写。

既然你淡入/淡出的div,你必须调用Update方法作为回调至.fadeIn()函数,因此它更新动画完成后滚动条:

$("#mediaswap div" + $(this).attr('name')).fadeIn(function(){ 
    $(this).mCustomScrollbar("update"); 
}); 

此外,有一个额外的选项参数时,你最初调用插件,你可以使用,来检查内容的大小,并自动更新的滚动条,如果它的变化:

$("#mediaswap div").mCustomScrollbar({ 
    advanced:{ updateOnContentResize:true } 
}); 

使用updateOnContentResize选项,取决于你的代码的其余部分(在那里你调用插件),所以我建议使用第一种方法。

0

我建议检查div来看看它的使用是这样的动画:

var wait = setInterval(function() { 
     if(!$("#mediaswap div").is(":animated")) 
     { 
       clearInterval(wait); 
       //put the code in here because it checks 
        for whether the DIV is currently animated. 
      } 
     }, 200); 

您可以更改的时间间隔,如果它需要动画较长时间才能完成的动画。

+0

该代码会在})jQuery);和$(功能(){或没有关系? – 2012-07-26 17:03:01

+0

顺便说一句,没有工作:( – 2012-07-26 17:10:12

+0

有没有其他人有我的建议吗?我似乎无法得到这个工作! – 2012-07-26 21:05:34