纯JS手写轮播图(代码逻辑清晰,通俗易懂)
zhezhongyun 2024-12-26 17:42 36 浏览
作者: 梦里梦中梦
转发链接:https://mp.weixin.qq.com/s/6J0uJKaC4SPlt2h7oeSP-Q
前言
轮播图出现在各大网站,基本上人们进入任何一个网站的时候,第一眼看见的内容就是轮播图,三两张图片,有的数量更多一些。这些就是网站建设中所谓的banner广告轮播图,而这些信息往往是浏览网页时的第一视觉,所以这些轮播广告图可作为网站建设中至关重要的元素。首页banner广告轮播图的存在不光光起到了装饰网站的作用,它所带来的网络营销效果才是真正意义上的存在价值。
淘宝轮播图
京东轮播图
天猫轮播图
所以在网站建设的时候,网站banner图一定要精心设计,不可敷衍了事,Banner图的数量和轮播的交互方式等等都要经过深思熟虑,美观固然重要,但是也要考虑到用户体验,以及广告图所带来的营销效果。我们一直认为,首页轮播广告图在整个网站建设的重要性不可忽视。
我给大家提供一个纯Js轮播图示例代码,大家可在此基础上进行改进,包括指示器的样式,容器的大小,按钮的样式,轮播时间等等都可以修改的。该代码通俗易懂,Js部分逻辑清晰。赶紧动手起来吧朋友们,创造属于自己的样式!!
我给大家提供轮播图示例
01 CSS代码
<style>
*{
list-style: none;
}
#wrap {
width: 590px;
height: 470px;
margin: 150px auto;
position: relative;
cursor: pointer;
}
#pic li {
display: none;
position: absolute;
top: 0;
left: 0;
z-index: 1;
}
#num {
position: absolute;
z-index: 2;
bottom: 20px;
left: 46px;
}
#num li {
float: left;
width: 8px;
height: 8px;
margin: 5px;
border-radius: 50%;
border: 1px solid #FFFFFF;
line-height: 20px;
background: transparent;
text-align: center;
}
#num li.active {
background: #fefefe;
}
.arrow {
z-index: 3;
height: 40px;
width: 30px;
position: absolute;
top: 45%;
line-height: 40px;
background: rgba(0, 0, 0, 0.3);
text-align: center;
display: none;
}
#wrap:hover .arrow {
display: block;
}
.arrow:hover {
background: rgba(0, 0, 0, 0.7);
}
#left {
left: 0;
}
#right {
right: 0;
}
</style>
02 HTML 代码
<!--轮播图开始注意这里的图片路径,要使用自己的图片路径哦--> <div id="wrap"> <ul id="pic">
<li style="display: none;"><img src="images/f7a4711ce9487466.jpg" alt=""></li>
<li style="display: none;"><img src="images/ecc8690ae254c16f.jpg" alt=""></li>
<li style="display: block;"><img src="images/46cdcd636c8608e2.jpg" alt=""></li>
<li style="display: none;"><img src="images/79dd3ce6165857f7.jpg" alt=""></li>
<li style="display: none;"><img src="images/b31ec8402a42fbb3.jpg" alt=""></li>
<li style="display: none;"><img src="images/93c8a83baeaa7f49.jpg" alt=""></li>
<li style="display: none;"><img src="images/cf523718998ccd27.jpg" alt=""></li>
</ul>
<ul id="num">
<li class="active"></li>
<li class=""></li>
<li class=""></li>
<li class=""></li>
<li class=""></li>
<li class=""></li>
<li class=""></li>
</ul>
<a href="javascript:;" class="arrow" id="left"><</a>
<a href="javascript:;" class="arrow" id="right">></a>
</div>
03 JS 代码
<script type="text/javascript">
function $(id) {
return document.getElementById(id);
}
window.onload = function() {
var oLeft = $("left");
var oRight = $("right");
var index = 0;
var timer = null;
var pic = $("pic").getElementsByTagName("li");
var num = $("num").getElementsByTagName("li");
var oDiv = $("wrap");
oRight.onclick = function() {
index++;
if (index >= pic.length) {
index = 0;
}
change(index);
}
oLeft.onclick = function() {
index--;
if (index < 0) {
index = pic.length - 1;
}
change(index);
}
oDiv.onmouseover = function() {
clearInterval(timer);
}
oDiv.onmouseout = function() {
timer = setInterval(run, 2000); //鼠标移出后重新开始定时器
}
timer = setInterval(run, 4000); //定时器
function run() { //用于定时器的函数
index++;
if (index >= pic.length) {
index = 0;
}
change(index);
}
for (var i = 0; i < num.length; i++) {
num[i].index = i; //把索引值存起来
num[i].onmouseover = function() {
change(this.index);
}
}
function change(curindex) { //用于切换图片的函数
for (var i = 0; i < pic.length; i++) {
pic[i].style.display = "none";
num[i].className = "";
}
pic[curindex].style.display = "block";
num[curindex].className = "active";
index = curindex;
}
}
</script>
推荐JavaScript经典实例学习资料文章
《通过发布/订阅的设计模式搞懂 Node.js 核心模块 Events》
《「速围」Node.js V14.3.0 发布支持顶级 Await 和 REPL 增强功能》
《JavaScript 已进入第三个时代,未来将何去何从?》
《前端上传前预览文件 image、text、json、video、audio「实践」》
《深入细品 EventLoop 和浏览器渲染、帧动画、空闲回调的关系》
《推荐13个有用的JavaScript数组技巧「值得收藏」》
《36个工作中常用的JavaScript函数片段「值得收藏」》
《一文了解文件上传全过程(1.8w字深度解析)「前端进阶必备」》
《手把手教你如何编写一个前端图片压缩、方向纠正、预览、上传插件》
《JavaScript正则深入以及10个非常有意思的正则实战》
《前端开发规范:命名规范、html规范、css规范、js规范》
《100个原生JavaScript代码片段知识点详细汇总【实践】》
《手把手教你深入巩固JavaScript知识体系【思维导图】》
《一个合格的中级前端工程师需要掌握的 28 个 JavaScript 技巧》
《身份证号码的正则表达式及验证详解(JavaScript,Regex)》
《127个常用的JS代码片段,每段代码花30秒就能看懂-【上】》
《深入浅出讲解JS中this/apply/call/bind巧妙用法【实践】》
《干货满满!如何优雅简洁地实现时钟翻牌器(支持JS/Vue/React)》
《面试中教你绕过关于 JavaScript 作用域的 5 个坑》
作者: 梦里梦中梦
转发链接:https://mp.weixin.qq.com/s/6J0uJKaC4SPlt2h7oeSP-Q
相关推荐
- JPA实体类注解,看这篇就全会了
-
基本注解@Entity标注于实体类声明语句之前,指出该Java类为实体类,将映射到指定的数据库表。name(可选):实体名称。缺省为实体类的非限定名称。该名称用于引用查询中的实体。不与@Tab...
- Dify教程02 - Dify+Deepseek零代码赋能,普通人也能开发AI应用
-
开始今天的教程之前,先解决昨天遇到的一个问题,docker安装Dify的时候有个报错,进入Dify面板的时候会出现“InternalServerError”的提示,log日志报错:S3_USE_A...
- 用离散标记重塑人体姿态:VQ-VAE实现关键点组合关系编码
-
在人体姿态估计领域,传统方法通常将关键点作为基本处理单元,这些关键点在人体骨架结构上代表关节位置(如肘部、膝盖和头部)的空间坐标。现有模型对这些关键点的预测主要采用两种范式:直接通过坐标回归或间接通过...
- B 客户端流RPC (clientstream Client Stream)
-
客户端编写一系列消息并将其发送到服务器,同样使用提供的流。一旦客户端写完消息,它就等待服务器读取消息并返回响应gRPC再次保证了单个RPC调用中的消息排序在客户端流RPC模式中,客户端会发送多个请...
- 我的模型我做主02——训练自己的大模型:简易入门指南
-
模型训练往往需要较高的配置,为了满足友友们的好奇心,这里我们不要内存,不要gpu,用最简单的方式,让大家感受一下什么是模型训练。基于你的硬件配置,我们可以设计一个完全在CPU上运行的简易模型训练方案。...
- 开源项目MessageNest打造个性化消息推送平台多种通知方式
-
今天介绍一个开源项目,MessageNest-可以打造个性化消息推送平台,整合邮件、钉钉、企业微信等多种通知方式。定制你的消息,让通知方式更灵活多样。开源地址:https://github.c...
- 使用投机规则API加快页面加载速度
-
当今的网络用户要求快速导航,从一个页面移动到另一个页面时应尽量减少延迟。投机规则应用程序接口(SpeculationRulesAPI)的出现改变了网络应用程序接口(WebAPI)领域的游戏规则。...
- JSONP安全攻防技术
-
关于JSONPJSONP全称是JSONwithPadding,是基于JSON格式的为解决跨域请求资源而产生的解决方案。它的基本原理是利用HTML的元素标签,远程调用JSON文件来实现数据传递。如果...
- 大数据Doris(六):编译 Doris遇到的问题
-
编译Doris遇到的问题一、js_generator.cc:(.text+0xfc3c):undefinedreferenceto`well_known_types_js’查找Doris...
- 网页内嵌PDF获取的办法
-
最近女王大人为了通过某认证考试,交了2000RMB,官方居然没有给线下教材资料,直接给的是在线教材,教材是PDF的但是是内嵌在网页内,可惜却没有给具体的PDF地址,无法下载,看到女王大人一点点的截图保...
- 印度女孩被邻居家客人性骚扰,父亲上门警告,反被围殴致死
-
微信的规则进行了调整希望大家看完故事多点“在看”,喜欢的话也点个分享和赞这样事儿君的推送才能继续出现在你的订阅列表里才能继续跟大家分享每个开怀大笑或拍案惊奇的好故事啦~话说只要稍微关注新闻的人,应该...
- 下周重要财经数据日程一览 (1229-0103)
-
下周焦点全球制造业PMI美国消费者信心指数美国首申失业救济人数值得注意的是,下周一希腊还将举行第三轮总统选举需要谷歌日历同步及部分智能手机(安卓,iPhone)同步日历功能的朋友请点击此链接,数据公布...
- PyTorch 深度学习实战(38):注意力机制全面解析
-
在上一篇文章中,我们探讨了分布式训练实战。本文将深入解析注意力机制的完整发展历程,从最初的Seq2Seq模型到革命性的Transformer架构。我们将使用PyTorch实现2个关键阶段的注意力机制变...
- 聊聊Spring AI的EmbeddingModel
-
序本文主要研究一下SpringAI的EmbeddingModelEmbeddingModelspring-ai-core/src/main/java/org/springframework/ai/e...
- 前端分享-少年了解过iframe么
-
iframe就像是HTML的「内嵌画布」,允许在页面中加载独立网页,如同在画布上叠加另一幅动态画卷。核心特性包括:独立上下文:每个iframe都拥有独立的DOM/CSS/JS环境(类似浏...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- HTML 参考手册 (28)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML中如何键入空格 (27)
- HTML常用标签 (29)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)