我有这样一个脚本,当标题进入viewport.js和anime.js的视区时,它将动画化:
$(".title").waypoint(function() {
anime.timeline({loop: false})
.add({
targets: '.title span',
rotateY: [-90, 0],
duration: 1300,
delay: (el, i) => 45 * i
});
}, {
offset: '100%'
});
当我多次使用.title类时,当另一个标题进入视区时,所有标题都将再次动画化。我是否用.title1,.title2等复制脚本?还是有更短的路?
这个问题是因为targets
中的.title span
选择器选择了所有元素。
若要仅选择与已触发的路径点相关的元素,请使用this.element
。在那里,您可以找到span
元素来调用anime
。试试看:
$(".title").waypoint(function() {
anime.timeline({
loop: false
}).add({
targets: this.element.querySelectorAll('span'),
rotateY: [-90, 0],
duration: 1300,
delay: (el, i) => 45 * i
});
}, {
offset: '100%'
});