0

右の 300px までスクロールしたときにコールバックを取得するにはどうすればよいですか?

<div id="container">

    <div class="scrollable">
        this will be 6000px wide
    </div>

</div>

CSS

#container {width: 900px; overflow: hidden;}
.scrollable {width: 6000px; overflow-x: scroll;}

js (自由に書き直してください。例としてこれを試しただけです)

$('#container').scroll(function (evt) {
    var target = $(evt.currentTarget);
    horizontal_scroll = target.scrollLeft();
    if (previous_scroll < horizontal_scroll && horizontal_scroll % 100 == 0) {
        previous_scroll = horizontal_scroll;
        alert("You've scrolled 300px to the right");
    }

});
4

1 に答える 1

0

jQuery の$.offset()メソッドを使用して、内側がどれだけdiv移動したかを判断し、次のように -300px (負) を超えるとアラートを発生させることができます。

var alerted = false; // prevents unlimited alerts
$('#container').on('scroll', function(e){
    var el = $(this),
        os = $('.scrollable',this).offset();

    if (os.left <= -300 && alerted !== true){
        alert('Scrolled 300px');
        alerted = true; // prevent unlimited alerts
    }
});

ここでフィドルを更新しました:http://jsfiddle.net/4upYj/

これが役立つことを願っています!

于 2013-02-28T22:23:10.757 に答える