轻松实现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 面向对象思想 附源码
Jul 07 Javascript
JavaScript 通过模式匹配实现重载
Aug 12 Javascript
JavaScript中的细节分析
Jun 30 Javascript
JavaScript中的函数声明和函数表达式区别浅析
Mar 27 Javascript
JS数组array元素的添加和删除方法代码实例
Jun 01 Javascript
学习JavaScript设计模式(接口)
Nov 26 Javascript
AngularJS入门教程之模块化操作用法示例
Nov 02 Javascript
简单实现js上传文件功能
Aug 21 Javascript
详解js的作用域、预解析机制
Feb 05 Javascript
微信小程序input框中加入小图标的实现方法
Jun 19 Javascript
javascript操作向表格中动态加载数据
Aug 27 Javascript
如何在JavaScript中正确处理变量
Dec 25 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 获取完整url地址
2008/12/20 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
2016/01/13 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
JSON 数据格式详解
2017/09/13 Javascript
详解微信小程序的 request 封装示例
2018/08/21 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
Python基于百度云文字识别API
2018/12/13 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
python操作cfg配置文件方式
2019/12/22 Python
Python实现点云投影到平面显示
2020/01/18 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
某公司.Net方向面试题
2014/04/24 面试题
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
党员个人思想汇报
2013/12/28 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers