javascript - jQuery 动画无限不起作用

标签 javascript jquery animation

我有这个代码

var goRight = function() {
  $(this).animate({'left:' '40px'}, 1000, goLeft);
};

var goLeft = function() {
  $(this).animate({'left:' '-40px'}, 1000, goRight);
};

var main = function() {
  $('.square').hover(function() {
    $(this).toggleClass('active');
  });
$('.square').goRight();
};

$(document).ready(main);

它应该将正方形(div)向右移动,然后无限地移回左侧,并在用户将鼠标悬停在其上时将其变为蓝色。但这不起作用。问题可能出在 goRightgoLeft 函数中。因为如果我完全删除它们,悬停会很好地改变颜色。当这些功能都没有时,就没有任何作用了。

最佳答案

你需要像这样进行链接

$.fn.goRight = function() {
  this.animate({
    'left': '40px'
  }, 1000, function() {
    $(this).goLeft()
  });
  return this;
};

$.fn.goLeft = function() {
  this.animate({
    'left': '-40px'
  }, 1000, function() {
    $(this).goRight()
  });  
  return this;
};

var main = function() {
  $('.square').hover(function() {
    $(this).toggleClass('active');
  });
  $('.square').goRight();
};

$(document).ready(main);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div style="width:100px;height:100px;background:black;position:relative;" class="square"></div>

有关 jQuery 插件开发的更多信息:https://learn.jquery.com/plugins/basic-plugin-creation/

关于javascript - jQuery 动画无限不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33449858/

相关文章:

javascript - jQuery inArray() 的返回值

jquery - 如何用span id替换click函数

javascript - 进行 ajax 调用时如何尊重客户端验证

c# - GetKeyDown 输入仅播放动画的第一帧

html - 如何使链接颜色不覆盖动画文本颜色

animation - Unity Animator 默认图层状态在第一帧卡住

javascript - 如何防止 React js 和 React-beautiful-dnd 中的原始容器掉落?

javascript - 在元素的父元素之后插入

javascript - Ionic 2 Angular 2 - 无法从方法访问 NavController

c# - 如何显示父DIV中的所有div