【发布时间】:2018-07-26 08:29:40
【问题描述】:
我正在尝试使用设置为跟随光标的<div> 创建自定义光标。
在下面的 sn-p 中,这运行得非常好,但是当向下滚动页面时,div 直到滚动移动完成后才会跟随,从而导致移动和感觉生涩。
有没有办法确保不会发生这种情况,并且<div> 无论如何都会完美地跟随光标?
// vars
var $cursor = $('.custom-cursor');
// Follow cursor
$('body').on('mousemove', function(e) {
var parentOffset = $(this).offset();
var relX = e.pageX - parentOffset.left;
var relY = e.pageY - parentOffset.top;
$cursor.css({
left: relX,
top: relY
});
});
body {
background: red;
height: 1000vh;
position: relative;
}
.custom-cursor {
position: absolute;
width: 30px;
height: 30px;
border-radius: 100%;
z-index: 9999;
background-color: yellow;
backface-visibility: hidden;
pointer-events: none;
transform: translate(-50%, -50%); // Center over cursor
transition: width .3s ease-in-out, height .3s ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div class="custom-cursor">
</div>
</body>
【问题讨论】:
-
请使用 SO sn-p 代替 codepen :)
-
您的 codepen 一直在重新加载。您能否修复它并顺便使用 StackOverflow sn-p
-
尝试将定位 div 的代码也放在
scroll事件中。 -
恐怕不行@Programmer
-
这是一个疯狂的 + hacky 跨浏览器想法:带有光标代码的不可滚动正文。以及包含其余内容的可滚动 div。
标签: javascript jquery css cursor