実現したいこと
動画上にマウスオンしたら、画像をマウスに追従させたい。
表示および追従させる範囲は、動画上のみとしたいです。
マウスストーカーの稼働範囲…movie
のclassが付いたdiv要素
マウスストーカー…mouse-stalker
のclassが付いたimg要素
発生している問題
動画上で画像がマウスに追従しません。
該当のソースコード
HTML
1<div class="movie"> 2 <iframe width="790" height="605" src="https://www.youtube.com/embed/hlWiI4xVXKY"></iframe> 3 <div id="mouse-stalker-wrap" class="mouse-stalker-wrap"> 4 <img class="mouse-stalker" src="assets/img/mouse-stalker.png" alt="" /> 5 </div> 6</div>
CSS
1.movie { 2 position: relative; 3 max-width: 790px; 4 width: 100%; 5 height: 605px; 6 aspect-ratio: 16/9; 7} 8 9.movie:hover .mouse-stalker { 10 z-index: 100; 11 position: fixed; 12 transition: all 0.6s ease; 13} 14 15.first-view .mouse-stalker { 16 position: fixed; 17 width: 128px; 18 height: 128px; 19 opacity: 0; 20 transition: 0.2s; 21 transition-timing-function: ease-out; 22 pointer-events: none; 23}
jQuery
1function $mouseStalker() { 2 var cursor = $('.big-play-movie-icon'); 3 $('.movie').on('mousemove', function (e) { 4 var x = e.clientX; 5 var y = e.clientY; 6 cursor.css({ 7 opacity: '1', 8 top: y + 'px', 9 left: x + 'px', 10 }); 11 }); 12 }
試してみたこと
①index.jsのx
とy
の値が正しく取れているかどうかをconsole.log
で確認し、正しく取れていること(=マウスを動かすと永続的に数値が変化すること)を確認済み。
②index.jsの$('.movie').on('mousemove', function (e) {
の'.movie'
を'document'
に変更すると、動画以外の範囲でのみ画像がスムーズに追従することを確認。つまり、'.movie'
が悪影響を起こしているのでは?と推測し、'.movie' iframe'
に変更してみたが追従しない。
③iframe
が悪影響を起こしていると推測し、CSSファイル内でiframe
に対して"display: block;"のスタイルを追加してみたが変化なし。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/20 11:19
2022/12/20 12:18
2022/12/21 01:54
2022/12/21 02:23
2022/12/23 12:56