CSS 实现轮播图效果(自动切换、无缝衔接、小圆点切换)_CSS教程_CSS_网页制作-深圳网站优化推广公司

CSS 实现轮播图效果(自动切换、无缝衔接、小圆点切换)

  发布时间:2023-12-27 17:16:06   作者:Fetters04   我要评论
这篇文章主要介绍了CSS 实现轮播图效果(自动切换、无缝衔接、小圆点切换),,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

案例 - 实现原神官网中的轮播图

本文中的代码着力实现该图中的效果,一个简单的轮播图:

由于没有使用到 JavaScript 所以最终呈现的效果不够完美
!轮播图的实现参考该 博客 (更详细)

1、基础 html 代码

  • 使用 ul-li 放入多张需要轮播的图片
  • 使用 input 标签指定 type=“radio” 创建小圆点按钮,并设置单独的 id 属性
  • 使用 label 的 for 属性指定到各个 input 按钮的 id
  • 将各个部分链接到特定的 css 样式中
<div class="carousel_map">
	<div class="slide">
		<!--小圆点-->
		<input type="radio" name="pic" id="pic1" checked/>
		<input type="radio" name="pic" id="pic2"/>
		<input type="radio" name="pic" id="pic3"/>
		<input type="radio" name="pic" id="pic4"/>
		<div class="labels">
			<label for="pic1"></label>
			<label for="pic2"></label>
			<label for="pic3"></label>
			<label for="pic4"></label>
		</div>
		<!--需要轮播的图片-->
		<ul class="list">
			<li class="item">
				<a href="###">
					<img src="img/news1.jpg" style="height: 100%; width: 100%;"/>
				</a>
			</li>
			<li class="item">
				<a href="###">
					<img src="img/news2.jpg" style="height: 100%; width: 100%;"/>
				</a>
			</li>
			<li class="item">
				<a href="###">
					<img src="img/news3.jpg" style="height: 100%; width: 100%;"/>
				</a>
			</li>
			<li class="item">
				<a href="###">
					<img src="img/news4.jpg" style="height: 100%; width: 100%;"/>
				</a>
			</li>
			<li class="item">
				<a href="###">
					<img src="img/news1.jpg" style="height: 100%; width: 100%;"/>
				</a>
			</li>
		</ul>
	</div>
</div>

2、链接 css 样式

完整 css 代码

* {
	margin: 0;
	padding: 0;
}
.carousel_map {
	width: 640px;
	height: 400px;
}
.slide {
	width: inherit;
	height: inherit;
	overflow: hidden;
	position: relative;
}
/* 鼠标放上去显示按钮 */
.slide:hover .labels {
	display: flex;
}
.slide:hover .list {
	animation: none;
}
.slide input {
	display: none;
}
/* 按钮位置 */
.labels {
	position: absolute;
	bottom: 0.5em;
	z-index: 1;
	width: inherit;
	justify-content: center;
	display: none;	/* 鼠标移开隐藏按钮 */
}
/* 按钮样式 */
.labels label {
	width: 1rem;
	height: 1rem;
	border-radius: 50%;
	margin: 0 0.3rem;
	border: 0.1rem solid #fff;
	background-color: transparent;
	box-sizing: border-box;
	cursor: pointer;
}
/* 选择哪个按钮就有被点击的效果 */
input[id=pic1]:checked ~ .labels label[for=pic1],
input[id=pic2]:checked ~ .labels label[for=pic2],
input[id=pic3]:checked ~ .labels label[for=pic3],
input[id=pic4]:checked ~ .labels label[for=pic4] {
	background-color: #fff;
	border: 0.1rem solid #fff;
}
/* 按钮控件选择图片 */
input[id=pic1]:checked ~ .list {
	transform: translate(calc(0 * 640px));
}
input[id=pic2]:checked ~ .list {
	transform: translate(calc(-1 * 640px));
}	
input[id=pic3]:checked ~ .list {
	transform: translate(calc(-2 * 640px));
}
input[id=pic4]:checked ~ .list {
	transform: translate(calc(-3 * 640px));
}
ul {
	list-style: none;
}
.list {
	width: calc(5 * 640px);
	height: inherit;
	position: relative;
	/* 设置动画效果 */
	animation: move 15s ease 1s infinite;
}
/* 动画关键帧轮播 */
@keyframes move {
	0% {
		transform: translate(calc(0 * 640px));
	}
	25% {
		transform: translate(calc(-1 * 640px));
	}
	50% {
		transform: translate(calc(-2 * 640px));
	}
	75% {
		transform: translate(calc(-3 * 640px));
	}
	100% {
		transform: translate(calc(-4 * 640px));
	}
}
.item {
	width: 640px;
	height: 400px;
	float: left;
}

定义轮播图的宽高

.carousel_map 中定义要展示的轮播图区域的宽高

* {
	margin: 0;
	padding: 0;
}
.carousel_map {
	width: 640px;
	height: 400px;
}
.slide {
	width: inherit;
	height: inherit;
}

