2

我希望在页面加载后 10 秒左滑动一个元素。但我不希望它完全从页面上消失。我只想让它滑动 200px。然后,当我单击剩余的可见部分时,我希望它滑回右侧。

不太确定如何设置距离......这是我到目前为止所拥有的:

$("#myEl").click(function(){
    $(this).animate({width:'toggle'},500);
});
4

3 回答 3

3
$("#myEl").click(function(){
    if ($(this).hasClass('left')) {
        $(this).animate({ left: '+=200' }, 500).removeClass('left');
    } else {
        $(this).animate({left:'-=200'}, 500).addClass('left');
    }
});

我制作了一个JSFiddle 来演示这一点

于 2012-05-03T20:44:18.360 回答
2

尝试,

$(function () {
   var $myEl = $('#myEl');
   var orgPos = $myEl.position().left;

   $myEl.click(function(){
      //Moves to origPos after click
      $(this).stop(true, false).animate({left: orgPos},500); 
   })
   .animate({left: '-=200'}, 10000); //Animates for 10 secs
});

编辑:DEMO <--用更大的 div 更新

于 2012-05-03T20:49:31.187 回答
1

jsBin 演示

function tabHide(){                             // define a 'HIDE' function
  $('#tab').stop().animate({left:-150},1000); 
}

function tabShow(){                             // define a 'SHOW' function
  $('#tab').stop().animate({left: -1 },1000);
}

// Now let's play with this functions:

setTimeout(function(){                          // run 'HIDE' after 10"
  tabHide();
},10000);

$('#tab').toggle(function(){                    // click toggle 'SHOW' / 'HIDE'
   tabShow();
},function(){
   tabHide();
});

jQuery .toggle()
jQuery .stop()

于 2012-05-03T21:01:33.570 回答