1

我可以将按钮移动到左侧,但之后我如何再次将其移动到右侧。我也可以在这里使用延迟吗?

这是我尝试过的代码:

  $(document).ready(function () {
      example_animate(10);


  });

  function example_animate(px) {

     $('#Button1').animate({
         'marginLeft': px

     });
 }
4

5 回答 5

1

你可以使用它,它对我来说很完美,它会不断地来回移动你的元素,你也可以改变动画速度。

function animatethis(targetElement, speed) {
        $(targetElement).animate({ marginLeft: "+=10px" },
{
    duration: speed,
    complete: function () {
        targetElement.animate({ marginLeft: "-=10px" },
        {
            duration: speed,
            complete: function () {
                animatethis(targetElement, speed);
            }
        });
    }
)};
}

使用它来实现:

animatethis($('#controlid'), 1500);
于 2013-06-21T12:40:34.590 回答
0

如果不查看您的 HTML 和 CSS,则无法正确回答,但您所做的是正确的。只需使用负值调用您的 example_animate()

IE

example_animate(-10);

或者,如果您想将其恢复到原始值(假设最初它的边距为 0)

example_animate(0);

注意:这可能不是制作动画的最佳方式

于 2013-06-21T12:39:19.320 回答
0

是的,animate函数采用一个在动画完成后调用的函数。所以你可以这样做:

 $(document).ready(function () {
      example_animate(100);
  });

  function example_animate(px) {   
     $('#Button1').animate({
         'marginLeft': px
     }, function(){
       $('#Button1').animate({
         'marginLeft': 1
       });
     });
 }

http://jsbin.com/ixajol/1/edit

于 2013-06-21T12:40:31.417 回答
-1

只在右边做同样的事情,如果你能让它向左走,那并不难。

于 2013-06-21T12:38:09.390 回答
-1

也许

var button_init_marginLeft;
$(document).ready(function () {
   button_init_marginLeft = $('#Button1').css("marginLeft");
   example_animate(10, true);
   example_animate(null, false);
});

function example_animate(px, to_left) {
  if (to_left)
  {
    $('#Button1').animate({
      'marginLeft': px
    });
  }
  else
  {
    $('#Button1').animate({
      'marginLeft': button_init_marginLeft
    });
  }
}

?

于 2013-06-21T12:42:29.017 回答