我试图在鼠标悬停时对附加到某些文本的不断增长的省略号进行动画处理,然后在鼠标移开时消失。我已经成功地创建了效果,但前提是用户非常小心地将光标移动到受影响的元素上。我怎样才能让它表现得更好,这样如果用户将光标移动到所有元素上,我就不会出现下面看到的错误行为(尝试在元素上快速运行光标)?我已经尝试过setInterval并发现问题更严重。任何帮助表示赞赏。谢谢。
var i=1;
var $test=$();
var mousedOver=0;
function test() {
if(i!==0) {
$test.append('<span class="a">.</span>');
} else {
$('.a').remove();
}
if(mousedOver===1){
i=(i+1)%4;
setTimeout(test,1000);
}
}
$('.nav>p').on('mouseover',function() {
var $test2=$(this);
setTimeout(function() {
$test=$test2;
mousedOver=1;
test();
},1000);
})
$('.nav>p').on('mouseout',function() {
$test=$();
mousedOver=0;
$('.a').remove();
i=1;
})
.nav {
display: flex;
height: 100vh;
width:30%;
flex-direction: column;
justify-content: center;
align-items: center;
border-radius:40px;
border-style: solid;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<head>
</head>
<body>
<div class="nav">
<p>text1</p>
<p>text2</p>
<p>text3</p>
</div>
</body>
开满天机
相关分类