gpt4 book ai didi

javascript - CSS:将悬停动画与其他类相关动画分开

转载 作者:行者123 更新时间:2023-11-28 02:54:38 25 4
gpt4 key购买 nike

上下文:我在悬停时操纵 div 的大小,以及在单击时操纵它的位置。我正在使用 CSS 转换属性来完成这两件事。

问题:我希望此 div 的大小和位置更改有不同的过渡时间(主要用于返回过渡)。但是,这两种操作都涉及相同的 CSS 属性。

问题:如何隔离/分离转换时间?

[示例代码在这里][1]

document.querySelector('div').addEventListener('click', function(event) {
event.currentTarget.classList.toggle('shifted');
})
div {
width: 30px;
height: 30px;
background: green;
transition: transform 0.5s;
//i would like for the div to move back in 1 second when .shifted is removed
}

div:hover {
transform: scale(1.5);
transition: transform 0.5s;
}

.shifted {
transform: translateX(50px);
transition: transform 1s;
}
<div></div>

最佳答案

您需要添加一些逻辑来检查 div 是否有该类,如果没有,它将在 1 秒后删除“shifted”类。

您还需要将鼠标悬停在“已移动”上,以防止 div 来回滑动。

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>

<body>

<style>
div {
width: 30px;
height: 30px;
background: green;
transition: transform 0.5s;
}
div:hover {
transform: scale(1.5);
transition: transform 0.5s;
}
.shifted {
transform: translateX(50px);
transition: transform 0.5s;
}

div.shifted:hover{
transform: translateX(50px);
}
</style>

<div></div>

<script>

$(document).ready(function(){

$('div').click(function(){
if(!$(this).hasClass('shifted')){
$(this).addClass('shifted')
}else{
setTimeout(function(){$('div').removeClass('shifted')},1000)
}
})

})//doc ready

</script>

</body>
</html>

关于javascript - CSS:将悬停动画与其他类相关动画分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46517718/

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