2015-03-14 2 views
0

Вот упрощенное извлечение из HTML у меня есть:Остановка прокрутки страниц при использовании slideUp/slideDown Jquery

<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 эффект "slideUp" иногда прокручивает страницу. Есть ли шанс остановить его?

В качестве решения я обнаружил, что мне нужно вернуть false;, но до сих пор не может найти правильное решение.

Заранее спасибо.

ответ

0

Дайте некоторую ширину и высоту для вашего разделителя данных, чтобы он не вышел из окна браузера и прокрутки.

например:

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

вы можете обратиться к этой скрипке я только что создал. http://jsfiddle.net/n7us1Lxz/

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() { 

        } 
       }); 

Смежные вопросы