轻松实现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 相关文章推荐
jQuery针对各类元素操作基础教程
Aug 29 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
Apr 21 Javascript
js提交form表单,并传递参数的实现方法
May 25 Javascript
React实现双向绑定示例代码
Sep 19 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
Dec 02 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
Aug 03 Javascript
Vue引入sass并配置全局变量的方法
Jun 27 Javascript
Node.js+Express+Mysql 实现增删改查
Apr 03 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
Nov 08 Javascript
详解vue中v-bind:style效果的自定义指令
Jan 21 Javascript
Webpack5正式发布,有哪些新特性
Oct 12 Javascript
js实现上传图片到服务器
Apr 11 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与ASP
2006/10/09 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
如何在PHP中读写文件
2020/09/07 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
JavaScript 动态改变图片大小
2009/06/11 Javascript
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
JS实现简单短信验证码界面
2017/08/07 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
python 七种邮件内容发送方法实例
2014/04/22 Python
好的Python培训机构应该具备哪些条件
2018/05/23 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
PyTorch中的C++扩展实现
2020/04/02 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
详解python中的异常捕获
2020/12/15 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
初婚初育证明
2014/01/14 职场文书
电子专业毕业生自我鉴定
2014/01/22 职场文书
车辆工程专业求职信
2014/04/28 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
国庆节新闻稿
2015/07/17 职场文书
趣味运动会口号
2015/12/24 职场文书
六年级语文教学反思
2016/03/03 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
Java实现简易的分词器功能
2021/06/15 Java/Android