如何使用jQuery在div / on页面上滑动div

时间:2011-09-26 00:15:47

标签: jquery slider

我正在尝试根据点击的按钮/链接创建一个在页面上滑动div的功能。

基本结构:

<div class="button"><a href="#">Click Box #1</a> </div>
<div class="button"><a href="#">Click Box #2</a> </div>
<div class="button"><a href="#">Click Box #3</a> </div>

<div id="container">

    <div id="box1" class="box">Box #1</div>
    <div id="box2" class="box">Box #2</div>
    <div id="box3" class="box">Box #3</div>

</div>

目前我正在使用

$('.button').click(function() {
    $('.box').each(function() {

但是当然只能作为一种循环,它只会滑动第一个和最后一个div,如何让每个按钮滑出然后在相应的div中。

到目前为止的示例http://jsfiddle.net/ykbgT/538/

2 个答案:

答案 0 :(得分:2)

如果您总是想要显示第n个框,其中n是您单击的链接的索引,请尝试以下操作:

$('.button').click(function() {
    var index = $(this).index(".button");
    var $box = $(".box:eq(" + index + ")");

    $(".box").not($box).animate({
        left: '150%'
    }, 500);

    if ($box.offset().left < 0) {
        $box.css("left", "150%");
    } else if ($box.offset().left > $('#container').width()) {
        $box.animate({
            left: '50%',
        }, 500);
    }
});

更新示例: http://jsfiddle.net/andrewwhitaker/2uV2h/

答案 1 :(得分:0)

最灵活的方法是将自定义属性添加到DIV标记,该标记具有相应框ID的名称。例如:

<div class="button" boxid="box1">....

然后在你的点击功能中:

$('.button').click(function() {
    mybox=$(this).attr("boxid");
    $(mybox).[whatever code you need to slide the DIV in and out of the screen]
    ....
}