gpt4 book ai didi

html - 触发 :hover on moving element without moving mouse

转载 作者:太空狗 更新时间:2023-10-29 13:53:38 29 4
gpt4 key购买 nike

#box {
animation: scroll 2s linear infinite;
width: 100px;
height: 100px;
background: red;
}

#box:hover {
background: green;
}

@keyframes scroll {
from {transform: none;}
to {transform: translateX(400px);}
}
<div id="box"></div>

如果将鼠标悬停在框上,如果您之后不移动鼠标,它会保持绿色。如果您将鼠标放在它的路径上并且不动,它不会触发悬停。

在这种情况下,有没有办法在不移动鼠标的情况下触发悬停?

编辑:不使用 JavaScript。

最佳答案

我知道您不想要 JavaScript 解决方案。但是我不确定没有它是否有解决方案。当鼠标什么都不做时,你不能触发鼠标事件。

与此同时,我添加了一个使用 javascript 的解决方案,因为它可以帮助其他人使用 javascript 解决方案搜索答案并解决这个问题。

鼠标移动时的最后坐标存储为变量 x 和 y。可以随时使用Element.getBoundingClientRect() 找到盒子的坐标。 .查看鼠标指针是否位于框内的函数可以设置为以任何选定的时间间隔运行。这将根据每种情况进行调整。

唯一的问题是打开此页面时鼠标根本没有移动。

var x = 0;
var y = 0;
var box = document.querySelector("#box");
document.onmousemove = function(e){
x = e.pageX;
y = e.pageY;
}
setInterval(findMouse, 50);
function findMouse(){
// Looking for the updated coordinates of the box
var movingBox = box.getBoundingClientRect();

if( x>=movingBox.left && x<=movingBox.right
&& y>=movingBox.top && y<=movingBox.bottom)
document.getElementById("box").style.backgroundColor = "green";
else
document.getElementById("box").style.backgroundColor = "red";

}
#box {
animation: scroll 2s linear infinite;
width: 100px;
height: 100px;
background: red;
}

#box:hover {
background: green;
}

@keyframes scroll {
from {transform: none;}
to {transform: translateX(400px);}
}
<div id="box"></div>

关于html - 触发 :hover on moving element without moving mouse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51691486/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com