首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一个接一个地触发jQuery事件

一个接一个地触发jQuery事件
EN

Stack Overflow用户
提问于 2016-05-05 07:49:42
回答 1查看 830关注 0票数 0

嗨,我正在尝试创建一个动画,其中一个类被添加到完成触发之前只有一个。

代码语言:javascript
运行
复制
$('.flipper').click(function(){
  $('#first').addClass('first-flip');
  $('#second').addClass('second-flip');
  $('#fourth').addClass('fourth-flip');
});

所以

代码语言:javascript
运行
复制
$('#second').addClass('second-flip');

仅在以下情况下才会触发

代码语言:javascript
运行
复制
$('#first').addClass('first-flip');

已经完成了它的过程。

所以另一种解释方法是。

区块A添加了旋转效果,在区块A旋转之后,区块B才会向右移动20px。

我基本上只想知道如何创建按顺序触发的Jquery效果。

EN

回答 1

Stack Overflow用户

发布于 2016-05-05 08:00:55

您希望绑定到transitionendanimationend。下面是一个使用transitionend的示例。在盒子移动完成后,添加一个新的类,开始下一次转换,将盒子变成蓝色。

代码语言:javascript
运行
复制
var mydiv = document.querySelector("#mydiv");

document.querySelector("button").addEventListener("click", buttonHandler);
mydiv.addEventListener("transitionend", onEndHandler)
  
function buttonHandler() {
  mydiv.classList.add("move-left");
}

function onEndHandler() {
  mydiv.classList.add("turn-blue");
}
代码语言:javascript
运行
复制
#mydiv {
  background: red;
  width: 10em;
  height: 10em;
  transition: 1s;
}

#mydiv.move-left {
  transform: translateX(100px);
}

#mydiv.turn-blue {
  background: blue;
}
代码语言:javascript
运行
复制
<div id="mydiv"></div>
<button>Move div</button>

如果你需要jQuery版本,可以在这里找到:

代码语言:javascript
运行
复制
var mydiv = $("#mydiv");

$("button").on("click", buttonHandler);
mydiv.on("transitionend", onEndHandler)

function buttonHandler() {
  mydiv.addClass("move-left");
}

function onEndHandler() {
  mydiv.addClass("turn-blue");
}

不错的资源:https://davidwalsh.name/css-animation-callback

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37040002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档