我又来了,同志们。老想你们了

捕获小可爱一枚。

下面进入正题:用JavaScript原生代码写轮播图效果。

具体效果就不多说了,网站上面的轮播效果我们都知晓。下面是展示代码

html代码:

 <div class="main">
<ul>
<li style="display: block;"> <img src="img/a1 (1).jpg" /></li>
<li> <img src="img/a1 (2).jpg" /> </li>
<li> <img src="img/a1 (3).jpg" /> </li>
<li> <img src="img/a1 (4).jpg" /> </li>
<li> <img src="img/a1 (5).jpg" /> </li>
</ul>
<div class="ctrl">
<span>&lt;</span>
<span>&gt;</span>
</div>
<div class="ditto">
<p class="active">1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
</div> </div>

css代码:

 * {
padding:;
margin:;
} .main {
height: 400px;
width: 600px;
margin: 0 auto;
position: relative;
} .main ul li {
height: 400px;
width: 600px;
list-style: none;
position: absolute;
display: none;
} .main ul li img {
height: 400px;
width: 600px;
cursor: pointer;
} .ctrl {
height: 40px;
width: 100%;
position: absolute;
bottom: 50%;
text-align: center;
} .ctrl span {
width: 40px;
height: 40px;
border-radius: 100%;
line-height: 40px;
font-size: 32px;
color: #ffffff;
background-color: rgba(0, 0, 0, 0.2);
cursor: pointer;
} .ctrl span:nth-child(1) {
float: left;
} .ctrl span:nth-child(2) {
float: right;
} .ditto {
position: absolute;
width: 200px;
height: 20px;
bottom: 30px;
left: 38%;
} .ditto p {
height: 20px;
width: 20px;
line-height: 20px;
background: #efefef;
text-align: center;
width: 20px;
height: 20px;
float: left;
border-radius: 100%;
margin-left: 10px;
cursor: pointer;
} .ditto .active {
background: #ff9000;
box-shadow: 0 0 10px #FF9000;
}

css代码

js代码:

 <script type="text/javascript">
//获取节点
var box_v = document.querySelector('.main');
var li_v = document.querySelectorAll('.main ul li');
var p_v = document.querySelectorAll('.ditto>p');
var ctrl_v = document.querySelectorAll('.ctrl>span');
console.log(li_v);
//声明全局变量
var current = 0;
var timer = null;
var pre = null;
var nex = null;
//开启自动循环轮播,封装函数move
function move() {
//首先清除当前current以外的li_v的样式显示和伪圆标p_v的效果, 以下的同上
for (let i = 0; i < li_v.length; i++) {
li_v[i].style.display = "none";
p_v[i].className = "";
}
//鼠标移入的时候获取当前的索引,也就是变量current
current = (current + 1) % li_v.length;
console.log(current); //然后一个一个实现轮播和图标效果
li_v[current].style.display = "block";
p_v[current].className = "active";
};
timer = setInterval(move, 1500); for (let i = 0; i < li_v.length; i++) {
//鼠标划入图片区域时清除定时器,暂停于当前页面
li_v[i].onmouseover = function() {
clearInterval(timer);
}
//鼠标移出图片区域时继续向下轮播
li_v[i].onmouseout = function() {
timer = setInterval(move, 1500);
}
}
// 当鼠标放在小圆标的时候清除定时器,暂停于当前图片页面和圆标实现效果
for (var i = 0; i < p_v.length; i++) {
p_v[i].index = i;
p_v[i].onmouseover = function() {
clearInterval(timer);
for (var i = 0; i < li_v.length; i++) {
p_v[i].className = "";
li_v[i].style.display = "none";
}
this.className = "active";
// console.log(this.index);
//实现当鼠标移出小圆标的时候继续轮播图片页面和圆标实现效果,此时current为this.index
current = this.index;
li_v[this.index].style.display = "block";
}
} //左按钮事件
ctrl_v[0].onclick = function() {
clearInterval(timer);
clearInterval(pre);
pre = setTimeout(preclick, 10)
timer = setInterval(move, 1500);
}
//封装点击左按钮实现上个一个图片
function preclick() {
for (var i = 0; i < li_v.length; i++) {
li_v[i].style.display = "none";
p_v[i].className = "";
}
current = (current - 1 + li_v.length) % li_v.length;
// console.log(current);
li_v[current].style.display = "block";
p_v[current].className = "active";
};
// 右边按钮事件实现下一张图片
ctrl_v[1].onclick = function() {
clearInterval(timer);
clearInterval(nex);
nex = setTimeout(move, 10)
timer = setInterval(move, 1500);
}
</script>

欢迎来访,你们的瓶子。。。mua,大家晚安

