Javascript Can';是否不使用jQuery覆盖jQuery生成的内联样式?
我的代码是分叉的,我还将我的代码包含在本文下面的堆栈片段中 我想要实现的是:Javascript Can';是否不使用jQuery覆盖jQuery生成的内联样式?,javascript,jquery,Javascript,Jquery,我的代码是分叉的,我还将我的代码包含在本文下面的堆栈片段中 我想要实现的是: 当光标不在身体内部时,眼球将随机移动(实现) 当光标进入身体时,眼球跟随光标(完成) 当光标离开身体时,眼球再次开始随机移动(未实现) 我调用了用于在on(“mouseleave”)事件中随机移动眼球的函数,它确实会移动到随机位置,但会立即返回到最后一个光标位置,而不是停留在新位置。有人能给我指出解决问题的正确方向吗 谢谢 var 鼠标移动=错误, 学生=$(“#学生”), 眼球=$(“#虹膜”), eyeposx=
on(“mouseleave”)
事件中随机移动眼球的函数,它确实会移动到随机位置,但会立即返回到最后一个光标位置,而不是停留在新位置。有人能给我指出解决问题的正确方向吗
谢谢
var
鼠标移动=错误,
学生=$(“#学生”),
眼球=$(“#虹膜”),
eyeposx=40,
eyeposy=20,
r=$(瞳孔).width()/2,
中心={
x:$(眼球).width()/2-r,
y:$(眼球).height()/2-r
},
距离阈值=$(眼球).width()/2-r,
mouseX=0,
mouseY=0;
$(“body”).ready(函数(){
如果(!鼠标移动){
随机移动();
}
});
$(“body”)。在('mouseleave',function()上{
鼠标移动=错误;
随机移动();
控制台日志(“mouseleave”);
});
$(“body”)。在('mousemove',函数(e)上{
鼠标移动=真;
控制台日志(“鼠标移动”);
跟随光标(e);
});
函数moveRandom(){
var loop=setInterval(函数(){
var xp=Math.floor(Math.random()*80);
var yp=Math.floor(Math.random()*80);
动画({左:xp,上:yp});
}, 3500);
}
函数跟随光标(e){
变量d={
x:e.pageX-r-eyeposx-center.x,
y:e.pageY-r-eyeposy-center.y
};
变量距离=数学sqrt(d.x*d.x+d.y*d.y);
if(距离<距离阈值){
mouseX=e.pageX-eyeposx-r;
mouseY=e.pageY-eyeposy-r;
}否则{
mouseX=d.x/距离*距离阈值+中心.x;
鼠标=距离y/距离*距离阈值+中心y;
}
var xp=0,yp=0;
var loop=setInterval(函数(){
//更改1以更改阻尼/动量-越高速度越慢
xp+=(mouseX-xp)/1;
yp+=(鼠标-yp)/1;
css({左:xp,上:yp});
}, 2);
}
正文{
背景色:#D1D3CF;
}
#容器{
显示:内联;
高度:400px;
宽度:400px;
}
#眼球{
背景:径向梯度(100px 100px的圆,#EEEEEE,#000);
高度:300px;
宽度:300px;
边界半径:100%;
位置:相对位置;
}
#虹膜{
排名前10%;
左:10%;
背景:径向梯度(100px 100px,#4DC9EF,#000处的圆圈);
身高:80%;
宽度:80%;
边界半径:100%;
位置:绝对位置;
}
#学生{
排名前10%;
左:10%;
背景:径向梯度(100px 100px处的圆圈,#000000,#000);
身高:55%;
宽度:55%;
边界半径:100%;
位置:绝对位置;
}
@关键帧移动{
50% {
转换:转换(-50px,50px);
}
}
@关键帧移动2{
50% {
转换:转换(-20px,20px);
}
}
使用Javascript,您只能跟踪光标在网页上的位置。如果将光标移到主体之外,代码就不可能知道光标在哪里
这就是当您将光标移到窗口外时,跟踪光标的眼睛停止移动的原因。问题是,一旦启动followcursor功能,即使在鼠标离开身体后,它仍会继续移回上一个已知的鼠标位置。我刚刚检查了followcursor函数中的mouseOvering变量:
var
鼠标移动=错误,
学生=$(“#学生”),
眼球=$(“#虹膜”),
eyeposx=40,
eyeposy=20,
r=$(瞳孔).width()/2,
中心={
x:$(眼球).width()/2-r,
y:$(眼球).height()/2-r
},
距离阈值=$(眼球).width()/2-r,
mouseX=0,
mouseY=0;
$(“body”).ready(函数(){
如果(!鼠标移动){
随机移动();
}
});
$(“body”)。在('mouseleave',function()上{
鼠标移动=错误;
控制台日志(“mouseleave”);
});
$(“body”)。在('mousemove',函数(e)上{
鼠标移动=真;
控制台日志(“鼠标移动”);
跟随光标(e);
});
函数moveRandom(){
var loop=setInterval(函数(){
var xp=Math.floor(Math.random()*80);
var yp=Math.floor(Math.random()*80);
如果(!鼠标移动){
动画({左:xp,上:yp});
}
}, 3500);
}
函数跟随光标(e){
变量d={
x:e.pageX-r-eyeposx-center.x,
y:e.pageY-r-eyeposy-center.y
};
变量距离=数学sqrt(d.x*d.x+d.y*d.y);
if(距离<距离阈值){
mouseX=e.pageX-eyeposx-r;
mouseY=e.pageY-eyeposy-r;
}否则{
mouseX=d.x/距离*距离阈值+中心.x;
鼠标=距离y/距离*距离阈值+中心y;
}
var xp=0,yp=0;
var loop=setInterval(函数(){
//更改1以更改阻尼/动量-越高速度越慢
xp+=(mouseX-xp)/1;
yp+=(鼠标-yp)/1;
如果(鼠标移动){
css({左:xp,上:yp});
}
}, 2);
}
正文{
背景色:#D1D3CF;
}
#容器{
显示:内联;
高度:400px;
宽度:400px;
}
#眼球{
背景:径向梯度(100px 100px的圆,#EEEEEE,#000);
高度:300px;
宽度:300px;
边界半径:100%;
位置:相对位置;
}
#虹膜{
排名前10%;
左:10%;
背景:径向梯度(100px 100px,#4DC9EF,#000处的圆圈);
身高:80%;
宽度:80%;
边界半径:100%;
位置:绝对位置;
}
#学生{
排名前10%;
左:10%;
背景:径向梯度(100px 100px处的圆圈,#000000,#000);
身高:55%;
宽度:55%;
边界半径:100%;
位置:绝对位置;
}
@关键帧移动{
50% {
转换:转换(-50px,50px);
}
}
@关键帧移动2{
50% {
转换:转换(-20px,20px);
}
}
<