第一步

使用两个div标签包裹一个ul标签,ul标签中包含li标签,每个li标签个包含一个img标签,并给每个img标签赋予一个图片,这就是轮播最基本的样式了。轮播的样式较为简单,但也不能疏忽大意。每个img标签赋予的图片都有讲究的。第一个img标签要赋予最后一张img标签要赋予的图片,最后一个img标签要赋予第一张img标签要赋予的图片。如下图所示

最好每一个li标签都给一个注释。假设一个li标签要设置的值为500个像素,则以每张图片500个像素叠加。以上图为例,第一个img为0像素,第二个img为500像素,最后一个img为3000像素,则文中的li标签有7个。

接着再用一个div包含一个ul标签,在ul标签中赋予五个li标签,这些li标签是为了做成一个图片移动时跟着移动的小点。

有了图片移动的小点,同时也有了图片,让我们想想是不是还少了什么呢?少了一个控制图片移动的开关呀!为了简便快捷,我们能直接使用两个a标签作为图片移动时的开关吧

在两个a标签的文本域中赋予一个&lt和&gt,这两个表示的是大于号和小于号

上图中左右两个符号就是&lt和&gt哦,各位小伙伴不妨自己去试试吧!以上就是这次轮播的基本布局了

布局完成后,我们进行第二步。

我们分别给两个最大的div标签一个类,并修改两个div的样式。大盒子我们给它500个像素的宽和300个像素的高并给大盒子一个绝对定位和一个超出隐藏,小盒子给它3500个像素的宽和300个像素的高并给它一个相对定位。(可能有些小伙伴会问,为何大盒子给500而小盒子给3500呢?因为大盒子就像我们家里的窗,窗的宽高是固定的,而小盒子就像窗外的世界。当窗固定后,小盒子围着大盒子转。我们就能看到不同的景色了。注:如果每张图片的长宽不一,那么我们需要给图片设置一个固定的宽高。)

如上图所示。画红线的地方不动,而其他图片一直移动这就是我们的轮播了。

最外面的两个盒子设置完样式后就要设置两个按钮了。两个按钮要设置一个相对定位,相对于大盒子定位。盒子元素设置隐藏,也可以设置为块级元素。

按钮的样式设置完就要设置几个随着图片移动而移动的小圆点的样式了。

.circleBtn{position: absolute;width: 125px;height: 20px;right: 10px;bottom: 20px;
}
//包裹ul、li标签的div的类
.circleBtn ul li.on{background:hsla(359,70%,62%,1.00);
}
//li标签的类

小圆点的样式更简单,只需要在最外面的小圆点的div给一个类并且给这个类设置一个颜色,然后给第一个li标签一个类,并给这个类设置上不同于div的颜色就可以。(如上图所示)

设置完CSS样式后就是JS样式了

JS样式比较复杂一些。首先给一个页面加载事件,并且获取HTML中的clss名称并赋值给JS中的元素。获取按钮a标签的类并赋值,给按钮a标签一个单机事件。当按下a标签时,使小盒子移动500个像素,两个a标签都分别赋予两个按钮一个向左一个向右,向左的按钮图片的移动值为正数,向右的图片移动值为负数。

