JS轮播图

轮播图可以说是网页上十分常见的效果,很多朋友在学习JavaScript后都迫不及待的想写一些好看对的效果出来,那么轮播图就是一个很不错的练手实例。下面就是通过JS写的轮播图效果:

功能介绍

1.上/下按钮切换图片
2.点击圆点按钮切换到相应的图片
3.自动播放效果 (4秒间隔)
4.当鼠标放在图片上时,停止轮播效果;鼠标移开图片时,又出现轮播效果

实现方法如下:

html代码

<div id="Box"><div class="img show">One</div><div class="img">Two</div><div class="img">Three</div><div class="img">Four</div><div class="img">Five</div><!--上一张按钮--><span class="prev"><</span><!--下一张按钮--><span class="next">></span><div class="div1"><span class="little little_show" data-index="0"></span><span class="little" data-index="1"></span><span class="little" data-index="2"></span><span class="little" data-index="3"></span><span class="little" data-index="4"></span></div>
</div>

CSS代码如下:

本文写的轮播图,主要依靠opacity属性的值来控制

    .img {position: absolute;top: 100px;left: 50%;width: 480px;height: 270px;margin-left: -240px;color: #FFFFFF;/*设置图片默认透明度为0 */opacity: 0;/*设置图片过度效果, 会出现淡入淡出效果 */transition: all .8s;}.img:nth-child(1){background: url("background/text1.jpg");background-size: 100%;}.img:nth-child(2){background: url("background/text2.jpg");background-size: 100%;}.img:nth-child(3){background: url("background/text3.jpg");background-size: 100%;}.img:nth-child(4){background: url("background/text4.jpg");background-size: 100%;}.img:nth-child(5){background: url("background/text5.jpg");background-size: 100%;}.prev {position: absolute;top: 185px;left: 50%;width: 20px;height: 30px;border: 1px solid rgba(255, 255, 255, .2);border-radius: 0 5px 5px 0;margin-top: 30px;margin-left: -240px;color: #c2c1cb;text-align: center;background-color: rgba(255, 255, 255, .2);cursor: pointer;}.next {position: absolute;top: 185px;left: 50%;width: 20px;height: 30px;border: 1px solid rgba(255, 255, 255, .2);border-radius:  5px 0 0 5px;margin-top: 30px;margin-left: 218px;color: #c2c1cb;text-align: center;background-color: rgba(255, 255, 255, .2);cursor: pointer;}.next:hover,.prev:hover {background-color: rgba(1, 1, 1, 0.73);color: #FFFFFF;}.div1 {position: absolute;top: 350px;left: 50%;margin-left: -40px;}.little {float: left;width: 10px;height: 10px;border-radius: 100%;background-color: rgba(255, 245, 244, .3);margin-left: 4px;cursor: pointer;border: 1px solid #464646;}.show{/*通过添加show,改变图片透明度,从而实现切换效果*/opacity: 1;}.little_show {background-color: #FFFFFF;}

JS代码如下:

let img = document.getElementsByClassName("img"); //获取所有轮播图片 集合
let next = document.querySelector(".next"); //获取下一张 按钮
let prev = document.querySelector(".prev");//获取上一张 按钮
let box = document.getElementById("Box");//获取整个盒子
let little = document.getElementsByClassName("little"); //获取所有轮播圆点按钮 集合let index = 0;
let time = 0;// 重置所有class
let clear = function () {for (let i = 0;i < img.length; i++){img[i].className = "img";}for (let i = 0;i < little.length;i++){little[i].className = "little";}
};let show = function () {img[index].className = "img show";little[index].className = "little little_show";time = 0;
};// 下一张
let nextBtn = function () {clear();index++;if(index >img.length-1){index = 0;}show();
};
next.addEventListener("click",function () {nextBtn();
});// 上一张
let prevBtn = function () {clear();index--;if(index < 0){index = img.length-1;}show();
};
prev.addEventListener("click",function () {prevBtn();
});// 按钮
for (let i = 0; i < little.length;i++){little[i].addEventListener("click",function () {clear();index = this.getAttribute("data-index");show();})
}let timer;//全局变量,接收定时器
function autoTime(){//timer接收定时器timer = setInterval(function () {time++;if(time === 4){nextBtn();}else if(time > 4){time = 0;}console.log("time = "+time);},1000);
}
// 调用轮播图自动播放方法
autoTime();// 当鼠标移入imgBox时,停止轮播,清除定时器
box.onmouseover = function () {clearInterval(timer);
};
// 当鼠标移出imgBox时,重新调用定时器并重置time
box.onmouseout = function () {time = 0;autoTime();
};

以上就是JS轮播图的代码,小伙伴们可以参考代码手动敲一敲;

这几天写页面的时候,发现写轮播图的时候自己脑子有点转不过来了…
所以写这篇文章记录一下,方便自己后续查看,也给更多想写JS轮播图的朋友提供一个参考…

前端小白一枚,路过的还请大佬勿喷…
有什么不对的地方也请各位大佬指点…

JS轮播图(点击切换、自动播放、悬停控制)相关推荐

  1. JS实现轮播图点击切换、按钮切换功能

    JS实现轮播图点击切换.按钮切换功能 前言 轮播图案例 总结 前言 轮播图的案例非常经典,写法也非常多,我在写一个自己用的比较多的写法,帮助大家理解,在网页的设计中,可以直接拿去用(记得换图片路径哦! ...

  2. 轮播图、阅读注册协议、网页时钟、随机点名、小米搜索框、轮播图点击切换——web APIs练习

    目录 一.获取元素(DOM) 1. 随机轮播图案例 2. 阅读注册协议(定时器间歇函数的应用) 3. 轮播图定时器版 4. 网页时钟 二.事件基础(DOM) 1. 随机点名案例 2. 轮播图点击切换( ...

  3. JS实现轮播图(手动切换+自动切换两种方法)

    1.轮播图效果图 2.完整代码如下 <!doctype html> <html> <head> <meta charset="utf-8" ...

  4. js轮播图(点击图片切换 定时器效果)

    轮播效果:点击上一页,下一页切换图片,设置定时器每过两秒进行自动切换 不说别的直接上代码 <!DOCTYPE html> <html> <head><titl ...

  5. 使用Swiper插件实现视频轮播,怎么实现切换自动播放视频?

    一.需求分析 这两天讨论了一个项目需求,刚开始是希望:轮播图中嵌入视频,轮播到视频自动播放,播放完毕切换下一张轮播,手动切换时暂停播放视频.后面因为自动播放没有声音,便暂时放弃了这个想法(有知道或了解 ...

  6. js 轮播图中点击小圆圈图片跳到指定图片

    html代码(部分) <div class="w"><div class="main"><!--焦点图模块--><di ...

  7. js实现轮播图(点击小图片切换大图片+自动切换)

    js实现轮播图(点击小图片切换大图片+自动切换) 实现效果如下: 点击小图切换大图和轮播标题,点击左右按钮大小图和轮播标题切换,鼠标进入清除定时器,鼠标移出恢复轮播 html代码如下: <div ...

  8. html 图片轮播渐变,js轮播图自动切换和css做页面自动渐变

    js轮播图自动切换和css页面自动渐变 效果如下: 可以去jq官网学习:http://www.jq22.com/ 部分代码如下: *{margin: 0; padding: 0;} p{text-al ...

  9. JS 轮播图 图片切换(定时器)

    标题JS 轮播图 图片切换(定时器) 这次的轮播图与上次的图片切换相比,仅仅是加上了定时器,使其可以自动切换. 上次的图片切换的链接:https://blog.csdn.net/qq_38318589 ...

最新文章

  1. 基于空间数据库MongoDB实现全国电影票预定系统
  2. 关于android:id=@+id/xx的理解
  3. Java 序列化 之 Serializable
  4. 计算机网络可以把在区域上分散的单个,计算机网络技术及应用课后习题
  5. checkbox居中 editor_如何在ListBoxItem中居中WPF CheckBox
  6. java虚拟机手机下载_java虚拟机下载
  7. Hadoop+GPU强强联手的性能探索
  8. Linux系统间文件双向同步搭建Unison版
  9. 和 8 个程序员聊了一下午,集齐了这些经验!
  10. matplotlib: 有关 Backend 的说明
  11. 好文要顶之 --- 简单粗暴地理解 JavaScript 原型链
  12. 驱动 | Linux | NVMe - 1. 内核驱动
  13. md5加解密工具 java_java中常用工具类之字符串操作类和MD5加密解密类
  14. 《五分钟商学院》个人篇学习总结(下)
  15. nio java是什么_JAVA NIO是什么(zz)
  16. 信息系统管理工程师记忆口诀
  17. 双系统下怎么卸载linux系统,双系统怎么卸载其中一个操作系统 双系统卸载其中一个操作系统方法...
  18. M26X2 4G工业路由器的技术应用
  19. 【愚公系列】2023年06月 网络安全(交通银行杯)-疑惑的汉字
  20. PyTorch二分类时BCELoss,CrossEntropyLoss,Sigmoid等的选择和使用

热门文章

  1. Git系列:git push -u origin master命令理解
  2. 【JAVA今法修真】 第五章 练气百日,筑基三年
  3. 点亮LED灯(STC89C52RC芯片)
  4. excel数据导入mysql被截取_Excel导入数据库时出现的文本截断问题解决方案
  5. 国庆中秋除了发月饼,企业更应该做什么?
  6. Buxwiz注册详解
  7. 13年生日教大家PS基本赚钱模式
  8. 那些年门户网站开发应该遵循的原则
  9. 然而沼跃鱼早就看穿了一切
  10. SLF4J: The requested version 1.5.8 by your slf4j binding is not compatible with [1.6] SLF4J: See htt