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

news/发布时间2024/5/19 14:41:31

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.bcls.cn/CXPk/596.shtml

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

相关文章

MySQL(1/3)

基本命令行操作 命令行连接 mysql -uroot -p 回车&#xff0c;然后在下一行输入密码&#xff0c;或者直接在p后写密码 修改密码 updata mysql.user set authentication_stringpassword(原密码) where userroot and Host localhost; 刷新权限 flush privileges; 查看所有数据库…

《Go 简易速速上手小册》第2章:控制结构与函数(2024 最新版)

文章目录 2.1 条件语句&#xff1a;决策的艺术2.1.1 基础知识讲解2.1.2 重点案例&#xff1a;用户角色权限判断实现用户角色权限判断扩展功能实现代码功能扩展&#xff1a;添加或删除用户 2.1.3 拓展案例 1&#xff1a;成绩等级判断实现成绩等级判断功能实现代码扩展功能&#…

SQL Developer 小贴士:显示ADG配置

前提&#xff1a; 已建立ADG配置&#xff0c;主备均为单实例已在SQL Developer中建立了2个连接&#xff0c;分别到ADG的主备节点 然后单击菜单View>DBA&#xff0c;分别连接ADG主备节点&#xff0c;并组织成目录&#xff08;不必须&#xff0c;但建议&#xff09;。 在任一…

04 Aras Innovator二次开发-客户端方法

客户端方法为JS方法。 系统提供了很多触发点&#xff0c;可以嵌入客户端方法&#xff0c;如下&#xff1a; 1 对象类的客户端事件页签&#xff1a; 2 窗体的Form Event和Filed Event 3.关系类的网格事件&#xff1a; 4 属性事件&#xff1a; 5.可自定义Action,触发客户端事件…

4核8g服务器能支持多少人访问?2024新版测评

4核8G服务器支持多少人同时在线访问&#xff1f;阿腾云的4核8G服务器可以支持20个访客同时访问&#xff0c;关于4核8G服务器承载量并发数qps计算测评&#xff0c;云服务器上运行程序效率不同支持人数在线人数不同&#xff0c;公网带宽也是影响4核8G服务器并发数的一大因素&…

如何在PDF 文件中删除页面?

查看不同的工具以及解释如何在 Windows、Android、macOS 和 iOS 上从 PDF 删除页面的步骤&#xff1a; PDF 是最难处理的文件格式之一。曾经有一段时间&#xff0c;除了阅读之外&#xff0c;无法用 PDF 做任何事情。但是今天&#xff0c;有许多应用程序和工具可以让您用它们做…

奔跑吧小恐龙(Java)

前言 Google浏览器内含了一个小彩蛋当没有网络连接时&#xff0c;浏览器会弹出一个小恐龙&#xff0c;当我们点击它时游戏就会开始进行&#xff0c;大家也可以玩一下试试&#xff0c;网址&#xff1a;恐龙快跑 - 霸王龙游戏. (ur1.fun) 今天我们也可以用Java来简单的实现一下这…

【机器学习】数据清洗之识别缺失点

&#x1f388;个人主页&#xff1a;甜美的江 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步…

Vscode vim 插件使用Ctrl+C和V进行复制粘贴到剪切板

Vscode vim 插件使用CtrlC和V进行复制粘贴到剪切板 使用这一个插件的时候复制粘贴和其他软件互动的时候体验不好, 并且不可以用Ctrl c, Ctrl v很不爽 "vim.commandLineModeKeyBindings": [{"before" : ["Ctrl", "c"],"after&q…

ThreadLocal(3):ThreadLocal的内部结构

下面介绍ThreadLocal的内部结构&#xff0c;探究它能够实现线程数据隔离的原理。 1 常见的误解 ​如果我们不去看源代码的话&#xff0c;可能会猜测ThreadLocal是这样子设计的&#xff1a;每个ThreadLocal都创建一个Map&#xff0c;然后用线程作为Map的key&#xff0c;要存储…

【WEB环境】-LNTMP或LAMP结构搭建(记录)

一、手工安装搭建 1.1 LNTMP 【nginx:rpm安装】 安装根目录路径&#xff1a;/usr/local/nginx 启动&#xff1a;/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 停止kill -QUIT 2072 ./nginx -s stop /usr/local/nginx/sbin/nginx -s stop 重启…

运行jar时提示缺少依赖的类

供应商丢过来一个jar&#xff0c;是用Java写的Windows桌面程序&#xff0c;运行jar时提示缺少依赖的类&#xff0c;一看就是打包没带依赖的库&#xff0c;下面是解决方法&#xff1a; 1、解压缩jar&#xff0c;查看 META-INF 目录下的 MANIFEST.MF&#xff0c;看看都引用了哪些…

代码随想录算法训练营29期|day52 任务以及具体安排

第九章 动态规划part09 198.打家劫舍 // 动态规划 class Solution {public int rob(int[] nums) {if (nums null || nums.length 0) return 0;if (nums.length 1) return nums[0];int[] dp new int[nums.length];dp[0] nums[0];dp[1] Math.max(dp[0], nums[1]);for (int …

Python学习路线图

防止忘记&#xff0c;温故知新 进阶路线

分享一个学英语的网站

名字叫&#xff1a;公益大米网​​​​​​​ Freerice 这个网站是以做题的形式来记忆单词&#xff0c;题干是一个单词&#xff0c;给出4个选项&#xff0c;需要选出其中最接近题干单词的选项。 答对可以获得10粒大米&#xff0c;网站的创办者负责捐赠。如图 触发某些条件&a…

uniapp的配置和使用

①安装环境和编辑器 注册小程序账号 微信开发者工具下载 uniapp 官网 HbuilderX 下载 首先先下载Hbuilder和微信开发者工具 &#xff08;都是傻瓜式安装&#xff09;&#xff0c;然后注册小程序账号&#xff1a; 拿到appid&#xff1a; ②简单通过demo使用微信开发者工具和…

【JavaScript】分支语句

目录 一、if语句 二、三元运算符 三、switch语句 JS中分支语句可以分为三种&#xff0c;分别是if语句、三元运算符、switch语句。 一、if语句 let num 10 if (num > 20) {console.log("大于20"); } else if (num < 20) {console.log("小于20");…

使用Autodl云服务器或其他远程机实现在本地部署知识图谱数据库Neo4j

本篇博客的目的在于提高读者的使用效率 温馨提醒&#xff1a;以下操作均可在无卡开机状态下就可完成 一.安装JDK 和 Neo4j 1.1 ssh至云服务器 打开你的pycharm或者其他IDE工具或者本地终端&#xff0c;ssh连接到autodl的服务器。(这一步很简单如下图) 1.2 安装JDK 由于我…

【JVM篇】什么是类加载器,有哪些常见的类加载器

文章目录 &#x1f354;什么是类加载器&#x1f6f8;有哪些常见的类加载器 &#x1f354;什么是类加载器 负责在类加载过程中&#xff0c;将字节码信息以流的方式获取并加载到内存当中 &#x1f6f8;有哪些常见的类加载器 启动类加载器 启动类加载器是有Hotspot虚拟机通过的类…

【ArcGIS Pro二次开发】(81):玩个花活_控规指标块生成

一、要实现的效果 废话不多说&#xff0c;这次要实现的是类似控规指标块的标注&#xff1a; 这里只是示例&#xff0c;用了5个格子&#xff0c;做成9个格子也是可以的。 实现这个效果最关键的是要用到Pro中的复合标注。 关于复合标注的用法可以搜一下帮助里的【使用复合注释…
推荐文章