过度属性transition+鼠标悬停hover
过渡属性transition
可以看到从一个状态变化到另一个状态的变化过程(比如宽由100px 变为200px)
语法 transition: 过渡时间 运动形式 linear(匀速) steps(步骤) 分步骤变化
注意点:鼠标 悬停 和 离开 都存在过渡效果需要将transition添加给元素的初始状态
#top2{
width: 100px;
height: 50px;
background: #f0f;
transition: 1s steps(4);
}
鼠标 悬停 时存在过渡效果,就将transition添加给:hover的时候
#top3:hover{
width: 200px;
transition: 1s;
}
问题一:如何实现同时划上多个元素,即鼠标划上一个元素,其他也一起有鼠标悬停的效果
解决:给父元素设置hover即可
body:hover #top1{
width: 200px;
transition: 3s steps(6);
/*鼠标悬停效果为三秒,分六个步骤进行*/
}
⚠️:在写hover时冒号前不能有空格,否则没有鼠标悬停效果
错误写法🙅 #top3 :hover{…}
正确写法🙆 #top3:hover{…}
源码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#top1{
width: 100px;
height: 50px;
background: #f00;
}
#top2{
width: 100px;
height: 50px;
background: #f0f;
transition: 3s linear;
}
#top3{
width: 100px;
height: 50px;
background: #ff0;
}
/* 给父元素写hover,划上一个,两个一起动 */
body:hover #top1{
width: 200px;
/* 变化时间为三秒,分六个步骤进行 */
transition: 3s steps(6);
}
body:hover #top2{
width: 200px;
}
/* 将过渡效果单独写在hover中,则只有鼠标悬停时有过渡效果,鼠标离开时没有 */
#top3:hover{
width: 200px;
transition: 1s;
}
</style>
</head>
<body>
<b>top1:变化时间为三秒,分六个步骤进行</b>
<div id="top1">1</div>
<b>top2:变化时间为三秒,匀速进行</b>
<div id="top2">2</div>
<b>top3:将过渡效果单独写在hover中,则只有鼠标悬停时有过渡效果</b>
<div id="top3">3</div>
</body>
</html>
top1:变化时间为三秒,分六个步骤进行
1
top2:变化时间为三秒,匀速进行
2
top3:将过渡效果单独写在hover中,则只有鼠标悬停时有过渡效果
3

浙公网安备 33010602011771号