js实现无缝轮播图


Posted in Javascript onMarch 09, 2020

本文实例为大家分享了js实现轮播图的具体代码,供大家参考,具体内容如下

CSS样式:

<style type="text/css">
 #box{width: 1000px;height: 375px;border: 3px solid black;
 margin: 30px auto;position: relative;overflow: hidden;}
 #box .img{position: absolute;left: 0;top: 0;}
 #box .img img{width: 1000px;height: 375px;float: left;}
 #box .btn input{border-radius: 50%;border: 0;width: 40px;
 height: 40px;font-size: 25px;z-index: 5;top: 165px;position: absolute;}
 #left{left: 0;}
 #right{right: 0;}
</style>

HTML结构:

<div id="box">
 <div class="img">
 <img src="img/1.jpg" >
 <img src="img/2.jpg" >
 <img src="img/3.jpg" >
 <img src="img/4.jpg" >
 <img src="img/1.jpg" > //利用第一张图,达到无缝轮播的视觉效果
 </div>
 <div class="btn">
 <input type="button" id="left" value="<" />
 <input type="button" id="right" value=">" />
 </div>
</div>

JavaScript:

<script>
 class LunBO{
 constructor() {
  this.img = document.querySelector(".img");
 this.child = this.img.children;
 this.left = document.getElementById("left");
 this.right = document.getElementById("right");
 this.index = 0;
 }
 init(){
 this.img.style.width = this.child.length * this.child[0].offsetWidth + "px"; //有多少图片设置多少宽度
 }
 addEvent(){
 var that = this;
 this.left.onclick = function(){
 that.changeIndex(1); //点击左按钮,设置索引
 }
 this.right.onclick = function(){
 that.changeIndex(2); //点击右按钮,设置索引
 }
 }
 changeIndex(i){
 if(i==1){
 if(this.index == 0){
  this.index = this.child.length - 2;
  this.img.style.left = -(this.child.length-1) * this.child[0].offsetWidth + "px";
 }else{
  this.index--;
 }
 }else{
 if(this.index == this.child.length-1){
  this.index = 1;
  this.img.style.left = 0;
 }else{
  this.index++;
 }
 }
 this.setSplace();
 }
 setSplace(){
 move(this.img,"left",-this.index * this.child[0].offsetWidth); //调用动画
 }
 }
 var lb = new LunBO();
 lb.init();
 lb.addEvent();
</script>

设置动画:

function move(ele,attr,target){
 clearInterval(ele.t);
 ele.t=setInterval(()=>{
 let iNow;
 if(attr=="opacity"){
 iNow=getStyle(ele,attr)*100;
 }else{
 iNow=parseInt(getStyle(ele,attr));
 }
 let speed=(target-iNow)/8;
 speed=speed<0?Math.floor(speed):Math.ceil(speed);
 if(iNow==target){
 clearInterval(ele.t);
 }else{
 if(attr=="opacity"){
 ele.style.opacity=(iNow+speed)/100;
 }else{
 ele.style[attr]=iNow+speed+"px";
 }
 }
 },30)
}
function getStyle(ele,attr){
 if(ele.currentStyle){
 return ele.currentStyle[attr];
 }else{
 return getComputedStyle(ele,false)[attr];
 }
}

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
写自已的js类库需要的核心代码
Jul 16 Javascript
js加强的经典分页实例
Mar 15 Javascript
基于datagrid框架的查询
Apr 08 Javascript
javascript实现控制浏览器全屏
Mar 30 Javascript
javascript实现在线客服效果
Jul 15 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
Dec 17 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
Apr 13 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
Mar 09 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
Apr 11 Javascript
微信小程序商城项目之商品属性分类(4)
Apr 17 Javascript
详解vue+webpack+express中间件接口使用
Jul 17 Javascript
Vue+Vant 图片上传加显示的案例
Nov 03 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
Mar 09 #Javascript
原生js实现瀑布流效果
Mar 09 #Javascript
原生JS实现贪吃蛇小游戏
Mar 09 #Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
Mar 09 #Javascript
在Vue中实现随hash改变响应菜单高亮
Mar 09 #Javascript
Node.js+Vue脚手架环境搭建的方法步骤
Mar 08 #Javascript
JS中的const命令你真懂它吗
Mar 08 #Javascript
You might like
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
struts2 jquery 打造无限层次的树
2009/10/23 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
JS访问SWF的函数用法实例
2015/07/01 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
[01:16:37]【全国守擂赛】第三周决赛 Dark Knight vs. 一个弱队
2020/05/04 DOTA
python二叉树的实现实例
2013/11/21 Python
python使用递归解决全排列数字示例
2014/02/11 Python
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
Python加载带有注释的Json文件实例
2018/05/23 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
模范教师事迹材料
2014/02/10 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
三方协议书
2015/01/27 职场文书
北京天坛导游词
2015/02/12 职场文书
建立共青团委员会的请示
2019/04/02 职场文书