单击时向下滚动的脚本

时间:2014-02-19 14:24:30

标签: javascript jquery html css

我想创建一个Jquery脚本,只要用户点击,它就会向下滚动到下面的下一个div。

我从顶部有一个每个DIV的像素偏移数组 我不知道如何循环或 计算点击次数。

jQuery(document).ready(function(){
    var move=[0,642,1725,2393,3036,6097,6991];
    var i=0;
    var duration = 500;

    jQuery(".next").click(function(){
        //event.preventDefault();

        jQuery('html, body').animate({scrollTop: move[i]+'px'}, duration);   
    })      
});

2 个答案:

答案 0 :(得分:1)

只需在处理程序中递增它吗?

$(function() {
    var move=[0,642,1725,2393,3036,6097,6991],
        i = 0,
        duration = 500;

    $('.next').on('click', function(e) {
        e.preventDefault();
        $('html, body').animate({scrollTop: move[i]+'px'}, duration);
        i++;
    });
});

我很想让jQuery获取你想要滚动到的元素的offset().top位置,否则你每次修改代码或内容时都需要更改数组值...

您还可能需要在函数回调中进行一些检查以避免溢出:

$(function() {
    var move=[0,642,1725,2393,3036,6097,6991],
        i = 0,
        duration = 500;

    $('.next').on('click', function(e) {
        e.preventDefault();
        if(i < move.length)
        {
            $('html, body').animate({scrollTop: move[i]+'px'}, duration);
            i++;
        }
    });
});

答案 1 :(得分:1)

尝试i = (i == 7)?i=0:i;move[i++]

jQuery(document).ready(function () {
    var move = [0, 642, 1725, 2393, 3036, 6097, 6991];
    var i = 0;
    var duration = 500;
    jQuery(".next").click(function () {
        //event.preventDefault();
        i = (i == 7)?i=0:i;
        jQuery('html, body').animate({
            scrollTop: move[i++] + 'px' //set current value and increment it by 1
        }, duration);
    })
});