0

我正在处理网页,并使用了本教程:http ://blog.themeforest.net/tutorials/create-a-funky-parallax-background-effect-using-jquery/

现在我想使用“上一个”和“下一个”按钮来控制页面的滚动。我似乎无法找到应该如何工作。

使滑动容器工作的代码是这样的:

$('a.link').click(function () {  
        $('#wrapper').scrollTo($(this).attr('href'), 800);
        setPosition($(this).attr('href'), '#cloud1', '0px', '400px', '800px', '1200px', '1600px', '2000px')
        setPosition($(this).attr('href'), '#cloud2', '0px', '800px', '1600px', '2400px', '2800px', '3200px')
        $('a.link').removeClass('selected');  
        $(this).addClass('selected');
        return false;  
    }); 
});

function setPosition(check, div, p1, p2, p3, p4, p5, p6) {
if(check==='#box1')
    {
        $(div).scrollTo(p1, 800);
    }
else if(check==='#box2')
    {
        $(div).scrollTo(p2, 800);
    }
else if(check==='#box3')
    {
        $(div).scrollTo(p3, 800);
    }
else if(check==='#box4')
    {
        $(div).scrollTo(p4, 800);
    }
else if(check==='#box5')
    {
        $(div).scrollTo(p5, 800);
    }
else 
    {
        $(div).scrollTo(p6, 800);
    }
};

我创建了一个像这样的上一个和下一个按钮

    <input type="button" class="next">
    <input type="button" class="prev">

我试图实现这个选项,但它没有用:http: //jsfiddle.net/ARTsinn/s2TJQ/4/

我认为这应该很简单,但我无法让它发挥作用。提前致谢!

4

1 回答 1

0

我想我现在明白你想要达到的目标。好吧,实际上您要使用的源代码不是很好,这使事情更难解决。

首先,默认情况下给第一个链接“选定”类:

<li><a href="#box1" class="selected link">Home</a></li>

这是点击的原始处理程序(仅供参考/您的理解):

$('a.link').click(function () {  
    $('#wrapper').scrollTo($(this).attr('href'), 800);
    setPosition($(this).attr('href'), '#cloud1', '0px', '400px', '800px', '1200px')
    setPosition($(this).attr('href'), '#cloud2', '0px', '800px', '1600px', '2400px')
    $('a.link').removeClass('selected');  
    $(this).addClass('selected');
    return false;  
});  

现在,您要做的是将它的主体提取到一个方法中,它看起来像这样:

function performScroll(boxHref) {
    $('#wrapper').scrollTo($(boxHref).attr('href'), 800);
    setPosition($(boxHref).attr('href'), '#cloud1', '0px', '400px', '800px', '1200px')
    setPosition($(boxHref).attr('href'), '#cloud2', '0px', '800px', '1600px', '2400px')
    $('a.link').removeClass('selected');  
    $(boxHref).addClass('selected');
}

$('a.link').click(function () {  
    performScroll(this);
    return false;  
});  

现在,您已经提取了 click 方法,我们将在 Next/prev 处理程序中使用它:

$('.next').click(function () {  
    // find current selected item
    var nextBox = $("a", $("li > a.selected").parent().next());
    performScroll(nextBox);
    return false;  
});

这对你有用吗?如果是,那么现在您面临的挑战是:自己实现“上一个”按钮!:)

编辑

更正了 .next 处理程序

于 2013-07-04T09:06:55.800 回答