轻松实现javascript图片轮播特效


Posted in Javascript onJanuary 13, 2016

本文实例介绍了javascript图片轮播特效的详细代码以及实现思路,分享给大家供大家参考,具体内容如下

还是先来看一看效果图:

轻松实现javascript图片轮播特效

具体代码:

一、HTML代码分析

<body> 
  <div class="dota"> 
    <ul id="content"> 
      <li><a href="#"><img src="images/1.jpg"/></a></li> 
      <li><a href="#"><img src="images/2.jpg"/></a></li> 
      <li><a href="#"><img src="images/3.jpg"/></a></li> 
      <li><a href="#"><img src="images/4.jpg"/></a></li> 
      <li><a href="#"><img src="images/5.jpg"/></a></li> 
    </ul> 
    <ul id="indicator"> 
      <li class="current"><a href="#">A版是一款手机DOTA应用,它涵盖了</a></li> 
      <li><a href="#">A版是一款手机应用,它涵盖了</a></li> 
      <li><a href="#">A版是一款手机应用,它涵盖了</a></li> 
      <li><a href="#">A版是一款手机应用,它涵盖了</a></li> 
      <li><a href="#">A版是一款手机应用,它涵盖了</a></li> 
    </ul> 
  </div> 
</body>

此效果的层次结构比较清楚:
1. class为data的div是最外层的容器,可以用来控制整个效果图显示的位置。

2. id为content的ul用来存放左侧滚动的图片。

3. id为indicator的ul用来显示右侧的指示栏。

二、CSS代码

*{margin: 0; padding: 0;} 
 
    img{ 
      border:0; 
    } 
 
    .dota{ 
      width:570px; 
      height: 230px; 
      margin:100px auto; 
      position: relative; 
      overflow: hidden; 
    } 
 
    .dota #content{ 
      float: left; 
      list-style: none; 
      position: absolute; 
      width:380px; 
      height:230px; 
    } 
    .dota #content img{ 
      width:380px; 
      height:230px;  
    } 
    .dota #indicator{ 
      float: right; 
      list-style: none; 
      width:180px; 
      height:220px; 
      padding: 5px; 
      background-color: #100F13; 
    } 
    .dota #indicator li{ 
      width: 180px; 
      height: 44px; 
      background: url(images/anniu.png) 0 -44px; 
    } 
 
    .dota #indicator li.current{ 
      background-position: 0 0; 
    } 
 
    .dota #indicator li a{ 
      display: block; 
      width: 160px; 
      height: 34px; 
      padding: 5px 0 5px 25px; 
    } 
 
    .dota #indicator li a:link , .dota #indicator li a:visited{ 
      text-decoration: none; 
      color: #686477; 
      font: 12px/145% "宋体"; 
    }

这里,我对indicator中li的代码进行说明:
.dota #indicator li中的css代码就是设置右侧指示栏中的每一项,注意到,这里使用了background属性,也就是说li的背景是一张图片。准备好的图片如下:

轻松实现javascript图片轮播特效

这张准备好的图片大小为 180 * 88, 而.dota #indicator li中的background属性设置的position属性大小为 0 -44px, 即截取的图片的下半部分;所以indicator中所有的背景图片显示的是下半部分比较暗的部分; 而.dota #indicator li.current 的position属性大小为 0 0,所以默认情况下indicator的第一个显示高亮,其余的显示为暗黑的那部分。然后通过JQuery代码控制current属性作用在 "谁" 身上来切换选中状态。

三、JQuery代码

<script type="text/javascript"> 
 
    $(function(){ 
 
      var nowImage = 0; 
 
      /* 为定时动画服务 */ 
      $(".dota #content li").first().clone().appendTo($(".dota #content")); 
 
      var timer = setInterval(autoAnimate, 1500); 
 
      $(".dota").mouseenter(function(){ 
        clearInterval(timer); 
      }).mouseleave(function(){ 
        timer = setInterval(autoAnimate, 1500); 
      });; 
 
      $(".dota #indicator li").mouseenter(function(){ 
        $(this).addClass("current").siblings().removeClass("current"); 
        nowImage = $(this).index(); 
        /*stop() 可以立刻清楚以前的动画,防止动画叠加*/ 
        $(".dota #content").stop().animate({"top": -230 * nowImage}, 1000); 
      }); 
 
      function autoAnimate(){ 
        if(nowImage == 4){ 
          nowImage = 0; 
           
          $(".dota #indicator li").eq(nowImage).addClass("current").siblings().removeClass("current"); 
          $(".dota #content").stop().animate({"top":-230 * 5}, 1000,function(){ 
            $(".dota #content").css("top",0); 
          }); 
        } 
        else{ 
          nowImage++; 
          $(".dota #content").stop().animate({"top": -230 * nowImage}, 1000); 
          $(".dota #indicator li").eq(nowImage).addClass("current").siblings().removeClass("current"); 
          } 
      } 
 
    }); 
 
  </script>

以上就是轻松实现javascript图片轮播特效的详细代码,希望对大家的学习有所帮助。

Javascript 相关文章推荐
javascript 带有滚动条的表格,标题固定,带排序功能.
Nov 13 Javascript
JS实现双击编辑可修改状态的方法
Aug 14 Javascript
jquery读写cookie操作实例分析
Dec 24 Javascript
AngularJS自动表单验证
Feb 01 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
Jun 03 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
Jul 09 Javascript
AngularJS 入门教程之事件处理器详解
Aug 19 Javascript
Angular.js实现动态加载组件详解
May 28 Javascript
jquery如何实现点击空白处隐藏元素
Dec 05 jQuery
JS简单生成由字母数字组合随机字符串示例
May 25 Javascript
微信小程序仿微信运动步数排行(交互)
Jul 13 Javascript
JS实现滚动条触底加载更多
Sep 19 Javascript
简单的JS时钟实例讲解
Jan 13 #Javascript
基于jquery实现的仿优酷图片轮播特效代码
Jan 13 #Javascript
详解iframe与frame的区别
Jan 13 #Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
Jan 13 #Javascript
Jquery uploadify上传插件使用详解
Jan 13 #Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
Jan 13 #Javascript
jquery对复选框(checkbox)的操作汇总
Jan 13 #Javascript
You might like
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
基于JQuery的日期联动实现代码
2011/02/24 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
深入理解Promise.all
2018/08/08 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
Python编程实现的图片识别功能示例
2017/08/03 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
儿童编程python入门
2018/05/08 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2018/05/26 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
opencv+python实现均值滤波
2020/02/19 Python
Django分组聚合查询实例分享
2020/04/29 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
人事主管的岗位职责
2013/11/16 职场文书
中学生操行评语
2014/04/24 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
python实现自动清理文件夹旧文件
2021/05/10 Python