回答編集履歴
2
画像
test
CHANGED
@@ -1,2 +1,45 @@
|
|
1
1
|
[IntersectionObserver](https://developer.mozilla.org/ja/docs/Web/API/IntersectionObserver)で制御してはどうでしょうか?
|
2
2
|
サムネイルを表示しておき、アニメーション開始のタイミングでsrcを置き換えるとか
|
3
|
+
|
4
|
+
# 参考
|
5
|
+
IntersectionObserverを使った画像の切り替え
|
6
|
+
```html
|
7
|
+
<style>
|
8
|
+
.dummy{
|
9
|
+
background-Color:white;
|
10
|
+
height:80%;
|
11
|
+
}
|
12
|
+
.dummy:nth-child(odd){
|
13
|
+
background-Color:lightgray;
|
14
|
+
}
|
15
|
+
</style>
|
16
|
+
<script>
|
17
|
+
const crossing=()=>{
|
18
|
+
const observer = new IntersectionObserver(changes=>{
|
19
|
+
for (let change of changes) {
|
20
|
+
if(change.intersectionRatio == 1){
|
21
|
+
change.target.src=change.target.dataset.src;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
});
|
25
|
+
document.querySelectorAll('.anime').forEach(target=>observer.observe(target));
|
26
|
+
}
|
27
|
+
window.addEventListener('pageshow',crossing);
|
28
|
+
window.addEventListener('scroll',crossing);
|
29
|
+
window.addEventListener('DOMContentLoaded',()=>{
|
30
|
+
document.querySelectorAll('img[data-src]').forEach(x=>{
|
31
|
+
const img=new Image();
|
32
|
+
img.src=x.dataset.src;
|
33
|
+
});
|
34
|
+
});
|
35
|
+
</script>
|
36
|
+
<body>
|
37
|
+
<div class="dummy">1</div>
|
38
|
+
<div class="dummy">2<img src="https://placehold.jp/f00/000/300x300.png?text=2-1" data-src="https://placehold.jp/000/f00/300x300.png?text=2-2" alt="2" class="anime"></div>
|
39
|
+
<div class="dummy">3<img src="https://placehold.jp/0f0/000/300x300.png?text=3-1" data-src="https://placehold.jp/000/0f0/300x300.png?text=3-2" alt="3" class="anime"></div>
|
40
|
+
<div class="dummy">4<img src="https://placehold.jp/f0f/000/300x300.png?text=4-1" data-src="https://placehold.jp/000/f0f/300x300.png?text=4-2" alt="4" class="anime"></div>
|
41
|
+
<div class="dummy">5</div>
|
42
|
+
<div class="dummy">6<img src="https://placehold.jp/fff/800/300x300.png?text=6-1" data-src="https://placehold.jp/800/fff/300x300.png?text=6-2" alt="6" class="anime"></div>
|
43
|
+
<div class="dummy">7<img src="https://placehold.jp/fff/080/300x300.png?text=7-1" data-src="https://placehold.jp/080/fff/300x300.png?text=7-2" alt="7" class="anime"></div>
|
44
|
+
<div class="dummy">8<img src="https://placehold.jp/fff/008/300x300.png?text=8-1" data-src="https://placehold.jp/008/fff/300x300.png?text=8-2" alt="8" class="anime"></div>
|
45
|
+
```
|
1
調整
test
CHANGED
@@ -1 +1,2 @@
|
|
1
1
|
[IntersectionObserver](https://developer.mozilla.org/ja/docs/Web/API/IntersectionObserver)で制御してはどうでしょうか?
|
2
|
+
サムネイルを表示しておき、アニメーション開始のタイミングでsrcを置き換えるとか
|