京东商城-广告轮播图

广告轮播图对于有开发经验的程序员来说非常的简单,本次贴出代码是为了让初学者能够尽快掌握实现方法,同时,如何使用更少的代码实现这一功能也是考察我们编码水平的重要因素.欢迎各位童鞋们参考交流.
css样式

<style type="text/css"> 
 *{
        margin: 0;padding: 0;
    }   
 #flash{
        position: relative;
        width: 670px;
        height: 220px;
        margin: 150px auto;
        overflow: hidden;
    } 
 #flash .scroll{
        position: absolute;
        width: 670px;
        height: 1000%;
    }   
 #flash .scroll img{
        width: 670px;
        height: 220px;
    }    
#flash .scroll ul li{
        list-style-type: none;
    }    
.control{ 
       cursor: pointer;
        width: 180px; 
       height: 20px;
        position: absolute;
        top: 330px;
        left: 720px;
        z-index: 1;
    }   
 .control li{ 
       font-size: 14px;
        margin-left: 10px;
        text-align: center;
        line-height: 26px;
        float: left;
        list-style-type: none;
        background-color: #cccccc;
        width: 26px;
        height: 26px; 
       border-radius:13px; 
   }    #hover{ 
       background-color: red;
    }
</style>

html+js部分

<body>
<div class="control">
    <ul> 
       <li id="hover">1</li> 
       <li>2</li>
       <li>3</li>
       <li>4</li>
    </ul>
</div>
<div id="flash">
    <div class="scroll">
        <ul>
            <li><img src="image/img_01.jpg"></li>
            <li><img src="image/img_02.jpg"></li>
            <li><img src="image/img_03.jpg"></li>
            <li><img src="image/img_04.jpg"></li>
        </ul>
    </div>
</div>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
    var index = 0;
    var timer = null;
    $('.control ul li').hover(function () {
        if (timer != null){
            window.clearInterval(timer);
        }         
          index = $(this).index();
          $(this).attr('id','hover').siblings('li').removeAttr('id');  
          $('.scroll').animate({top:index*(-220)},300);
            },function () {
                autoPlay();
          });    
    function autoPlay() {
          timer =  window.setInterval(fn,1000);
    }    
    function fn() {
            index ++;
            if (index == 4){ index = 0;}
            $('.control ul li').eq(index).attr('id','hover').siblings('li').removeAttr('id'); 
            $('.scroll').animate({top:index*(-220)},300);
        }
    autoPlay();
</script></body>

说明

  • 本方法主要使用了JQuery的siblings(), animate(), eq(), 等dom操作的方法.JQuery是一个封装很完善的库,使用这些方法可以帮助我们省去很多JS遍历的操作.对帮助我们提升开发效率有很大作用.下面我来简单介绍一下上述几个方法:

    • siblings()方法:

    • 语法: $(obj) .siblings(selector) 获得指定元素所在集合中所有兄弟元素的集合,selector元素是可选的,如果传入,那么匹配selector元素的集合.

    • 用法:通俗的说就是让一组元素中某一个元素保持某种状态,而这个集合中其他的元素统统保持另外一种状态,本质是遍历操作.

    • animate() 方法:

    • 语法1: $(obj).animate(style,speed,easing,callback);

    • 语法2: $(obj).animate(styles,options);
      参数的说明请自行了解,这里不做过多说明.

    • 用法: 让指定的元素执行传入的css样式,以及执行动画的时间,快慢,和回调方法,执行动画的规则按照css标准执行,比如改变元素位置top,left等需要将元素的position设置为absolate.

  • eq() 方法:

    • 语法:$(obj).eq(index) 在一个元素集中找到下标为index的元素.返回这个元素对应的JQuery对象.
    • 用法:快速通过下标找到元素,在点击事件中非常好用.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 通过jQuery,您可以选取(查询,query)HTML元素,并对它们执行“操作”(actions)。 jQuer...
    枇杷树8824阅读 670评论 0 3
  • 第一章 入门 基本功能:访问和操作 dom 元素,控制页面样式,对页面的事件处理,与ajax完美结合,有丰富的插件...
    X_Arts阅读 1,066评论 0 2
  • 请记得在进行JQuery类库的运用时,加入JQuery类库,并且要保证先写文档就绪函数 $(document).r...
    Sunshinemm阅读 2,919评论 1 40
  • 原文链接 http://blog.poetries.top/2016/10/20/review-jQuery 关注...
    前端进阶之旅阅读 16,673评论 18 503
  • 对自己的最大慷慨,就是把所有的努力都献给现在。 1.有一种悲哀,是陷入迷茫但却无法脱身 学妹今年升大四了。 在很多...
    Believe流光阅读 821评论 0 0