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

捕获小可爱一枚。

下面进入正题:用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. php解决微信文章图片防盗链

    解决微信文章图片防盗链 function actionWechatImg() { header('Content-type: image/jpg'); $url = $_GET['url']; $re ...

  2. 爬虫基础(五)-----scrapy框架简介

    ---------------------------------------------------摆脱穷人思维 <五> :拓展自己的视野,适当做一些眼前''无用''的事情,防止进入只关 ...

  3. FAST LOW-RANK APPROXIMATION FOR COVARIANCE MATRICES

    目录 Nystorm method 低秩逼近 矩阵乘法的逼近 Belabbas M A, Wolfe P J. Fast Low-Rank Approximation for Covariance M ...

  4. javaweb项目环境搭建,jdk,tomcat,myeclipse,sqlserver安装 配置

    myeclipse是一个java的IDE,myeclipse中虽然内置了JDK和Tomacat服务器,但可以不使用,通过进行相应的配置,使用自行安装的JDK和Tomcat.安装Tomcat之前,一定要 ...

  5. Node.js中的console.log()输出彩色字体

    转自:https://www.jianshu.com/p/cca3e72c3ba7 console.log('\033[42;30m DONE \033[40;32m Compiled success ...

  6. Nginx 在线新增模块

    系统:Centos7.5 Nginx版本:1.12.2 今天给项目添加ssl证书时,发现nginx 竟然不支持ssl,经过查看,询问相关人员发现nginx编译的时候没有任何模块(历史原因).哎.... ...

  7. [C++项目]2048控制台游戏

    #include <iostream> #include <windows.h> #include <ctime> using namespace std; ; ; ...

  8. git配置ssh秘钥(公钥以及私钥)

    桌面版git,  本文以github为例,gitlab等其它托管平台一样操作 当我们将代码托管到远程平台(GitHub.gitlab等)时, 我们需要在本地使用git进行push/pull代码时,需要 ...

  9. ES6 Promise 用法讲解

    Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法. 那就new一个 var p = new Promise( ...

  10. Windows服务器上使用phpstudy部署PHP程序

    一.下载并安装PHPStudy 官网地址:http://phpstudy.php.cn/(安装包下载地址:链接:https://pan.baidu.com/s/1WOmbOwmLuUPt3_nmY6- ...