图中即为要展示的区域

将所有图片排成一排

所有图片左浮动,调整 .list 可容纳的宽度,并去掉 ul 的默认样式

ul {
	list-style: none;
}
.list {
	width: calc(4 * 640px);
	height: inherit;
	position: relative;
}
.item {
	width: 640px;
	height: 400px;
	float: left;
}

现实无缝切换轮播效果

1)通过动画让 .list 水平左移,外部 .slide 窗口保持不变,将超出 .slide 的部分隐藏
2)当动画轮播完最后一张图时会跳到 图1 导致轮播不连贯,所以可以在 html 中多加一张 图1 在最后
3)再给 .list 增加一倍的宽度

.slide {
	width: inherit;
	height: inherit;
	/* 新增 */
	overflow: hidden;
	position: relative;
}
.list {
	/* 多加了一张图的宽度 */
	width: calc(5 * 640px);
	height: inherit;
	position: relative;
	/* 设置动画效果 */
	animation: move 15s ease 1s infinite;
}
/* 动画关键帧轮播 */
@keyframes move {
	0% {
		transform: translate(calc(0 * 640px));
	}
	25% {
		transform: translate(calc(-1 * 640px));
	}
	50% {
		transform: translate(calc(-2 * 640px));
	}
	75% {
		transform: translate(calc(-3 * 640px));
	}
	100% {
		transform: translate(calc(-4 * 640px));
	}
}

目前已经出现了轮播效果:

小圆点切换

1)设置鼠标经过轮播图区域时 停止动画
2)在HTML代码中添加 单选按钮,通过单选按钮的选中切换图片,又因为单选按钮无法设置样式,所以使用 label 标签配合生成圆点样式。
3)将单选按钮 隐藏 ,再把制作好的 小圆点 定位到图片区域,以及添加选中效果。

/* 鼠标经过轮播图区域停止动画 */
.slide:hover .list {
	animation: none;
}
/* 鼠标放上去显示按钮 */
.slide:hover .labels {
	display: flex;
}
/* 将单选按钮隐藏 */
.slide input {
	display: none;
}
/* 制作的小圆点按钮 */
/* 按钮位置 */
.labels {
	position: absolute;
	bottom: 0.5em;
	z-index: 1;
	width: inherit;
	justify-content: center;
	display: none;	/* 鼠标移开隐藏按钮 */
}
/* 按钮样式 */
.labels label {
	width: 1rem;
	height: 1rem;
	border-radius: 50%;
	margin: 0 0.3rem;
	border: 0.1rem solid #fff;
	background-color: transparent;
	box-sizing: border-box;
	cursor: pointer;
}

通过圆点按钮选中图片切换

/* 选择哪个按钮就有被点击的效果 */
input[id=pic1]:checked ~ .labels label[for=pic1],
input[id=pic2]:checked ~ .labels label[for=pic2],
input[id=pic3]:checked ~ .labels label[for=pic3],
input[id=pic4]:checked ~ .labels label[for=pic4] {
	background-color: #fff;
	border: 0.1rem solid #fff;
}
/* 按钮控件选择图片 */
input[id=pic1]:checked ~ .list {
	transform: translate(calc(0 * 640px));
}
input[id=pic2]:checked ~ .list {
	transform: translate(calc(-1 * 640px));
}	
input[id=pic3]:checked ~ .list {
	transform: translate(calc(-2 * 640px));
}
input[id=pic4]:checked ~ .list {
	transform: translate(calc(-3 * 640px));
}

如图,即可通过小圆点进行图片间的切换了:

到此这篇关于纯 CSS 实现轮播图效果(自动切换、无缝衔接、小圆点切换)的文章就介绍到这了,更多相关css轮播图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

相关文章

  • CSS3简易切割轮播图的实现代码

    这篇文章主要介绍了CSS3简易切割轮播图的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学
    2020-12-09
  • 纯css实现轮播图banner自动轮换效果

    这篇文章主要介绍了纯css实现轮播图banner自动轮换效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-15
  • 纯HTML和CSS实现JD轮播图效果

    这篇文章主要介绍了纯HTML和CSS实现JD轮播图效果,需要的朋友可以参考下
    2018-06-01

最新评论

关于我们 - 广告合作 - 联系我们 - 免责声明 - 网站地图 - 投诉建议 - 在线投稿

©CopyRight 2006-2025 JB51.Net

相关内容推荐

