我在JS中使用mousemove事件來獲取一個小球圖像(放在一個div中)來跟隨我的光標。我還有一個單獨的div中的圖像,當鼠標光標懸停在它上面時,它使用CSS中的關鍵幀動畫來搖動。
我的問題是,當我懸停在關鍵幀圖像上時,它會抖動,球圖像會從光標處消失。
當晃動的圖像被激活時,有沒有辦法讓它在晃動的圖像上保持可見?
body {
background-color: white;
}
h1 {
color: teal;
font-family: Arial, Helvetica, sans-serif;
text-align: center;
}
div {
background-color: teal;
padding: 5%;
text-align: center;
}
#circle {
max-width: 10%;
background-color: transparent;
position: absolute;
}
#circle:hover {
cursor: url('***********'), auto;
}
#shakingimage {
max-width: 45%;
position: relative;
}
#shakingimage:hover {
/* Start the shake animation and make the animation last for 0.5 seconds */
animation: shake 0.5s;
/* When the animation is finished, start again */
animation-iteration-count: infinite;
cursor: url('************'), auto;
}
@keyframes shake {
0% {
transform: translate(1px, 1px) rotate(0deg);
}
10% {
transform: translate(-1px, -2px) rotate(-1deg);
}
20% {
transform: translate(-3px, 0px) rotate(1deg);
}
30% {
transform: translate(3px, 2px) rotate(0deg);
}
40% {
transform: translate(1px, -1px) rotate(1deg);
}
50% {
transform: translate(-1px, 2px) rotate(-1deg);
}
60% {
transform: translate(-3px, 1px) rotate(0deg);
}
70% {
transform: translate(3px, 1px) rotate(-1deg);
}
80% {
transform: translate(-1px, -1px) rotate(1deg);
}
90% {
transform: translate(1px, 2px) rotate(0deg);
}
100% {
transform: translate(1px, -2px) rotate(-1deg);
}
}
.buttonbox {
display: inline-flex;
justify-content: center;
flex-direction: row;
}
button {
padding: 15px 25px;
margin: 5px;
font-size: 24px;
text-align: center;
cursor: pointer;
outline: solid 2px white;
color: #ffffff;
background-color: #008080;
border: none;
border-radius: 15px;
box-shadow: 0 9px #999;
}
button:hover {
background-color: rgb(0, 172, 172);
}
button:active {
background-color: #008080;
box-shadow: 0 5px #666;
transform: translateY(4px);
}
let circle = document.getElementById('circle')
const onMouseMove = (e) => {
circle.style.left = e.pageX + 'px'
circle.style.top = e.pageY + 'px'
}
document.addEventListener('mousemove', onMouseMove)
要使小球圖像圓圈在晃動圖像上保持可見,您可以對# circle元素應用較高的z索引值。我認為這將使它在堆疊順序中位于shakingimage之上。 如下更新你的CSS代碼怎么樣
#circle {
max-width: 10%;
background-color: transparent;
position: absolute;
z-index: 2;
}
#shakingimage {
max-width: 45%;
position: relative;
z-index: 1;
}