使用slideUp / slideDown Jquery时停止页面滚动

时间:2015-03-14 10:35:46

标签: jquery animation

以下是我对html的简化提取:

<div id="data-table"> ... some data ... </div>

<ul class="pagination">
  <li><a href="javascript:void(0)" onclick="ReDrawTable('2')">2</a></li>
  <li><a href="javascript:void(0)" onclick="ReDrawTable('3')">3</a></li>
  <li><a href="javascript:void(0)" onclick="ReDrawTable('3')">3</a></li>
</ul>

function ReDrawTable(pageId) { 
  jQuery('#data-table').slideUp('slow');
  RequestData(pageId);     
}

jQuery效果&#34; slideUp&#34;有时会滚动页面。有没有机会让它停下来?

作为解决方案,我发现我需要返回 false; ,但仍然无法找到正确的解决方案。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

当元素向上滑动时,这将保持滚动条位置。


    var v = 0;  
    var bd = jQuery('body').get(0);
    jQuery('#test').slideUp({easing: "linear", step: function(now, tween) {
                        if(tween.prop == "height"){
                            if(v == 0){
                                v = now;
                            }else{
                                var k = v - now;
                                bd.scrollTop -= k;
                                v = now;
                            }
                        }
                    }, duration: 400, complete: function() { 

                    }
                });

答案 1 :(得分:0)

为数据表div提供一些宽度和高度,以便它不会离开浏览器窗口并滚动。

例如:

#data-table{
    width:200px;
    height:150px;
    overflow:scroll;    
}

你可以参考我刚刚创建的这个小提琴。 http://jsfiddle.net/n7us1Lxz/