一、复习原生js实现图片轮播

1.要点

  • 自动轮播
  • 点击小圆圈按钮,显示相应图片
  • 点击左右箭头,实现向前向后轮播图片

2.实现思路

<div id="container">
<div id="list" style="left: -600px;">
<img src="images/5.jpg" alt="1" />
<img src="images/1.jpg" alt="1" />
<img src="images/2.jpg" alt="2" />
<img src="images/3.jpg" alt="3" />
<img src="images/4.jpg" alt="4" />
<img src="images/5.jpg" alt="5" />
<img src="images/1.jpg" alt="5" />
</div>
<div id="buttons">
<span index="1" class="on"></span>
<span index="2"></span>
<span index="3"></span>
<span index="4"></span>
<span index="5"></span>
</div>
<a href="javascript:;" id="prev" class="arrow">&lt;</a>
<a href="javascript:;" id="next" class="arrow">&gt;</a>
</div>

(1)html和css

  • 图片方面:如果要轮播5张图,那么页面上要写7张图,额外的两张图主要是为了从第一张往前切换和最后一张往后切换的无缝衔接。
  • 布局方面:主要使用绝对定位,分为两层,一层包括图片,一层包括小圆圈按钮和切换箭头

(2)js实现

  • 自动轮播:定时器setInterval和clearInterval

  • 轮播实现原理:

    1.首先思考,轮播时候发生的变化:

    图片的变化(animate函数) + 小圆圈按钮样式变化(buttonsShow函数)

      1.图片的变化:通过控制绝对定位的包含7张图片的div的left值进行变化
    (这里需要考虑,left值<-3000px,left值>-600px这两种边缘情况,这正是当图片从5.jpg往后切换变为1.jpg和图片从1.jpg往前切换变为5.jpg)
    2.小圆圈按钮样式变化,先清除所有的样式,然后再根据按钮的index属性值来判断当前按钮

    2.添加事件:

    • 小圆圈按钮事件onclick
    • 左右箭头事件(prev.onclick,next.onclick)
    • container这个div的onmouseover和onmouseout事件,分别执行play(自动轮播函数)和stop(清除自动轮播定时器)

    3.在这上面三个点击事件中都要调用animate函数和buttonsShow函数

原生js实现图片轮播思路分析的更多相关文章

  1. 原生js实现图片轮播效果

    思路:设置父容器(一定宽度,一定高度,相对定位,子容器超出部分进行隐藏),子容器图片并排(浮动,绝对定位,每次点击进行相应的左或右偏移量) 1.html: <!DOCTYPE html> ...

  2. 原生JS实现图片轮播

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 用jQuery基于原生js封装的轮播

    我发现轮播在很多网站里面都用到过,一个绚丽的轮播可以为网页增色不少,最近闲来无事,也用原生js封装了一个轮播,可能不像网上的插件那么炫,但是也有用心去做.主要用了闭包的思想.需要传递的参数有:图片地址 ...

  4. jQuery与原生js实现banner轮播图

    jQuery与原生js实现banner轮播图: (jq需自己加载)(图片需自己加载) <!DOCTYPE html> <html> <head> <meta ...

  5. 原生JS实现简易轮播图

    原生JS实现简易轮播图(渐变?) 最近做网页总是会用到轮播图,我就把之前写的轮播图单独拿出来吧,如果有...如果真的有人也需要也可以复制去用用啊..哈~.. window.onload = funct ...

  6. 原生js实现无缝轮播

    原生js实现无缝轮播 因为要做到无缝,所以就要把第一张图片和最后一张连接起来,在此处采用js克隆了第一张图片的节点,添加到最后,显示图片序号的小圆按钮也是使用js动态添加的. html部分 <d ...

  7. 自己用原生JS写的轮播图,支持移动端触屏滑动,面向对象思路。分页器圆点支持click和mouseover。

    自己用原生javascript写的轮播图,面向对象思路,支持移动端手指触屏滑动.分页器圆点可以选择click点击或mouseover鼠标移入时触发.图片滚动用的setInterval,感觉setInt ...

  8. 纯js写图片轮播插件

    最近终于写成了自己创作的图片轮播插件,使用原生js编写.与目前网上流行的轮播插件相比,功能和效果稍弱,但是使用起来相当方便. 先看html代码 <!DOCTYPE html> <ht ...

  9. 原生JS实现旋转木马轮播图特效

    大概是这个样子: 首先来简单布局一下(emm...随便弄一下吧,反正主要是用js来整的) <!DOCTYPE html> <html lang="en"> ...

随机推荐

  1. ie8下input文字偏上select文字偏下

    1.ie8下input文字偏上 正常情况下input的显示情况如下 当设置input的高度时,就会出现文字不垂直居中偏上的情况,如图 解决方案 强input的行高line-height与其高度设置一致 ...

  2. jq 浏览器窗口大小发生变化时

    当调整浏览器窗口的大小时,发生 resize 事件: $(selector).resize(); 实例 对浏览器窗口调整大小进行计数: $(window).resize(function() { $( ...

  3. Python标准库笔记(4) — collections模块

    这个模块提供几个非常有用的Python容器类型 1.容器 名称 功能描述 OrderedDict 保持了key插入顺序的dict namedtuple 生成可以使用名字来访问元素内容的tuple子类 ...

  4. gnu app url[web][5星]

    http://www.gnu.org/software/software.zh-cn.html http://linux.chinaunix.net/news/2010/12/07/1175310.s ...

  5. OC 01 类和对象

    一.  定义OC的类和创建OC的对象 接下来就在OC中模拟现实生活中的情况,创建一辆车出来.首先要有一个车子类,然后再利用车子类创建车子对象 要描述OC中的类稍微麻烦一点,分2大步骤:类的声明.类的实 ...

  6. 内核添加USB模块

    Device Drivers->SCSI device support->SCSI disk support Device Drivers->USB support->Supp ...

  7. css设置div等标签背景半透明

    三种方式: 1. background-color: transparent; 直接设置背景为透明 2.这种是子元素也会跟着变成半透明 /* 背景半透明,1为不透明 */ opacity: 0.5; ...

  8. ES6 一种新的数据结构--Map跟Objct的区别

    var map1=new Map(); var keys={key:'val'}; map1.set(keys,'content'); ==> {Object {key: "val&q ...

  9. Django Rest Framework用户访问频率限制

    一. REST framework的请求生命周期 基于rest-framework的请求处理,与常规的url配置不同,通常一个django的url请求对应一个视图函数,在使用rest-framewor ...

  10. jquery实现页面加载时删除特定class 的div内前三个字符

    jQuery(document).ready(function(){        jQuery("div.groupheader").each(function(){ $(thi ...