我在我的squarespace站点上使用了一些HTML&CSS来创建一个自定义的跟随光标。我只想有一个浮动的圆圈,没有实际的光标显示。我已经得到了它的工作,但当我的网站滚动跟随光标没有移动的页面滚动,只是卡在顶部。
这只会导致follow光标完全停止随鼠标移动而移动,在页面中心变成静态的。
将HTML&CSS注入到squarespace站点以创建自定义跟随光标:
null
body {
background: #161616;
}
.wrap {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
overflow: hidden;
}
#ball {
width: 60px;
height: 60px;
background: none;
border: 1px solid grey;
border-radius: 50%;
position: absolute;
left: 50%;
top: 50%;
margin: -10px 0 0 -10px;
pointer-events: none;
}
<body onload="followMouse();">
<div class="wrap">
<div id="ball"></div>
</div>
<script type="text/javascript">
var $ = document.querySelector.bind(document);
var $on = document.addEventListener.bind(document);
var xmouse, ymouse;
$on('mousemove', function (e) {
xmouse = e.clientX || e.pageX;
ymouse = e.clientY || e.pageY;
});
var ball = $('#ball');
var x = void 0,
y = void 0,
dx = void 0,
dy = void 0,
tx = 0,
ty = 0,
key = -1;
var followMouse = function followMouse() {
key = requestAnimationFrame(followMouse);
if(!x || !y) {
x = xmouse;
y = ymouse;
} else {
dx = (xmouse - x) * 0.125;
dy = (ymouse - y) * 0.125;
if(Math.abs(dx) + Math.abs(dy) < 0.1) {
x = xmouse;
y = ymouse;
} else {
x += dx;
y += dy;
}
}
ball.style.left = x + 'px';
ball.style.top = y + 'px';
};
</script>
</body>
null
这可能会通过将#ball CSS从绝对定位到一个固定的位置来修复,然后它应该用您的原始js向下滚动页面
[编辑]在更新你的问题上做得很好,演示和问题现在都很清楚了。不要担心你的演示没有滚动,我只是在我的演示中添加了一些高度的div来模拟这一点。以下是您需要/应该更改的所有内容,以使其正常工作:
var followMouse=function followMouse()...
是一个非常奇怪的语法,我不确定会有什么确切的结果。
函数followMouse()...
或使用以下属性将其存储在变量中:
var followMouse=function()...
或var followMouse=()=>...
$()
函数返回的对象的scrolltop
成员来完成。$(“.wrap”).scrolltop
添加到mouseVe
侦听器中的ymouse
变量中,但这一操作起作用时,需要您移动鼠标以找到圆圈,以实现它已从页面上滚动。$(“.wrap”).scrolltop
添加到css中,该css被设置为followmouse
的最后一行中的球。null
var $ = document.querySelector.bind(document);
var $on = document.addEventListener.bind(document);
var followMouse = function() {
key = requestAnimationFrame(followMouse);
if (!x || !y) {
x = xmouse;
y = ymouse;
} else {
dx = (xmouse - x) * 0.125;
dy = (ymouse - y) * 0.125;
if (Math.abs(dx) + Math.abs(dy) < 0.1) {
x = xmouse;
y = ymouse;
} else {
x += dx;
y += dy;
}
}
ball.style.left = x + 'px';
ball.style.top = $(".wrap").scrollTop + y + 'px';
};
var xmouse, ymouse;
var ball = $('#ball');
var x = void 0,
y = void 0,
dx = void 0,
dy = void 0,
tx = 0,
ty = 0,
key = -1;
$on('mousemove', function(e) {
xmouse = e.clientX || e.pageX;
ymouse = e.clientY || e.pageY;
});
body {
background: #161616;
}
.wrap {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
overflow: scroll;
cursor: none;
}
#ball {
width: 60px;
height: 60px;
background: none;
border: 1px solid grey;
border-radius: 50%;
position: absolute;
left: 50%;
top: 50%;
margin: -10px 0 0 -10px;
pointer-events: none;
}
.makeOverflow {
width: 100px;
height: 300px;
}
<body onload="followMouse();">
<div class="wrap">
<div id="ball"></div>
<div class="makeOverflow"> </div>
<div class="makeOverflow"> </div>
<div class="makeOverflow"> </div>
<div class="makeOverflow"> </div>
</div>
</body>
跟随页面滚动非常的简单,就是设置元素的top值即可,代码量只有20行。 1.准备 HTML <div class="roll"> </div> 2.准备css 一定要记得把动画个加上 body{ min-height: 4000px; } .roll{ position: relati
问题内容: 我有一个带有大型面板的Swing应用程序,该应用程序包装在。用户通常通过按Tab键在面板的子组件之间移动,因此当他们按Tab键切换到某个视图时,我希望滚动窗格自动滚动,以便具有输入焦点的组件始终可见。 我尝试使用侦听输入焦点更改,然后调用。 这是一个显示我当前策略的SSCCE(只需复制/粘贴并运行!): 如果运行此示例,您会发现它运行不佳。它确实获得了焦点更改通知,但是对的调用似乎没有
问题内容: 我目前正在用Go语言编写一些与REST API交互的软件。我正在尝试查询的REST API端点返回HTTP 302重定向以及HTTP Location标头,指向资源URI。 我正在尝试使用Go脚本抓取HTTP Location标头,以供以后处理。 这是我目前为实现此功能正在做的事情: 对我来说,这有点像是个骇客。通过覆盖的功能,我实际上被迫将HTTP重定向视为错误(不是)。 我已经看到
问题内容: 我正在做蛇游戏,并且被困在使尾巴跟着头部的位置。我听说在头和尾上使用添加和删除操作可能会发生这种情况,但是我不知道从哪里开始。 到目前为止,这是我的代码: Screen.java BodyPart.java 框架 现在这段代码只会使尾巴翻转到水平或垂直方向,是否可以通过使用此代码使尾巴跟随头部?还是我需要更改代码? 谢谢 问题答案: 基本思想是,您需要某种包含蛇的所有点的东西。从概念上
由来 有时候我们要启动一个线程实时“监控”文件的变化,比如有新内容写出到文件时,我们可以及时打印出来,这个功能非常类似于Linux下的tail -f命令。 使用 Tailer tailer = new Tailer(FileUtil.file("f:/test/test.log"), Tailer.CONSOLE_HANDLER, 2); tailer.start(); 其中Tailer.CON
本文向大家介绍bootstrap监听滚动实现头部跟随滚动,包括了bootstrap监听滚动实现头部跟随滚动的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了bootstrap监听滚动头部跟随滚动的实现方法,供大家参考,具体内容如下 实现案例 css控制样式 js监听 导入js 知识只有共享才能传播,才能推崇出新的知识,才能学到更多,这里写的每一篇文字/博客,基本都是从网上查询了一下资料