jQuery scrollTop()是否接受回调函数?

时间:2016-12-01 20:52:01

标签: jquery

在下面的示例代码中,回调函数用作scrollTop()的参数。

http://jsfiddle.net/xjrLN/2/

什么是参数'值回调的i和v?

jQuery(document).ready(function() {
    var is_dragging = false;

    $( 'ul' ).disableSelection().sortable({
        axis: 'y',
        start: function() { is_dragging = true },
        stop: function() { is_dragging = false }
    }).mousemove( function( e ) {
        if( is_dragging ) {
           // **** What are parameters' values i and v of the callback? *****
            $( 'ul' ).scrollTop(function(i, v) {
                var h = $( 'ul' ).height();
                var y = e.clientY - h / 2;
                return v + y * 0.1;
            });
        }
    });
});

示例代码来自帖子 Scrolling a sortable/dragable item's parent container when its border is reached

由于

1 个答案:

答案 0 :(得分:1)

首先,这不是回调函数。在设置值以确保同步执行(例如在animate()中)之后,将触发scrollTop()的回调。而不是设置值,例如$('ul').scollTop('20');一个函数用于计算一个值,然后返回该值。

经过调查并在jQuery论坛上得到反馈后,很明显i返回jQuery选择器集中当前元素的索引,v返回当前值{该元素的{1}}。

scrollTop()
$(window).scroll(function() {
  $('body').scrollTop(function(i, v) {
    console.log(i + ' ' + v);
    // i == index of current element in the selector
    // (zero-based of course)
    // (v == $('body').scrollTop())
  });
});
body {
  height: 600vh;
  width: 600vw;
}