スクロール時にアニメーションをトリガーする方法を見つけようとしていますが、うまくいきません。基本的に、クラスを持つ要素がスクロールされて表示されるたびにアニメーションをトリガーする、タイトルに追加できるクラスが必要です。
jQuery Inviewプラグインを使用してみましたが、思いどおりに動作しませんでした。その後、 Waypoints.jsに切り替えて動作するようになりましたが、完全ではありません。今のところ、初めて要素にスクロールすると要素がアニメーション化されますが、ページを上下にスクロールしても何もしません。アニメーションは一度だけ起動します。
以下は私の現在のコードです。ユーザーがスクロールするたびにアニメーションをトリガーする方法と、ID ではなくクラスに基づいて起動するようにコードを圧縮する方法を誰かが見つけてくれれば、それは本当に素晴らしいことです。(現在、各要素に個別の機能があります。)
PS:アニメーションにはanimate.css、wow.js、textillate.jsを使用しています。
HTML
<h1 class="lettering wow fadeInDown" id="l1" data-in-effect="flipInY">Yo. Check it out.</h1>
jQuery
$(function () {
var l1 = $("#l1");
var waypoint = new Waypoint({
element: document.getElementById('l1'),
handler: function() {
l1.textillate({ in: { effect: 'flipInY' } });
},
offset: 'bottom-in-view',
});
});
ご協力いただきありがとうございます!
編集:スクロールするたびにアニメーションをトリガーする部分的な解決策を見つけました。しかし、私はそれを動作させるように見えるだけですids
. class
新しいタイトルごとに個別の関数を作成するよりも、 a をターゲットにできる方がよいでしょう。のクラスで機能するように次のコードを変更する方法についてのアイデアはあり.lettering
ますか?
// Animate #l1
$(function () {
var animatel1 = $('#l1').textillate({
autoStart: false,
in: { effect: 'flipInY' },
out: { effect: 'fadeOut', sync: true, }
});
var l1 = $("#l1");
var inview = new Waypoint.Inview({
element: $('#l1'),
enter: function(direction) {
},
entered: function(direction) {
animatel1.textillate('in')
},
exit: function(direction) {
animatel1.textillate('out')
},
exited: function(direction) {
}
})
});