質問編集履歴

4

情報の追加

2020/09/07 13:26

投稿

momoko_888
momoko_888

スコア2

test CHANGED
File without changes
test CHANGED
@@ -104,7 +104,7 @@
104
104
 
105
105
  ```
106
106
 
107
- 上記scriptだと、1番最初の.svgしかアニメーションしません。
107
+ 上記scriptだと、1番最初の.svgしかアニメーションしません。(2回目以降、flgがtrueになってるため、if文の条件に当てはまらなくなっている?)
108
108
 
109
109
 
110
110
 

3

コードの修正

2020/09/07 13:26

投稿

momoko_888
momoko_888

スコア2

test CHANGED
File without changes
test CHANGED
@@ -44,13 +44,19 @@
44
44
 
45
45
  $(function() {
46
46
 
47
- var target = $(".svg").offset().top;
47
+ var target = $(".svg").offset().top; //---(1)
48
48
 
49
- var windowHeight = $(window).height();
49
+ var windowHeight = $(window).height(); //---(2)
50
50
 
51
- var flg = false;
51
+ var flg = false; //---(3)
52
+
53
+ var scrolltop = 0; //---(4)
54
+
55
+ var startPoint = 0; //---(5)
52
56
 
53
57
 
58
+
59
+ //(6)
54
60
 
55
61
  var mySVG = $('.svg').drawsvg({
56
62
 
@@ -66,39 +72,29 @@
66
72
 
67
73
 
68
74
 
75
+ //(7)
76
+
69
77
  $(window).on('scroll resize',function(){
70
78
 
71
- $(window).scroll(function (){
79
+ $(".svg").each(function(){
72
80
 
73
- $(".svg").each(function(){
81
+ scrolltop = $(window).scrollTop();
74
82
 
83
+ windowHeight = $(window).height();
75
84
 
85
+ startPoint = scrolltop + windowHeight - 100;
76
86
 
77
- var imgPos = $(this).offset().top + 30;
87
+ if(startPoint > target){
78
88
 
79
- var scroll = $(window).scrollTop();
89
+ if(flg==false){
80
90
 
81
- var windowHeight = $(window).height();
91
+ $(this).drawsvg('animate');
82
92
 
83
-
84
-
85
- if (scroll > imgPos - windowHeight + windowHeight/5){
86
-
87
- if(flg==false){
88
-
89
- $(this).drawsvg('animate');
90
-
91
- $(this).addClass('test');//検証用
92
-
93
- flg = true;
93
+ flg = true;
94
-
95
- }
96
94
 
97
95
  }
98
96
 
99
-
100
-
101
- });
97
+ }
102
98
 
103
99
  });
104
100
 
@@ -116,13 +112,19 @@
116
112
 
117
113
  $(function() {
118
114
 
119
- var target = $(".svg").offset().top;
115
+ var target = $(".svg").offset().top; //---(1)
120
116
 
121
- var windowHeight = $(window).height();
117
+ var windowHeight = $(window).height(); //---(2)
122
118
 
123
- var flg = false;
119
+ var flg = false; //---(3)
120
+
121
+ var scrolltop = 0; //---(4)
122
+
123
+ var startPoint = 0; //---(5)
124
124
 
125
125
 
126
+
127
+ //(6)
126
128
 
127
129
  var mySVG = $('.svg').drawsvg({
128
130
 
@@ -138,41 +140,33 @@
138
140
 
139
141
 
140
142
 
143
+ //(7)
144
+
141
145
  $(window).on('scroll resize',function(){
142
146
 
143
- $(window).scroll(function (){
147
+ $(".svg").each(function(){
144
148
 
145
- $(".svg").each(function(){
149
+ scrolltop = $(window).scrollTop();
150
+
151
+ windowHeight = $(window).height();
152
+
153
+ startPoint = scrolltop + windowHeight - 100;
154
+
155
+ if(startPoint > target){
156
+
157
+ $(this).drawsvg('animate');//検証
146
158
 
147
159
 
148
160
 
149
- var imgPos = $(this).offset().top + 30;
161
+ // if(flg==false){
150
162
 
151
- var scroll = $(window).scrollTop();
163
+ // $(this).drawsvg('animate');
152
164
 
153
- var windowHeight = $(window).height();
165
+ // flg = true;
154
166
 
167
+ // }
155
168
 
156
-
157
- if (scroll > imgPos - windowHeight + windowHeight/5){
158
-
159
-               $(this).drawsvg('animate');
160
-
161
- // if(flg==false){
162
-
163
- // $(this).drawsvg('animate');
164
-
165
- // $(this).addClass('test');
166
-
167
- // flg = true;
168
-
169
- // }
170
-
171
- }
169
+ }
172
-
173
-
174
-
175
- });
176
170
 
177
171
  });
178
172
 

2

タイトルの修正

2020/09/07 13:24

投稿

momoko_888
momoko_888

スコア2

test CHANGED
@@ -1 +1 @@
1
- jQuery DrawSVG:スクロール可視範囲に入るとアニメーションさせたい
1
+ jQuery DrawSVG:複数あるSVGをスクロールして可視範囲に入ったタイミングでアニメーションさせたい
test CHANGED
File without changes

1

情報の追加

2020/09/07 12:59

投稿

momoko_888
momoko_888

スコア2

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  参考にしたサイト:https://stand-4u.com/web/javascript/drawsvg.html
8
8
 
9
-
9
+ (ターゲットが見える位置までスクロールしてから、一度だけsvg アニメーションを実行する方法)
10
10
 
11
11
  ```html
12
12