回答編集履歴

1

調整

2019/08/02 07:06

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -3,3 +3,117 @@
3
3
 
4
4
 
5
5
  スクロールが止まってから1テンポおいて挙動するという手もあるかも
6
+
7
+
8
+
9
+ # sample
10
+
11
+ animate処理なのでuiまで読み込みます
12
+
13
+ ```javascript
14
+
15
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
16
+
17
+ <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
18
+
19
+ <script>
20
+
21
+ $(function(){
22
+
23
+ var timerId;
24
+
25
+ var pos_y=0;
26
+
27
+ var pre_y=1;
28
+
29
+ var option={
30
+
31
+ "header":[
32
+
33
+ {"background-color":"#ff0000"},
34
+
35
+ {"background-color":"#0000ff"},
36
+
37
+ ],
38
+
39
+ "text":[
40
+
41
+ {"color":"#ffffff"},
42
+
43
+ {"color":"#ff0000"},
44
+
45
+ ],
46
+
47
+ "logo":[
48
+
49
+ {"fontSize":"26px","color":"#0c6bb0","margin-top":0},
50
+
51
+ {"fontSize":"33px","color":"#ffffff","margin-top":10},
52
+
53
+ ],
54
+
55
+ };
56
+
57
+
58
+
59
+ $( window).on('scroll',()=>{
60
+
61
+ const y = window.scrollY;
62
+
63
+ pos_y=(y<120)?0:1;
64
+
65
+ clearTimeout(timerId);
66
+
67
+ if(pos_y!==pre_y){
68
+
69
+ timerId=setTimeout(()=>{
70
+
71
+ $('.header').animate(option["header"][pos_y]);
72
+
73
+ $('.text').animate(option["text"][pos_y]);
74
+
75
+ $('.logo').animate(option["logo"][pos_y]);
76
+
77
+ pre_y=pos_y;
78
+
79
+ },10);
80
+
81
+ }
82
+
83
+ }).trigger('scroll');
84
+
85
+ });
86
+
87
+ </script>
88
+
89
+ <div class="header" style="height:9999px">
90
+
91
+ <br><br><br><br><br>
92
+
93
+ <span class="text">text</span>
94
+
95
+ <br><br><br><br><br>
96
+
97
+ <span class="logo">logo</span>
98
+
99
+ <br><br><br><br><br>
100
+
101
+ <span class="text">text</span>
102
+
103
+ <br><br><br><br><br>
104
+
105
+ <span class="logo">logo</span>
106
+
107
+ <br><br><br><br><br>
108
+
109
+ <span class="text">text</span>
110
+
111
+ <br><br><br><br><br>
112
+
113
+ <span class="logo">logo</span>
114
+
115
+ <br><br><br><br><br>
116
+
117
+ </div>
118
+
119
+ ```