轻松实现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的背景是一张图片。准备好的图片如下:

这张准备好的图片大小为 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图片轮播特效的详细代码,希望对大家的学习有所帮助。

(0)

相关推荐

  • 基于javascript实现样式清新图片轮播特效

    本文实例为大家分享了javascript实现图片轮播特效,供大家参考,具体内容如下 一.实现效果 如上图: 1.图片自动依次轮换,每轮换到一张图片,下面对应的小图标出现红色边框,并显示对应的图片名称 2.鼠标放到大图片上面的时,图片停止轮换,一直显示当前图片:鼠标移开后图片继续轮换 3.鼠标移到小图标上时,大图片区域会显示对应的大图:鼠标移开则从当前图片开始继续轮换 二.代码 <!DOCTYPE html> <html> <head lang="en"&g

  • 让图片跳跃起来 javascript图片轮播特效

    图片轮播效果,在现在的网站的首页,差不多是必备的效果显示. 所以我从三个方面来讲解这一效果的简单实现. 图片跳动起来 图片序列控制的实现 前后按钮控制的实现 这篇文章来看图片按照间隔时间进行切换. 我们先把结构代码完成,这个我就不做详细的讲解了.看效果 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <sty

  • JavaScript实现带标题的图片轮播特效

    图片轮播,在一些购物网站上运用的不胜枚举,下面简单介绍一下图片轮播的实现. 如图 CSS代码: <style type="text/css"> .body{ width:524px; border:solid 1px #666; margin-left:auto; margin-right:auto; } .bg{ background-color:#E0E0E0; height:20px; border-top:solid 1px #B4B4B4; } .number{

  • js仿小米官网图片轮播特效

    小米官网给我的感觉是大气.干净.很多特效的加入让人觉得耳目一新,big满满. 看到他们首页的轮播图实现挺有意思,于是自己模仿着写了一个. 大致的感觉出来了,贴个图先: 通过前端神器chrom的F12观察小米官网的html代码,不难看到他们使用5个div包裹图片并使用了定位通过z-index来控制div层级,通过控制每个div的opacity属性和display属性进行元素的显示.隐藏. 截图如下(红框内的opacity属性): 好的,实现的手段知道了,那么页面布局先搞出来. <!DOCTYPE

  • 原生js和jquery实现图片轮播特效

    (1)首先是页面的结构部分 对于我这种左右切换式 1.首先是个外围部分(其实也就是最外边的整体wrapper) 2.接着就是你设置图片轮播的地方(也就是一个banner吧) 3.然后是一个图片组(可以用新的div 也可以直接使用 ul-->li形式) 4.然后是图片两端的左箭头和右箭头 5.然后是一个透明背景层,放在图片底部 6.然后是一个图片描述info层,放在透明背景层的左下角(div 或 ul-->li) 7.然后是一个按钮层,用来定位图片组的index吧,放在透明背景层的右下角(div

  • 很棒的一组js图片轮播特效

    大家经常在网页中使用轮播效果,本文为大家分享的是一组图片轮播特效,希望大家喜欢 先看一眼效果图: 代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> *{padding:0;margin:0;} #content{width:550px;height:300px;margin:50

  • js图片轮播特效代码分享

    本文实例讲述了js图片轮播特效,分享给大家供大家参考.具体如下: 这是一款基于javascript实现的图片轮播特效代码,有缩略图和标题,可以自定义标题. 运行效果图:                    -------------------查看效果------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 为大家分享的js图片轮播特效代码如下 <head> <meta http-equiv="Content-Type" co

  • 原生js轮播特效

    作为一名前端工程师,手写轮播图应该是最基本掌握的技能,以下是我自己原生js写的轮播,欢迎指点批评: 首先css代码 a{text-decoration:none;color:#3DBBF5;} *{ margin: 0; padding: 0; } .wrapper{ width: 400px; height: 300px; margin: 100px auto; } #lunbo{ position: relative; overflow: hidden; } #list{ position:

  • js制作网站首页图片轮播特效代码

    本文实例为大家分享了使用js制作一般网站首页图片轮播效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>图片轮播</title> <style> .warp{ width: 600px; height: 750px; position: relative;

  • 原生js实现图片轮播特效

    本文特意为原生js实现图片轮播特效代码做了下总结,分享给大家供大家参考,欢迎大家学习. 运行效果图: 具体代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>最简单的轮播广告</title> <style> body, div, ul, li { margin: 0; padding: 0

随机推荐