質問編集履歴
4
情報の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -51,7 +51,7 @@
|
|
51
51
|
});
|
52
52
|
});
|
53
53
|
```
|
54
|
-
上記scriptだと、1番最初の.svgしかアニメーションしません。
|
54
|
+
上記scriptだと、1番最初の.svgしかアニメーションしません。(2回目以降、flgがtrueになってるため、if文の条件に当てはまらなくなっている?)
|
55
55
|
|
56
56
|
```javascript
|
57
57
|
$(function() {
|
3
コードの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -21,10 +21,13 @@
|
|
21
21
|
```
|
22
22
|
```Javascript
|
23
23
|
$(function() {
|
24
|
-
var target = $(".svg").offset().top;
|
24
|
+
var target = $(".svg").offset().top; //---(1)
|
25
|
-
var windowHeight = $(window).height();
|
25
|
+
var windowHeight = $(window).height(); //---(2)
|
26
|
-
var flg = false;
|
26
|
+
var flg = false; //---(3)
|
27
|
+
var scrolltop = 0; //---(4)
|
28
|
+
var startPoint = 0; //---(5)
|
27
29
|
|
30
|
+
//(6)
|
28
31
|
var mySVG = $('.svg').drawsvg({
|
29
32
|
duration:2000,
|
30
33
|
stagger:100,
|
@@ -32,23 +35,18 @@
|
|
32
35
|
reverse:false
|
33
36
|
});
|
34
37
|
|
38
|
+
//(7)
|
35
39
|
$(window).on('scroll resize',function(){
|
36
|
-
$(window).scroll(function (){
|
37
|
-
|
40
|
+
$(".svg").each(function(){
|
38
|
-
|
39
|
-
var imgPos = $(this).offset().top + 30;
|
40
|
-
|
41
|
+
scrolltop = $(window).scrollTop();
|
41
|
-
|
42
|
+
windowHeight = $(window).height();
|
42
|
-
|
43
|
-
|
43
|
+
startPoint = scrolltop + windowHeight - 100;
|
44
|
+
if(startPoint > target){
|
44
|
-
|
45
|
+
if(flg==false){
|
45
|
-
|
46
|
+
$(this).drawsvg('animate');
|
46
|
-
$(this).addClass('test');//検証用
|
47
|
-
|
47
|
+
flg = true;
|
48
|
-
}
|
49
48
|
}
|
50
|
-
|
51
|
-
}
|
49
|
+
}
|
52
50
|
});
|
53
51
|
});
|
54
52
|
});
|
@@ -57,10 +55,13 @@
|
|
57
55
|
|
58
56
|
```javascript
|
59
57
|
$(function() {
|
60
|
-
var target = $(".svg").offset().top;
|
58
|
+
var target = $(".svg").offset().top; //---(1)
|
61
|
-
var windowHeight = $(window).height();
|
59
|
+
var windowHeight = $(window).height(); //---(2)
|
62
|
-
var flg = false;
|
60
|
+
var flg = false; //---(3)
|
61
|
+
var scrolltop = 0; //---(4)
|
62
|
+
var startPoint = 0; //---(5)
|
63
63
|
|
64
|
+
//(6)
|
64
65
|
var mySVG = $('.svg').drawsvg({
|
65
66
|
duration:2000,
|
66
67
|
stagger:100,
|
@@ -68,24 +69,20 @@
|
|
68
69
|
reverse:false
|
69
70
|
});
|
70
71
|
|
72
|
+
//(7)
|
71
73
|
$(window).on('scroll resize',function(){
|
72
|
-
$(window).scroll(function (){
|
73
|
-
|
74
|
+
$(".svg").each(function(){
|
75
|
+
scrolltop = $(window).scrollTop();
|
76
|
+
windowHeight = $(window).height();
|
77
|
+
startPoint = scrolltop + windowHeight - 100;
|
78
|
+
if(startPoint > target){
|
79
|
+
$(this).drawsvg('animate');//検証
|
74
80
|
|
75
|
-
var imgPos = $(this).offset().top + 30;
|
76
|
-
var scroll = $(window).scrollTop();
|
77
|
-
var windowHeight = $(window).height();
|
78
|
-
|
79
|
-
if (scroll > imgPos - windowHeight + windowHeight/5){
|
80
|
-
$(this).drawsvg('animate');
|
81
|
-
//
|
81
|
+
// if(flg==false){
|
82
|
-
//
|
82
|
+
// $(this).drawsvg('animate');
|
83
|
-
// $(this).addClass('test');
|
84
|
-
//
|
83
|
+
// flg = true;
|
85
|
-
//
|
84
|
+
// }
|
86
|
-
|
85
|
+
}
|
87
|
-
|
88
|
-
});
|
89
86
|
});
|
90
87
|
});
|
91
88
|
});
|
2
タイトルの修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
jQuery DrawSVG:スクロール
|
1
|
+
jQuery DrawSVG:複数あるSVGをスクロールして可視範囲に入ったタイミングでアニメーションさせたい
|
body
CHANGED
File without changes
|
1
情報の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
希望の動きとして、1ページ内に複数あるSVGをスクロールして可視範囲に入ったタイミングでアニメーションさせたいです。
|
3
3
|
|
4
4
|
参考にしたサイト:https://stand-4u.com/web/javascript/drawsvg.html
|
5
|
-
|
5
|
+
(ターゲットが見える位置までスクロールしてから、一度だけsvg アニメーションを実行する方法)
|
6
6
|
```html
|
7
7
|
<div class="box">
|
8
8
|
<svg class="svg">略</svg>
|