window.onload = function(){//=================向右按钮点击事件====================//获取元素,局部变量var oNextBtn = document.getElementById("next");var oImgBox = document.getElementById("imgBox");//绑定点击事件oNextBtn.onclick = function(){if(transfor==true){return;}if(index==5){index=1;}else{index++;}animation2(-500);setCircle();//alert(parseInt(oImgBox.style.left));};
    //====================向左按钮点击事件========================//获取元素var oForwardBtn = document.getElementById("forward");//绑定点击事件oForwardBtn.onclick = function(){if(transfor==true){return;}if(index==1){index=5 }else{index--;}//animation1(500);animation2(500)setCircle();};

当两个按钮绑定了点击事件后,需要给右下角的小圆点也绑定点击事件,同时,小圆点也要随着图片的移动而移动。这时就要用到数组的遍历了,获取到远点的类并赋值。使用for循环进行数组的遍历,遍历后给小圆点也绑定点击事件。当某个圆点被点击时将移动图片500乘以点击的按钮的数字。每个li标签都赋一个数字,点击到那个li标签时返回那个值,并将500乘以返回的值,就是图片移动的位置。

<div class="circleBtn" id="circleBtn"><ul><li ind="1" class="on"></li><li ind="2"></li><li ind="3"></li><li ind="4"></li><li ind="5"></li></ul></div>

轮播最重要的并不是点击切换而是自动切换。

如何使图片自动切换呢?我们要用到以前学到的定时器,同时为了使轮播的样式看起来更为高端,我们还要添加一个鼠标移入和鼠标移出事件,当鼠标移入时,停止自动播放,当鼠标移出时自动播放停止。

    autoPlay();function autoPlay(){//clearInterval()autoTimer = setInterval(function(){oNextBtn.click();},2000);}//获取元素var oShowBox = document.getElementById("showBox");//鼠标移入,自动播放停止oShowBox.onmouseenter = function(){clearInterval(autoTimer);};//鼠标移出,自动播放开始oShowBox.onmouseleave = autoPlay;};

设置圆形按钮高亮效果切换,我们还是需要用到数组的遍历,将每个圆形按钮都遍历一遍,然后根据图片位置设置对应按钮的高光。

function setCircle(){//获取元素var aCircleBtn = document.getElementById("circleBtn").getElementsByTagName("li");//遍历所有的圆形按钮for(var i=0;i<aCircleBtn.length;i++){if(aCircleBtn[i].className=="on"){aCircleBtn[i].className="";break;}}//根据图片的位置,设置对应的按钮高亮aCircleBtn[index-1].className="on";
}

图片的动画切换效果是怎么来的呢?其实动画的切换效果并不难,我们只需要在每个点击事件添加一个parseInt就可以了,parseInt的作用是将字符串转换为数字。添加了parseInt并不意味着轮播已经完成。当点击超过图片数量的时候,你会发现,后面什么都没有了,但是还是可以点击。

这时候我们因该怎么办呢?我们需要给JS代码中添加一个判定,判定是否已经超出图片的数量。当超出数量的时候执行那一段代码。这就要用到我们的if else语句了。

if(parseInt(box.style.left)<-5500){box.style.left=-1000+"px";}};  

当小盒子的移动超出固定的宽度时,则跳转到第二张图片(注:第二张图片就是我们看到的第一张图片,这里可能有些混乱,各位小伙伴多思考就能读透了。),这时也就体现出我们为什么在第一张图片前面放最后一张的作用了。我们这样做给了一个类似于过渡的效果。当盒子移动超过最后一张图片时,跳转到第二张。当盒子移动超过第一张图片时,跳转到倒数第二张。

完结啦

使用JavaScript制作轮播相关推荐

  1. 教你用JavaScript制作轮播图

    案例介绍 欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了! 我们来用JavaScript编程实战案例,做一个轮播图.图片每3秒自动轮换,也可以点击左右按键轮播图片,当图片到达最左端或最右端时 ...

  2. HTML+CSS+JavaScript实现轮播图效果

    前言 先奉上本文需要的所有资源,免费下载,代码有详细注释,可搭配本文使用: 前端JavaScript实现轮播图效果 百度网盘:百度网盘 请输入提取码 提取码:slbt 没有添加动画效果,添加了自动切换 ...

  3. 微信小程序使用swiper制作轮播图留白的解决方法

    微信小程序相比网页制作轮播图快捷了很多,直接可以使用swiper标签,但是对于新手来说,也有很多不可避免的坑. 附上轮播图代码 <view class="swp">&l ...

  4. html图片快速轮播特效代码,轻松实现javascript图片轮播特效

    本文实例介绍了javascript图片轮播特效的详细代码以及实现思路,分享给大家供大家参考,具体内容如下 还是先来看一看效果图: 具体代码: 一.HTML代码分析 A版是一款手机DOTA应用,它涵盖了 ...

  5. 简易javascript图片轮播代码

    javascript图片轮播代码 因为自己是新手自学不久,所以代码有很多不规范的地方,请原谅. html部分代码: <div id="head"> <button ...

  6. html 轮播图自适应,JavaScript 自适应轮播图

    JavaScript 自适应轮播图 代码 话不多说,先上代码,方便复制粘贴.演示 轮播图 *{ margin: 0; padding: 0; } ul{ list-style: none; } img ...

  7. html图片轮播replace,JavaScript图片轮播代码分享

    为大家分享的JavaScript图片轮播代码如下 无标题文档 .img-div img{display:none;} 1 2 3 4 5 var zBase= { $id:function(id){r ...

  8. Axure使用动态面板制作轮播图

    对于动态面板的使用我想每一个学习axure的小伙伴都会接触到,聪明的你可能会想,能不能利用动态面板制作出轮播图的效果能?不用怀疑 ,利用动态面板也是能做出好看的轮播图的效果的.那么,下边我就来分享一下 ...

  9. php中实现图片自动轮播,轻松实现javascript图片轮播特效_javascript技巧

    本文实例介绍了javascript图片轮播特效的详细代码以及实现思路,分享给大家供大家参考,具体内容如下 还是先来看一看效果图: 具体代码: 一.HTML代码分析 此效果的层次结构比较清楚: 1. c ...

最新文章

  1. (整理)用户空间_内核空间以及内存映射
  2. 华硕路由器 linux上不了网,华硕ASUS路由器连不上网怎么办?
  3. cookie ? 利用cookie实现 显示上次访问时间?
  4. 谷歌云 重置_谷歌云游戏平台Stadia公布!支持大作随意畅玩
  5. C++ string与vectorfloat类型相互转换之stringstream
  6. 双闭环直流调速系统仿真
  7. Qt中使用QtDataVisualization实时绘制雷达点云三维散点图
  8. java布尔字段用is前缀_Javabean中,对于boolean类型的属性,可以使用is代替方法名称中的set和get前缀,创建Bean必须带有包名。...
  9. 机器学习的三大主要任务
  10. 【开发一个简单的音乐播放器+服务端】【一】
  11. 淘宝新手开店怎么做才能破零
  12. 16QAM调制解调系统误码率和星座图的matlab仿真
  13. 附录A 程序员工作面试的秘密
  14. ubuntu与win10共享LE蓝牙鼠标
  15. 使用PlantUML插件来做图
  16. CodeCombat进军中国市场,中美少儿编程教育有何差距
  17. UE4移动平台AR开发快速预览
  18. python报错1-'int' object is not iterable('int'对象不可迭代)
  19. Android studio学习(一)
  20. 什么是cobol语言,主要用来干嘛用的!(最近在其它做银行或证券的项目组常听到的关键字,搜到了一些基本概念)

热门文章

  1. html 中按钮控件变为透明,css如何实现按钮透明
  2. STM32 GPS悬停飞控 (三十五)树莓派 4g视频回传
  3. 中国智能手机集成电路(IC)行业市场供需与战略研究报告
  4. js中promise的用法
  5. SQL快速入门、查询(SqlServer)[郝斌SqlServer完整版]
  6. el-select数据回显
  7. 暑假集训日记(四)(长题解)
  8. 构建去中心化安全桥梁 Conflux 与 Chainlink 达成战略合作
  9. 用支持向量机解决蠓虫分类问题matlab,分类问题
  10. 【高级篇 / System】(7.0) ❀ 07. HA 下配置核心交换机 (下) ❀ FortiGate 防火墙