前提・実現したいこと
マウスストーカーを実装していたのですが、スクロールをすると画面外に出てしまい、その位置でマウスを動かすとまた出現します。これを通常のマウスみたいにスクロールしてもその位置に固定したいです。
該当のソースコード
js
1/*======================================= 2 マウスストーカー 3 =========================================*/ 4 5 var 6 cursor = $(".cursor"), 7 follower = $(".follower"), 8 cWidth = 20, //カーソルの大きさ 9 fWidth = 40, //フォロワーの大きさ 10 delay = 10, //数字を大きくするとフォロワーがより遅れて来る 11 mouseX = 0, //マウスのX座標 12 mouseY = 0, //マウスのY座標 13 posX = 0, //フォロワーのX座標 14 posY = 0; //フォロワーのX座標 15 16 //カーソルの遅延アニメーション 17 //ほんの少ーーーしだけ遅延させる 0.001秒 18 TweenMax.to({}, .001, { 19 repeat: -1, 20 onRepeat: function() { 21 posX += (mouseX - posX) / delay; 22 posY += (mouseY - posY) / delay; 23 24 TweenMax.set(follower, { 25 css: { 26 left: posX - (fWidth / 2), 27 top: posY - (fWidth / 2) 28 } 29 }); 30 31 TweenMax.set(cursor, { 32 css: { 33 left: mouseX - (cWidth / 2), 34 top: mouseY - (cWidth / 2) 35 } 36 }); 37 } 38 }); 39 40 //マウス座標を取得 41 $(document).on("mousemove", function(e) { 42 mouseX = e.pageX; 43 mouseY = e.pageY; 44 }); 45 46 $("a").on({ 47 "mouseenter": function() { 48 cursor.addClass("is-active"); 49 follower.addClass("is-active"); 50 }, 51 "mouseleave": function() { 52 cursor.removeClass("is-active"); 53 follower.removeClass("is-active"); 54 } 55 });
html
1<div class="cursor"></div> 2<div class="follower"></div>
css
1.cursor, 2 .follower { 3 border-radius: 50%; 4 position: absolute; 5 top: 0; 6 left: 0; 7 pointer-events: none; 8 } 9 10 .cursor { 11 width: 20px; 12 height: 20px; 13 background-color: #f24e54; 14 z-index: 1001; 15 &.is-active { 16 transform: scale(1); 17 background-color: #f24e54; 18 } 19 } 20 21 .follower { 22 display: flex; 23 justify-content: center; 24 align-items: center; 25 width: 40px; 26 height: 40px; 27 background-color: rgba(#f24e54, .5); 28 z-index: 1000; 29 transition: transform ease .1s; 30 text-align: center; 31 span { 32 display: inline-block; 33 font-size: 14px; 34 font-weight: bold; 35 transform: scale(0); 36 } 37 &.is-active { 38 transform: scale(3); 39 background-color: rgba(#f24e54, .5); 40 } 41 } 42
試したこと
.follower {position: absolute;}を.follower {position: fixed;}にしてみたら、メインビジュアルは理想的な動きになったのですが、下の方にスクロールすると挙動がおかしくなりました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。