让图片跳跃起来  javascript图片轮播特效


Posted in Javascript onFebruary 16, 2016

图片轮播效果,在现在的网站的首页,差不多是必备的效果显示. 所以我从三个方面来讲解这一效果的简单实现.

  • 图片跳动起来
  • 图片序列控制的实现
  • 前后按钮控制的实现

这篇文章来看图片按照间隔时间进行切换.

我们先把结构代码完成,这个我就不做详细的讲解了.看效果

让图片跳跃起来  javascript图片轮播特效

代码如下:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title></title>
  <style>
    * {
      box-sizing: border-box;
    }
    a {
      text-decoration: none;
    }
    ul,ol,li{
     list-style: none;
      margin: 0;
      padding: 0;
    }
    #slider{
      width: 800px;
      height: 300px;
      overflow: hidden;
      position: relative;
      margin: 0 auto;
    }
    #slider ul{
      width: 2400px;
      position: relative;
    }
    #slider ul:after{
      content: " ";
      width: 0;
      height: 0;
      display: block;
    }
    #slider ul li{
      float: left;
      width: 800px;
      height: 300px;
      overflow: hidden;
    }
    #slider ul li img{
      width: 100%;
    }
    #slider ol{
      position: absolute;
      bottom: 10px;
      left: 46%;
    }
    #slider ol li{
      display: inline-block;
    }
    #slider ol li a{
      display: inline-block;
      padding:4px 8px;
      border-radius:15px;
      background-color: #000;
      color: #fff;
    }
    #slider .prev, #slider .next{
      display: inline-block;
      position: absolute;
      top: 49%;
      background-color: #000;
      opacity: 0.6;
      color: #fff;
      padding: 3px;
    }
    #slider .prev{
      left: 10px;
    }
    #slider .next{
      right: 10px;
    }
  </style>
</head>
<body>
  
  <div id="slider">
    <ul>
      <li> <img src="http://www.bates-hewett.com/images/sliders/slider-1.jpg" /> </li>
      <li> <img src="http://www.bates-hewett.com/images/sliders/slider-2.jpg" /> </li>
      <li> <img src="http://www.bates-hewett.com/images/sliders/slider-3.jpg" /> </li>
    </ul>
    <ol>
      <li> <a href="#">1</a> </li>
      <li> <a href="#">2</a> </li>
      <li> <a href="#">3</a> </li>
    </ol>
    <a href="#">上一张</a>
    <a href="#">下一张</a>
  </div>
</body>
</html>

好的,现在我们来通过JS控制图片的跳转.

首先我们需要找到图片所在的位置,这里我们是通过ul来进行布局的所以首先得找到UL下的LI的数目

接着让图片一张一张的展示,我们使用了视窗的模式,就是遮罩层的模式.#slider是一个视窗,ul是视窗外的景色,而ul得景色是横向排版的

然后就是让外面的景色显示为视窗的大小,也就是让每一张图片作为每一次的视窗景色,这里就是控制图片的大小要与视窗同等大小.

上面讲解的是一个概念,也就是布局的处理,下面我们JS的控制了,要实现图片间隔的显示不同.我们就需要用到JS的setInterval或者setTimeout.这里我们使用setInterval(因为这个用起来方便.)

每跳转一次,我们控制的是UL的position的left,这样就可以让ul下的景色,在每一次都是显示不一样,而这个left是根据视窗的宽度来决定,第一张left当然是-800 * 0 ,第二种就是 -800*1,第三种是-800*2...依次类推.那我们就可以得出下面的代码

<script>
   (function(){
     var slider = document.getElementById("slider");
     var imgul = slider.getElementsByTagName("ul")[0];
     var imglis = imgul.getElementsByTagName("li");
     var len = imglis.length;
     var index = 0;
     setInterval(function(){
       if(index >= len){
         index = 0;
       }
        imgul.style.left = - (800 * index) + "px";
        index++;
     },2000);
   })();
 </script>

JS代码这样看起来就很简单了. 我这里是设置2秒跳转依次,然后跳转的次数大于等于图片的数目后,让其返回到第一张图片.

让图片跳跃起来  javascript图片轮播特效

希望本文所述对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
自用js开发框架小成 学习js的朋友可以看看
Nov 16 Javascript
来自国外的页面JavaScript文件优化
Dec 08 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
Jan 23 Javascript
jQuery实现首页图片淡入淡出效果的方法
Jun 10 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
Jan 27 Javascript
node+express制作爬虫教程
Nov 11 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
Feb 22 Javascript
node.js express中app.param的用法详解
Jul 16 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
Oct 20 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
Aug 08 Javascript
Vue实现剪切板图片压缩功能
Feb 04 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
Jul 17 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
Feb 16 #Javascript
详解Node.js包的工程目录与NPM包管理器的使用
Feb 16 #Javascript
javascript每日必学之运算符
Feb 16 #Javascript
解析Node.js基于模块和包的代码部署方式
Feb 16 #Javascript
javascript每日必学之基础入门
Feb 16 #Javascript
快速掌握Node.js环境的安装与运行方法
Feb 16 #Javascript
js实现异步循环实现代码
Feb 16 #Javascript
You might like
用cookies来跟踪识别用户
2006/10/09 PHP
php getsiteurl()函数
2009/09/05 PHP
编写PHP脚本过滤用户上传的图片
2015/07/03 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
python实现list由于numpy array的转换
2018/04/04 Python
python Tkinter版学生管理系统
2019/02/20 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
2014年工人工作总结
2014/11/25 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
2014年绩效考核工作总结
2014/12/11 职场文书
自主招生自荐信格式
2015/03/04 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
Python爬虫之爬取某文库文档数据
2021/04/21 Python
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers