<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>css实现轮播图</title>
<style>
body {
margin: 0
background: #dfe
}
ul {
margin: 0
padding: 0
list-style: none
}
.my-swiper {
position: relative
width: 800px
height: 450px
margin: 100px auto
overflow: hidden
}
.swiper-list {
position: absolute
top: 0
left: 0
width: 4000px
height: 100%
overflow: hidden
animation: swiper 10s steps(1, end) infinite
transition: left 1s linear
}
.swiper-slide {
width: 800px
height: 100%
float: left
overflow: hidden
}
.swiper-slide a {
display: block
height: 100%
}
.swiper-slide img {
display: block
width: 100%
height: 100%
object-fit: cover
}
/* 分页 */
.pagination {
position: absolute
bottom: 0
left: 0
right: 0
line-height: 45px
background: rgba(255, 255, 255, 0.3)
text-align: center
}
.dot {
display: inline-block
width: 10px
height: 10px
margin: 0 2px
background: #fff
border-radius: 50%
}
/* 橙色小圆点 */
.dot.active {
position: absolute
left: 356px
top: 18px
width: 11px
height: 11px
margin: 0
background: tomato
animation: swiper-dot 10s steps(1, end) infinite
transition: left 1s linear
}
@keyframes swiper {
0%,
100% {
left: 0
}
20% {
left: -800px
}
40% {
left: -1600px
}
60% {
left: -2400px
}
80% {
left: -3200px
}
/* 100% {
left: -3200px
} */
}
@keyframes swiper-dot {
0%,
100% {
left: 358px
}
20% {
left: 376px
}
40% {
left: 395px
}
60% {
left: 413px
}
80% {
left: 432px
}
}
</style>
</head>
<body>
<div>
<ul>
<li class="swiper-slide swiper-slide1">
<a href="javascript:">
<img src="banner.jpg" alt="">
</a>
</li>
<li class="swiper-slide swiper-slide2">
<a href="javascript:">
<img src="banner1.jpg" alt="">
</a>
</li>
<li class="swiper-slide swiper-slide3">
<a href="javascript:">
<img src="banner2.jpg" alt="">
</a>
</li>
<li class="swiper-slide swiper-slide4">
<a href="javascript:">
<img src="banner.jpg" alt="">
</a>
</li>
<li class="swiper-slide swiper-slide5">
<a href="javascript:">
<img src="banner1.jpg" alt="">
</a>
</li>
</ul>
<div>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span class="dot active"></span>
</div>
</div>
</body>
</html>
1、用脚本(js或jquery)实现:
onmouseover的时候显示播放按钮层(div),onmouseout的时候再隐藏播放按钮层。
2、用css实现:
:hover 伪类在鼠标移到元素上时向此元素添加特殊的样式。
如下是我做的一个小案例(css实现),比较简单,提供一种思路。
【源代码见附件,仅供学习参考使用】。
你说的这个情况我也注意到过比如说百度视频还有很多视频,我也注意过源码
通用的,大部分的做法是你说的第一种,就是元素先隐藏,等hover的时候再展示出来
也有的是通过js判断的
但是发现大部分都是通过css控制的,我觉得这样做的好处是一旦加载完,只要样式兼容,就没有额外的js开销了,一方面减少js的引用节省内存,一方面这种特效也能满足需要,无需在用js判断,过多的js对网页来说也并非良好的体验
不过最好的办法应该是,css定义当hover时调用另一个css样式,这个样式包含这个图片,你也不用在每个地方都加图片了,对吧
希望能帮助到你