轻松实现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中各种编码解码函数的区别和注意事项
Aug 19 Javascript
node.js Web应用框架Express入门指南
May 28 Javascript
javascript闭包的理解
Apr 01 Javascript
浅谈Javascript中substr和substring的区别
Sep 30 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
Mar 03 Javascript
easyui下拉框动态级联加载的示例代码
Nov 29 Javascript
Vue仿今日头条实例详解
Feb 06 Javascript
微信小程序发送短信验证码完整实例
Jan 07 Javascript
微信小程序 slot踩坑的解决
Apr 01 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
May 14 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
Sep 02 Javascript
微信小程序订阅消息(java后端实现)开发
Jun 01 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
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
动态为事件添加js代码示例
2009/02/15 Javascript
基于jquery的表格排序
2010/09/11 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
2018/08/19 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
Vue数字输入框组件示例代码详解
2020/01/15 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
python3抓取中文网页的方法
2015/07/28 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
简单了解python单例模式的几种写法
2019/07/01 Python
python 获取等间隔的数组实例
2019/07/04 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
python  logging日志打印过程解析
2019/10/22 Python
如何基于python操作excel并获取内容
2019/12/24 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
会计实习生工作总结的自我评价
2013/10/07 职场文书
项目管理计划书
2014/01/09 职场文书
大学自我评价
2014/02/12 职场文书
优秀技术工人先进材料
2014/02/17 职场文书
财政专业求职信范文
2014/02/19 职场文书
人事经理岗位职责
2014/04/28 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
七年级作文之秋游
2019/10/21 职场文书
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android