回答編集履歴
1
sannkou
answer
CHANGED
@@ -27,5 +27,40 @@
|
|
27
27
|
<div class="copy">テキスト入ります。ダミーですテキスト入ります。</div>
|
28
28
|
</a>
|
29
29
|
</div>
|
30
|
-
|
31
|
-
```
|
30
|
+
```
|
31
|
+
# 参考
|
32
|
+
「.shuffle-con-a」内の要素間の移動でシャッフルを発生させない場合。
|
33
|
+
やりようは色々あると思いますがこんな感じがお手軽で良いかも
|
34
|
+
mouseoverがmouseenterになるのでご注意ください
|
35
|
+
```javascript
|
36
|
+
<script src=" https://cdn.jsdelivr.net/npm/shuffle-text@0.4.0/build/shuffle-text.min.js "></script>
|
37
|
+
<script>
|
38
|
+
window.addEventListener('DOMContentLoaded', ()=>{
|
39
|
+
document.querySelectorAll('.shuffle-con-a .ttl,.shuffle-con-a .copy').forEach(el=>{
|
40
|
+
el.start=function(){new ShuffleText(this).start()};
|
41
|
+
el.dataset.txt=el.textContent;
|
42
|
+
});
|
43
|
+
document.addEventListener('mouseenter',({target})=>{
|
44
|
+
if(target.matches('.shuffle-con-a')){
|
45
|
+
target.querySelectorAll('[data-txt]').forEach(el=>{
|
46
|
+
el.start();
|
47
|
+
});
|
48
|
+
}
|
49
|
+
},true);
|
50
|
+
document.addEventListener('mouseout',({target})=>{
|
51
|
+
target.closest('.shuffle-con-a')?.querySelectorAll('[data-txt]').forEach(el=>{
|
52
|
+
const timerId=setInterval(()=>{
|
53
|
+
if(el.textContent==el.dataset.txt) clearInterval(timerId);
|
54
|
+
el.textContent=el.dataset.txt;
|
55
|
+
},100);
|
56
|
+
});
|
57
|
+
});
|
58
|
+
});
|
59
|
+
</script>
|
60
|
+
<div class="content">
|
61
|
+
<a href="#" class="shuffle-con-a"> <img src="img.jpg" alt="img">
|
62
|
+
<div class="ttl">タイトル入るタイトルテキスト入ります。</div>
|
63
|
+
<div class="copy">テキスト入ります。ダミーですテキスト入ります。</div>
|
64
|
+
</a>
|
65
|
+
</div>
|
66
|
+
```
|