JavaScript实现轮播图效果的更多相关文章

  1. HTML+CSS+Javascript实现轮播图效果

    HTML+CSS+Javascript实现轮播图效果 注意:根据自己图片大小来更改轮播图大小. <!doctype html> <html> <head> < ...

  2. 云南农职《JavaScript交互式网页设计》 综合机试试卷②——实现轮播图效果

    一.语言和环境 实现语言:HTML,CSS,JavaScript,JQuery. 开发环境:HBuilder. 二.题目(100分): 使用JQuery淡入淡出动画,实现轮播图效果 每隔2秒钟切换一张 ...

  3. JavaScript焦点轮播图

    在慕课学习了JavaScript焦点轮播图特效,在此做一个整理. 首先是html结构,我用的是本地同文件夹下的三张图片,多出来的第一张(pic3副本)和最后一张图片(pic1副本)是为了实现无缝切换效 ...

  4. 原生javascript焦点轮播图

    刚刚学会,写了一个轮播图效果,不过bug蛮多,请高手指点一下,谢谢 <!DOCTYPE html> <html> <head> <meta charset=& ...

  5. js实现轮播图效果(附源码)--原生js的应用

    1.js实现轮播图效果 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...

  6. 纯CSS实现轮播图效果,你不知道的CSS3黑科技

    前言 轮播图已经是一个很常见的东西,尤其是在各大App的首页顶部栏,经常会轮番显示不同的图片. 一提到轮播图如何实现时,很多人的第一反应就是使用Javascript的定时器,当然这种方法是可以实现的. ...

  7. 高仿阴阳师官网轮播图效果的jQuery插件

    代码地址如下:http://www.demodashi.com/demo/12302.html 插件介绍 这是一个根据阴阳师官网的轮播效果所扒下来的轮播插件,主要应用于定制个性化场景,目前源码完全公开 ...

  8. 用html +js+css 实现页面轮播图效果

    html 页面 <html lang="en"> <head> <meta charset="UTF-8"> <met ...

  9. 小程序实践(二):swiper组件实现轮播图效果

    swiper组件类似于Android中的ViewPager,实现类似轮播图的效果,相对于Android的Viewpager,swiper实现起来更加方便,快捷. 效果图: 首先看下swiper支持的属 ...

随机推荐

  1. win 10 精简组件列表

    轻松访问工具 操作中心 应用程序虚拟化(App-V) Telemetry Client (Asimov)(遥测) Assigned Access(按需访问) 自动播放 网络后台传输 备份 生物识别服务 ...

  2. 创建pandas和sqlalchemy的j交互对象,方便于日常的数据库的增删改查(原创)

    #导入第三方库sqlalchemy的数据库引擎 from sqlalchemy import create_engine #导入科学计算库 import pandas as pd #导入绘图库 imp ...

  3. ThinkPad T400 键帽下面的X支架的安装方法

    有一台古老的T400,清理键盘的时候,X支架老化断了,淘宝买了几个支架,研究一下安装方法: 1.注意支架方向:上面是横向的细支架,下面是两个小孔2.用小螺丝刀把下面的两个小孔推进键盘下面的两个金属钩里 ...

  4. Python3中如何解决中文乱码与编码的问题

    1.解决乱码问题: pyhton中内部所有编码是Unicode,中文是gbk:正常情况下,我们输出的是utf-8: 我们可以采用sys.getdefaultencoding()查看系统默认的编码: 解 ...

  5. C# 使用CsvHelper读取.csv文件

    1,先到包管理器下载 安装CsvHelper. 2,创建一个与csv文件字段名称相同的类 public class SurveyInfoModel { public string DIST_CD { ...

  6. linux下JNI开发—Hello为例

    转自:https://www.cnblogs.com/snake-hand/archive/2012/05/25/2517412.html 前期准备: 1.Java JDK 2.gcc 3.g++ 确 ...

  7. BZOJ2339[HNOI2011]卡农——递推+组合数

    题目链接: [HNOI2011]卡农 题目要求从$S=\{1,2,3……n\}$中选出$m$个子集满足以下三个条件: 1.不能选空集 2.不能选相同的两个子集 3.每种元素出现次数必须为偶数次 我们考 ...

  8. Python IDLE 代码高亮主题

    Python IDLE 代码高亮主题 使用方法: 打开C盘我的 C:\Documents and Settings\你的用户名.idlerc文件夹 里面会有一个 config-highlight.cf ...

  9. 使用Portainer管理Docker

    Portainer Portainer安装非常简单,只需不到一分钟.Portainer完全支持Docker 1.10及更高版本. Mac 快速安装运行: 命令行输入: docker pull port ...

  10. 【Linux】Jenkins安装

    安装环境准备 操作系统:Linux(CentOS7) 软件:jdk,安装及配置步骤见Linux安装jdk 软件:tomcat,安装及配置见Linux安装tomcat Jenkins安装 由于Jenki ...