teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

追記

2018/12/04 11:23

投稿

okpk
okpk

スコア38

title CHANGED
File without changes
body CHANGED
@@ -21,6 +21,7 @@
21
21
  ```
22
22
 
23
23
  各p要素には上下にmargin100px程度あるとします。
24
+ 現時点でhoge1にスクロールしたタイミングでhoge4まで全てcssが適用されるので、これを各々のタイミングで処理したいです。
24
25
  ```indexVue
25
26
  <template>
26
27
  <div>

4

追記

2018/12/04 11:23

投稿

okpk
okpk

スコア38

title CHANGED
File without changes
body CHANGED
@@ -3,4 +3,53 @@
3
3
  ふわっと出現させたい要素にそれぞれv-scrollを付与しそれぞれのタイミングでcss等が付与される処理を作りたく公式ドキュメントを触って見たのですが(https://jp.vuejs.org/v2/cookbook/creating-custom-scroll-directives)、
4
4
  一番上に付与したv-scroll要素が判定に入るたびに全ての要素にcssが付与されてしまいます。
5
5
 
6
- 各要素それぞれのタイミングでcssを付与するにはどのように書けば良いのでしょうか。
6
+ 各要素それぞれのタイミングでcssを付与するにはどのように書けば良いのでしょうか。
7
+
8
+ ```scrolljs
9
+ import Vue from 'vue'
10
+
11
+ Vue.directive('scroll', {
12
+ inserted: function (el, binding) {
13
+ let f = function (evt) {
14
+ if (binding.value(evt, el)) {
15
+ window.removeEventListener('scroll', f)
16
+ }
17
+ }
18
+ window.addEventListener('scroll', f)
19
+ }
20
+ })
21
+ ```
22
+
23
+ 各p要素には上下にmargin100px程度あるとします。
24
+ ```indexVue
25
+ <template>
26
+ <div>
27
+ <p v-scroll="handleScroll">hoge1</p>
28
+ <p v-scroll="handleScroll">hoge2</p>
29
+ <p v-scroll="handleScroll">hoge3</p>
30
+ <p v-scroll="handleScroll">hoge4</p>
31
+ </div>
32
+ </template>
33
+ <script>
34
+ export default {
35
+ methods: {
36
+ handleScroll: function (evt, el) {
37
+ if (window.scrollY > 50) {
38
+ el.setAttribute(
39
+ 'style',
40
+ 'opacity: 1; transform: translate3d(0, -10px, 0)'
41
+ )
42
+ }
43
+ return window.scrollY > 100
44
+ }
45
+ }
46
+ }
47
+ </script>
48
+ ```
49
+
50
+ nuxt.config.jsでpluginとして読み込んでいます。
51
+ ```nuxtconfigjs
52
+ plugins:[
53
+ '~plugins/scroll.js'
54
+ ]
55
+ ```

3

Nuxtタグ削除

2018/12/04 11:08

投稿

okpk
okpk

スコア38

title CHANGED
File without changes
body CHANGED
File without changes

2

誤字

2018/12/04 10:48

投稿

okpk
okpk

スコア38

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- カスタムディレクティブの使い方について質問です。
1
+ カスタムディレクティブ(スクロール処理)の使い方について質問です。
2
2
 
3
3
  ふわっと出現させたい要素にそれぞれv-scrollを付与しそれぞれのタイミングでcss等が付与される処理を作りたく公式ドキュメントを触って見たのですが(https://jp.vuejs.org/v2/cookbook/creating-custom-scroll-directives)、
4
4
  一番上に付与したv-scroll要素が判定に入るたびに全ての要素にcssが付与されてしまいます。

1

タイトル変更

2018/12/04 10:47

投稿

okpk
okpk

スコア38

title CHANGED
@@ -1,1 +1,1 @@
1
- Vue.js カスタムディレクティブの使
1
+ Vue.js カスタムディレクティブ(スクロール処理)につ
body CHANGED
File without changes