轻松实现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 相关文章推荐
IE下window.onresize 多次调用与死循环bug处理方法介绍
Nov 12 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
Nov 28 Javascript
浅谈Javascript 执行顺序
Dec 18 Javascript
JS的参数传递示例介绍
Feb 08 Javascript
Javscript删除数组中指定元素并返回新数组
Mar 06 Javascript
了不起的node.js读书笔记之例程分析
Dec 22 Javascript
基于jquery实现放大镜效果
Aug 17 Javascript
Vue.js中数据绑定的语法教程
Jun 02 Javascript
浅谈Postman解决token传参的问题
Mar 31 Javascript
小程序实现多选框功能
Oct 30 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
Dec 09 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
Jul 24 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一些服务器端特性的配置加强php的安全
2006/10/09 PHP
PHP抽象类 介绍
2012/06/13 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
php中explode函数用法分析
2014/11/15 PHP
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
2016/02/19 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
2017/08/31 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
python文件编写好后如何实践
2020/07/07 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
办公室文员工作职责
2014/01/31 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
供电工程专业求职信
2014/08/09 职场文书
2014年科技工作总结
2014/11/26 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
父亲去世追悼词
2015/06/23 职场文书
公司老总年会致辞
2015/07/30 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书
golang中的空slice案例
2021/04/27 Golang
Python 批量下载阴阳师网站壁纸
2021/05/19 Python