如何在 anime.js 中定位 $(this)
How can I target $(this) in anime.js
我正在尝试在 <a>
标签上实现点击动画。有多个 <a>
标签,并且所有标签都具有相同的 class.
我该如何实现?
作为替代方案,我曾尝试使用 $(this).addClass('temp')
将 class 作为临时元素添加到目标元素
我想知道是否有更好的方法来真正做到这一点。
如果我按照上面的方法,我将无法带上延迟的动画。
样本
<script>
$("a").click(function(){
anime({
targets:'a',
opacity:[0,1],
})
});
</script>
您可以简单地将 e.currentTarget
传递给 targets
属性(accepts a DOM node),这样您就可以定位当前 <a>
元素事件监听器是绑定的。或者,您也可以传入 this
:由您决定。
请参阅下面的概念验证。我已将不透明度调整为 0.25,以便您可以在单击元素之前实际看到该元素。
$("a").click(function(e) {
e.preventDefault();
anime({
targets: e.currentTarget,
opacity: [0.25, 1],
})
});
a {
opacity: 0.25;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#">Click me</a>
<a href="#">Click me</a>
<a href="#">Click me</a>
<a href="#">Click me</a>
<a href="#">Click me</a>
或者不需要 jQuery:
直接在 JS 中完成
document.querySelectorAll('a').forEach(el => {
el.addEventListener('click', e => {
e.preventDefault();
anime({
targets: el,
opacity: [0.25, 1],
});
});
});
a {
opacity: 0.25;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#">Click me</a>
<a href="#">Click me</a>
<a href="#">Click me</a>
<a href="#">Click me</a>
<a href="#">Click me</a>
我正在尝试在 <a>
标签上实现点击动画。有多个 <a>
标签,并且所有标签都具有相同的 class.
我该如何实现?
作为替代方案,我曾尝试使用 $(this).addClass('temp')
我想知道是否有更好的方法来真正做到这一点。
如果我按照上面的方法,我将无法带上延迟的动画。
样本
<script>
$("a").click(function(){
anime({
targets:'a',
opacity:[0,1],
})
});
</script>
您可以简单地将 e.currentTarget
传递给 targets
属性(accepts a DOM node),这样您就可以定位当前 <a>
元素事件监听器是绑定的。或者,您也可以传入 this
:由您决定。
请参阅下面的概念验证。我已将不透明度调整为 0.25,以便您可以在单击元素之前实际看到该元素。
$("a").click(function(e) {
e.preventDefault();
anime({
targets: e.currentTarget,
opacity: [0.25, 1],
})
});
a {
opacity: 0.25;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#">Click me</a>
<a href="#">Click me</a>
<a href="#">Click me</a>
<a href="#">Click me</a>
<a href="#">Click me</a>
或者不需要 jQuery:
直接在 JS 中完成document.querySelectorAll('a').forEach(el => {
el.addEventListener('click', e => {
e.preventDefault();
anime({
targets: el,
opacity: [0.25, 1],
});
});
});
a {
opacity: 0.25;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#">Click me</a>
<a href="#">Click me</a>
<a href="#">Click me</a>
<a href="#">Click me</a>
<a href="#">Click me</a>