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

回答編集履歴

1

調整

2019/08/02 07:06

投稿

yambejp
yambejp

スコア117923

answer CHANGED
@@ -1,3 +1,60 @@
1
1
  htmlのソースと、具体的な挙動の説明があったほうがよいかも
2
2
 
3
- スクロールが止まってから1テンポおいて挙動するという手もあるかも
3
+ スクロールが止まってから1テンポおいて挙動するという手もあるかも
4
+
5
+ # sample
6
+ animate処理なのでuiまで読み込みます
7
+ ```javascript
8
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
9
+ <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
10
+ <script>
11
+ $(function(){
12
+ var timerId;
13
+ var pos_y=0;
14
+ var pre_y=1;
15
+ var option={
16
+ "header":[
17
+ {"background-color":"#ff0000"},
18
+ {"background-color":"#0000ff"},
19
+ ],
20
+ "text":[
21
+ {"color":"#ffffff"},
22
+ {"color":"#ff0000"},
23
+ ],
24
+ "logo":[
25
+ {"fontSize":"26px","color":"#0c6bb0","margin-top":0},
26
+ {"fontSize":"33px","color":"#ffffff","margin-top":10},
27
+ ],
28
+ };
29
+
30
+ $( window).on('scroll',()=>{
31
+ const y = window.scrollY;
32
+ pos_y=(y<120)?0:1;
33
+ clearTimeout(timerId);
34
+ if(pos_y!==pre_y){
35
+ timerId=setTimeout(()=>{
36
+ $('.header').animate(option["header"][pos_y]);
37
+ $('.text').animate(option["text"][pos_y]);
38
+ $('.logo').animate(option["logo"][pos_y]);
39
+ pre_y=pos_y;
40
+ },10);
41
+ }
42
+ }).trigger('scroll');
43
+ });
44
+ </script>
45
+ <div class="header" style="height:9999px">
46
+ <br><br><br><br><br>
47
+ <span class="text">text</span>
48
+ <br><br><br><br><br>
49
+ <span class="logo">logo</span>
50
+ <br><br><br><br><br>
51
+ <span class="text">text</span>
52
+ <br><br><br><br><br>
53
+ <span class="logo">logo</span>
54
+ <br><br><br><br><br>
55
+ <span class="text">text</span>
56
+ <br><br><br><br><br>
57
+ <span class="logo">logo</span>
58
+ <br><br><br><br><br>
59
+ </div>
60
+ ```