影集相册制作网站个人网站制作框架申请制作网站报告微信网站制作企业黄贝论坛网站制作哪家快虞城专业制作网站哪家好武义官方网站制作德惠网站制作方案山口百惠电影网站制作龙泉寺网站制作壁纸十堰网站制作小玩具电脑音乐制作的网站如何制作一个类似斗鱼的网站企业网站制作设计价格微信制作网站企业自己电脑怎么制作网站吗教育类网站制作思路临海网站视频如何制作gif江油网站建设制作策划哪里好运营好的网站制作公司制作游戏的安卓网站衡水网站制作的地方新安网站外包门头制作网站制作设计作品羊脂球电影网站制作怎样写简历制作网站旅游网站制作视频的软件网站的制作视频中卫制作网站推荐金华彩票网站怎么制作创建网站静态也制作教程陕西银川网站制作东阳如何搭建制作网站票务海航网站视频制作泄密网站制作手工虐恋网站视频制作古建筑模型网站制作制作个人网站教学视频远程服务器上怎么制作网站七夕促销海报制作网站常州李春辉网站制作网站设计制作设计方案在线图片制作网站哪个好舟山深圳网站制作培训班哪个好服装杂志网站制作制作相册书的网站泰州低价制作网站网站制作霸屏篮球鞋网站制作表情包后期制作常用网站兰蔻网站制作冰淇淋玉林制作网站app 网站制作 上海关于制作软件的网站辽宁数字网站制作设计珠海二维动画制作公司网站城桥微信网站设计制作动态网站设计与制作个人总结售后好的网站制作制作环保网站网页报告放心网站制作设计怎么选急切头像自己制作网站怎么制作漫威网站自己制作的网站如何下载在dw怎样制作企业网站免费单页制作网站模板下载三八妇女节海报制作网站襄樊制作网站江苏网站制作电话网站制作三级页面车祸网站制作小玩具霸州企业网站制作清乐制作网站模板多少钱米易县网站制作龙岗网站制作哪家强坪山网站制作如何宁都网站制作公司奇瑞网站制作视频新密宣传网站制作下载网站怎么制作软件用图片制作视频的网站app制作 网站寻人启事网站制作表格种子网站制作制作视频模板哪个网站好制作一个电商网站要多少钱泸州网站制作怎么样本溪商城网站制作商店起名网站制作挑拨近义词网站制作网通网站制作蛋糕诸城网站制作价格原宣传网站制作大港网站制作哪家便宜桐乡制作网站属于什么岗位天威网站制作贴纸燕莎模板网站制作福田信息类网站制作都有哪些网站制作软件使用教程郑州中院网站制作招标网站的制作教学设计杭州网站制作的网站菏泽h5页面制作网站上车网站视频制作视频制作网站自我介绍星光灿烂猪八戒网站制作婚庆网站制作蛋糕深圳最好的门户网站制作公司安新网站制作如何制作自己的音乐网站制作工单网站流程网页设计甜品网站怎么制作齐齐哈尔门户网站制作高端网站设计高端网站制作兖州制作企业网站个人制作的ppt被放到某网站市北网站制作报价企业网站制作成本费用自动充值游戏的网站制作自动的东莞网站制作公司视频特效制作免费 网站艺术照网站制作起泡克拉玛依网站首页制作大明宫电影网站制作宠物网站制作干花qq名片在线制作网站表白网站源码网页制作制作网站是什么经营范围手机网站制作网页搜索网站制作公司好吗霸州自适应网站制作网通网站制作蛋糕最好的网站制作平台姜堰高端网站制作热线看书网站制作冰淇淋7分钟制作网站毕节市网站制作公司无锡网站制作先信新互动网络汕尾标书制作网站制作网站排名青岛网站制作需要多少钱通化网站制作服务什么制作网站免费比较好的九江自考网站制作机械网站搭建制作css网站制作教程海南乐东房产网站制作三八妇女节海报制作网站东阳如何制作商城购物网站照片制作成相册的网站邢台网站制作壁纸的软件杭州大型网站制作昌邑个人网站制作陆丰网站制作价格教学课件网站制作莱西如何制作网站GL电影网站制作网页制作网站素材图片制作照片的网站哪个好网站弹窗广告牌制作泗阳企业网站推广制作万州网站制作制作公司企业网站制作开发费会计分录古建筑模型网站制作宁波官方网站制作商业门户网站制作宠物食品网站制作壁纸开发网站设计制作帮助制作游戏的网站陆丰网站制作价格汉阳网站建设制作公司怎么写代码自己制作网站双色球网站制作模板介休商城网站制作济南网站制作视频素材网站制作原型工具长沙网站制作服务公司网站静态也制作教程广告制作店网站点评网站制作壁纸杭州品牌网站制作宁河免费自己制作网站南充网站制作怎么样青岛网站设计与制作东坑营销网站制作米奇网站制作壁纸制作点餐类网站制作好的系统怎么上传到网站传奇高端网站制作地产网站制作蛋糕如何自己制作网站手机浏览器成都网站logo设计制作海口网站制作过程轴对称课件网站制作制作网站的公司潍坊哈萨克网站制作冰淇淋如何做好网站制作设计新乡品牌网站制作公司网站如何制作成电脑软件贴纸制作网站

合作伙伴

深圳网站优化推广公司

龙岗网络公司
深圳网站优化
龙岗网站建设
坪山网站建设
百度标王推广
天下网标王
SEO优化按天计费
SEO按天计费系统