vueでカスタムディレクティブを勉強してますが、scrollのカスタムディレクティブ設定でよく下記を見ますが、
if文で何をやっているのか知りたいです。
js
1inserted(el, binding) { 2 let f = (evt) => { 3 if (binding.value(evt, el)) { 4 window.removeEventListener('scroll', f) 5 } 6 } 7 window.addEventListener('scroll', f) 8},
v-scrollで呼び出しているところは、methodsに記載した関数を指定しています。
おそらくif文の判定式で関数を呼び出しているんだろうなと思うのですが、
このif文がtrueになるパターンがわからず困っています。
私の方で実装し、いろんな操作をしてデバッグしましたが、入ることがなかったので、どのような場合を想定しているのか、分かる方いらっしゃたら教えていただきたいです。
私の実装の全文
<div class="SummaryPrices" v-scroll="handleScroll" :class="{ 'isScroll': isScroll && !isVisible }">
js
1 directives: { 2 scroll: { 3 inserted(el, binding) { 4 let f = (evt) => { 5 if (binding.value(evt, el)) { 6 window.removeEventListener('scroll', f) 7 } 8 } 9 window.addEventListener('scroll', f) 10 }, 11 } 12 }, 13 methods: { 14 handleScroll(evt, el) { 15 clearTimeout(this.toggleScroll) 16 17 this.toggleScroll = window.setTimeout(() => { 18 this.isScroll = false 19 }, 500) 20 21 if (this.isScroll) { 22 return 23 } 24 this.isScroll = true 25 }, 26 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/15 03:48