html+css+jquery实现轮播图自动切换、左右切换、点击切换

pc端也好、移动端也好,轮播图很常见,今天用html+css+jquery实现小米商城轮播图,套UI框架更容易实现

在这里插入图片描述

步骤1:把静态轮播图用div+css布局出来,采用盒子模型、相对绝对定位实现

代码如下:

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>.box {height: 460px;width: 1000px;position: relative;}.box-img {position: absolute;left: 0;top: 0;}.box-img img {height: 460px;width: 1000px;}/*左右切换*/.box-left {position: absolute;left: 0;top: 195px;width: 35px;height: 70px;border-radius: 0 5px 5px 0;text-align: center;line-height: 70px;font-size: 27px;color: #b0afad;}.box-left:hover {background-color: #777777;color: #ffffff;}.box-right {position: absolute;right: 0;top: 195px;width: 35px;height: 70px;border-radius: 5px 0 0 5px;text-align: center;line-height: 70px;font-size: 27px;color: #b0afad;}.box-right:hover {background-color: #777777;color: #ffffff;}/*圆点*/.box-dot {position: absolute;right: 50px;bottom: 20px;}.box-dot ul {list-style: none;padding: 0;margin: 0;}.box-dot ul li {width: 14px;height: 14px;border-radius: 100%;background-color: #4a5460;float: left;margin-right: 10px;}.box-dot ul li:hover, .box-dot ul li:nth-child(1) {background-color: #ffffff;}</style>
</head>
<body>
<div class="box"><!-- 轮播图 --><div class="box-img"><img src="static/image/1.jpg"></div><div class="box-img"><img src="static/image/2.jpg"></div><div class="box-img"><img src="static/image/6.jpg"></div><div class="box-img"><img src="static/image/4.jpg"></div><div class="box-img"><img src="static/image/5.jpg"></div><div class="box-img"><img src="static/image/3.jpg"></div><!-- 左右切换 --><div class="box-left">&lt;</div><div class="box-right">&gt;</div><!-- 圆点 --><div class="box-dot"><ul><li></li><li></li><li></li><li></li><li></li><li></li></ul></div>
</div>
</body>
</html>

效果如下图:
在这里插入图片描述

步骤2:实现轮播图自动切换

需要引入jquery;

<script src="static/js/jquery.min.js"></script>

定时器实现4s自动切换轮播图

<script>$(function () {var index = 0;setInterval(function () {$(".box-img").css("opacity", 0);$(".box-img").eq(index).css("opacity", 1);if ($(".box-img").length - 1 === index) {index = 0} else {index++;}}, 4000)})
</script>
.box-img {.../* 设置属性是否透明,0是透明,1是不透明 */opacity: 0;/* 过渡效果,延迟1.5s */transition: 1.5s;
}.box-img:nth-child(1) {/* 设置属性是否透明,0是透明,1是不透明,默认显示第一张轮播图 */opacity: 1;
}

完毕,轮播图能够自动切换了

步骤3:左右切换,左右点击事件手动切换

实现代码如下:

// 左右切换
$(".box-left").click(function () {// 点击左,index减1,减到最小时让成为最大if (index === 0) {index = $(".box-img").length - 1;} else {index--;}$(".box-img").css("opacity", 0);$(".box-img").eq(index).css("opacity", 1);
});
$(".box-right").click(function () {// 点击右,index加1,加到最大时让成为最小if (index === $(".box-img").length - 1) {index = 0;} else {index++;}$(".box-img").css("opacity", 0);$(".box-img").eq(index).css("opacity", 1);
});

到目前存在自动切换轮播图,也存在手动切换轮播图。就可能存在手动切换时,又自动切换,客户体验就不太好,可以优化成,手动切换轮播图时,自动切换轮播图关掉,手动切换完成后,又开启自动切换轮播图。

优化后,自动切换和左右切换js代码如下:

<script>$(function () {var index = 0;var timer;// 自动切换function f() {var timer = setInterval(function () {$(".box-img").css("opacity", 0);$(".box-img").eq(index).css("opacity", 1);if ($(".box-img").length - 1 === index) {index = 0} else {index++;}}, 4000);}f();// 左右切换$(".box-left").click(function () {clearInterval(timer);// 点击左,index减1,减到最小时让成为最大if (index === 0) {index = $(".box-img").length - 1;} else {index--;}$(".box-img").css("opacity", 0);$(".box-img").eq(index).css("opacity", 1);f();});$(".box-right").click(function () {clearInterval(timer);// 点击右,index加1,加到最大时让成为最小if (index === $(".box-img").length - 1) {index = 0;} else {index++;}$(".box-img").css("opacity", 0);$(".box-img").eq(index).css("opacity", 1);f();});})
</script>

步骤4:点击切换,点击圆点事件手动切换

代码如下:

$(".btn").click(function () {clearInterval(timer);// 获取第几个圆点index = $(this).index()// alert(index)$(".box-img").css("opacity", 0);$(".box-img").eq(index).css("opacity", 1);$(".btn").css("background-color", "#4a5460");$(".btn").eq(index).css("background-color", "#ffffff");f();
});

自动切换、左右切换,其对应圆点背景色也设置成白色

html+css+jquery实现轮播图自动切换、左右切换、点击切换,代码如下:

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>.box {height: 460px;width: 1000px;position: relative;}.box-img {position: absolute;left: 0;top: 0;opacity: 0;transition: 1.5s;}.box-img:nth-child(1) {opacity: 1;}.box-img img {height: 460px;width: 1000px;}/*左右切换*/.box-left {position: absolute;left: 0;top: 195px;width: 35px;height: 70px;border-radius: 0 5px 5px 0;text-align: center;line-height: 70px;font-size: 27px;color: #b0afad;}.box-left:hover {background-color: #777777;color: #ffffff;}.box-right {position: absolute;right: 0;top: 195px;width: 35px;height: 70px;border-radius: 5px 0 0 5px;text-align: center;line-height: 70px;font-size: 27px;color: #b0afad;}.box-right:hover {background-color: #777777;color: #ffffff;}/*圆点*/.box-dot {position: absolute;right: 50px;bottom: 20px;}.box-dot ul {list-style: none;padding: 0;margin: 0;}.box-dot ul li {width: 14px;height: 14px;border-radius: 100%;background-color: #4a5460;float: left;margin-right: 10px;}.box-dot ul li:hover, .box-dot ul li:nth-child(1) {background-color: #ffffff;}</style>
</head>
<body>
<div class="box"><!-- 轮播图 --><div class="box-img"><img src="static/image/1.jpg"></div><div class="box-img"><img src="static/image/2.jpg"></div><div class="box-img"><img src="static/image/6.jpg"></div><div class="box-img"><img src="static/image/4.jpg"></div><div class="box-img"><img src="static/image/5.jpg"></div><div class="box-img"><img src="static/image/3.jpg"></div><!-- 左右切换 --><div class="box-left">&lt;</div><div class="box-right">&gt;</div><!-- 圆点 --><div class="box-dot"><ul><li class="btn"></li><li class="btn"></li><li class="btn"></li><li class="btn"></li><li class="btn"></li><li class="btn"></li></ul></div>
</div>
</body>
<script src="static/js/jquery.min.js"></script>
<script>$(function () {var index = 0;var timer;// 自动切换function f() {var timer = setInterval(function () {$(".box-img").css("opacity", 0);$(".box-img").eq(index).css("opacity", 1);$(".btn").css("background-color", "#4a5460");$(".btn").eq(index).css("background-color", "#ffffff");if ($(".box-img").length - 1 === index) {index = 0} else {index++;}}, 4000);}f();// 左右切换$(".box-left").click(function () {clearInterval(timer);// 点击左,index减1,减到最小时让成为最大if (index === 0) {index = $(".box-img").length - 1;} else {index--;}$(".box-img").css("opacity", 0);$(".box-img").eq(index).css("opacity", 1);$(".btn").css("background-color", "#4a5460");$(".btn").eq(index).css("background-color", "#ffffff");f();});$(".box-right").click(function () {clearInterval(timer);// 点击右,index加1,加到最大时让成为最小if (index === $(".box-img").length - 1) {index = 0;} else {index++;}$(".box-img").css("opacity", 0);$(".box-img").eq(index).css("opacity", 1);$(".btn").css("background-color", "#4a5460");$(".btn").eq(index).css("background-color", "#ffffff");f();});// 点击圆点切换轮播图$(".btn").click(function () {clearInterval(timer);// 获取第几个圆点index = $(this).index()// alert(index)$(".box-img").css("opacity", 0);$(".box-img").eq(index).css("opacity", 1);$(".btn").css("background-color", "#4a5460");$(".btn").eq(index).css("background-color", "#ffffff");f();});})
</script>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/478457.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CANoe示例分析】EthernetTC8Test示例的一个优化

当我们执行完CANoe TC8示例工程中的一条测试用例时,我们会在Trace窗口分析整个的通信过程。 如果你仔细观察,你会发现每条报文在Trace窗口中出现了两次,且服务原语的解析内容也出现了两次。这样的问题会造成我们分析时的困扰,尤其是在报文非常多的时候,侵占Trace窗口界面。…

Facebook Horizon:探索虚拟现实中的社交空间

随着科技的不断进步&#xff0c;虚拟现实&#xff08;VR&#xff09;技术正成为社交互动和娱乐体验的新前沿。在这个数字时代&#xff0c;Facebook作为全球最大的社交媒体平台之一&#xff0c;正在引领虚拟社交的新时代&#xff0c;其推出的虚拟社交平台Facebook Horizon成为了…

知识蒸馏实战代码教学一(原理部分)

一、知识蒸馏的来源 知识蒸馏&#xff08;Knowledge Distillation&#xff09;源自于一篇由Hinton等人于2015年提出的论文《Distilling the Knowledge in a Neural Network》。这个方法旨在将一个大型、复杂的模型的知识&#xff08;通常称为教师模型&#xff09;转移到一个小型…

备战蓝桥杯---动态规划(入门3之子串问题)

本专题再介绍几种经典的字串问题。 这是一个两个不重叠字串和的问题&#xff0c;我们只要去枚举分界点c即可&#xff0c;我们不妨让c作为右区间的左边界&#xff0c;然后求[1,c)上的单个字串和并用max数组维护。对于右边&#xff0c;我们只要反向求单个字串和然后选左边界为c的…

java基础训练题(2)

一、题目 1. 以下程序输出&#xff08;D&#xff09; public static void main(String[] args) {int num 2;switch (num) {case 1:num;case 2:num;case 3:num;default:num;break;}System.out.println(num);} } A&#xff1a;2 B&#xff1a;3 C&#xff1a;4 D&#xff…

Maxwell - 增量数据

前言 今天来学习一个新的大数据小工具 Maxwell &#xff0c;它和 Sqoop 很像。Sqoop主要用于在 Hadoop &#xff08;比如 HDFS、Hive、HBase 等&#xff09;和关系型数据库之间进行数据的批量导入和导出&#xff0c;而 Maxwell 则主要用于监控数据库的变化&#xff08;通过监控…

Electron实战之菜单与托盘

菜单、托盘是桌面端应用必备的功能之一&#xff0c;我们通常会在菜单上配置应用常用的&#xff1a;偏好设置、显示隐藏、打开文件等功能&#xff0c;在托盘内设置&#xff1a;退出、重启、帮助等辅助性功能&#xff0c;帮助用户方便快捷地控制应用的一些系统功能。系统托盘实际…

ubuntu解决“E: Unable to locate package lrzsz“

今天在ubuntu上安装rzsz包时报错&#xff0c;提示无法定位包&#xff0c;提示如下 出现这个问题是因为apt的源没有更新&#xff0c;我们直接说解决办法 把下面的命令执行一遍即可 sudo add-apt-repository main sudo add-apt-repository universe sudo add-apt-repository re…

GitHub仓库文件部署

目录 软件下载和安装 git创建仓库 Github仓库配置 git管理软件配置 Git管理 软件下载和安装 首先需要下载git&#xff0c;以及git管理软件&#xff0c;对其进行安装。 git创建仓库 首先需要创建仓库&#xff0c;在本地仓库文件夹cmd之后输入以下指令创建git仓库文件。 …

2024-2-19-IO作业

1> 要求: 源代码: #include <myhead.h> #define MAXSIZE 64 int main(int argc, char const *argv[]) {FILE *src NULL;FILE *dest NULL;if ((src fopen("./hbao.bmp", "r")) NULL){perror("fopen error");return -1;}if ((dest …

Vue | (三)使用Vue脚手架(上) | 尚硅谷Vue2.0+Vue3.0全套教程

文章目录 &#x1f4da;初始化脚手架&#x1f407;创建初体验&#x1f407;分析脚手架结构&#x1f407;关于render&#x1f407;查看默认配置 &#x1f4da;ref与props&#x1f407;ref属性&#x1f407;props配置项 &#x1f4da;混入&#x1f4da;插件&#x1f4da;scoped样…

150173-72-1,BODIPY 558/568 羧酸,一种疏水性荧光染料

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;BODIPY 558/568 羧酸&#xff0c;BODIPY 558/568 carboxylic acid &#xff0c;BODIPY 558/568 COOH&#xff0c;150173-72-1 一、基本信息 产品简介&#xff1a;BODIPY 558/568 COOH拥有高量子产率和消光系数&…