大致的布局如下:

<div class="banner" >
                <div class="pic">
                    <ul>
                        <li><img src="img/banner4.jpg" alt="" /></li>
                        <li><img src="img/banner1.png" alt="" /></li>
                        <li><img src="img/banner2.png" alt="" /></li>
                        <li><img src="img/banner3.jpg" alt="" /></li>
                        <li><img src="img/banner4.jpg" alt="" /></li>
                        <li><img src="img/banner1.png" alt="" /></li>
                    </ul>
                </div>
       <!--点播列表-->
                <div class="tab">
                    <ul>
                        <li></li>
                        <li></li>
                        <li></li>
                        <li></li>
                    </ul>
                </div>
        <!--banner 两边的按钮-->
                <div class="btn">
                    <div id="left"> < </div>
                    <div id="right"> > </div>
                </div>
            </div>

css样式如下:

.banner{width:100%;height:400px;position:relative;}
.banner .pic{width: 100%;height: 100%;overflow: hidden;}
.banner .pic ul{width: 1000%;height: 100%;margin-left: -100%;}
.banner .pic ul li{width: 10%;height: 100%;float: left;}
.banner .pic ul li img{width: 100%;height: 100%;}
.banner .tab{width: 136px;height: 3px;position: absolute;bottom: 20px;left: 50%;margin-left: -68px;}
.banner .tab ul li{width: 30px;height: 3px;float: left;margin: 0 2px;background: #5D5C60;}
.banner .tab ul li.on{background: #0DA1A4;}
.banner .btn div{width: 30px;height: 40px;background: rgba(0, 0, 0, 0.5);font-size:20px;text-align: center;line-height: 40px;color: #fff;position: absolute;top: 50%;margin-top: -20px;display: none;}
#left{left: 15px;}
#right{right: 15px;}

JS代码:

~function(){
   var banner = $('.banner');
   var picUl = $('.banner .pic ul');
   var tabLi = $('.banner .tab ul li');
   var btnDiv = $('.banner .btn div');
   var width = banner.width();
   var index = 0;
   var timer = null;
   var nowTime = 0;
   //底部Li列表添加on样式
   tabLi.eq(0).addClass('on');
   setAuto();
   tabLi.click(function(){
        index = $(this).index();
        tabLi.eq(index).addClass('on').siblings().removeClass('on');
        picUl.stop().animate({
            marginLeft:-width*(index+1)+'px'
        },1000);
   });
   btnDiv.click(function(){
        if (new Date() - nowTime >500) {
            nowTime = new Date();
            var i = $(this).index();
            i?index++:index--;
            change();
        }
   });
   function setAuto(){
       timer = setInterval(function(){
           index++;
           change();
       },5000);
   };
   banner.hover(function(){
       btnDiv.show(1000);
       clearInterval(timer);
   },setAuto).mouseleave(function(){
       btnDiv.hide(1000);
   });
   
   function change(){
       index >= tabLi.length?tabLi.eq(0).addClass('on').siblings().removeClass('on'):tabLi.eq(index).addClass('on').siblings().removeClass('on');
       picUl.stop().animate({
           marginLeft:-width*(index+1)+'px'
       },1000,function(){
           if (index==4) {
               index = 0;
               picUl.css("marginLeft",-width+'px');
           } else  if(index == -1){
               index = tabLi.length - 1;
               picUl.css("marginLeft",-width*(index+1)+'px');
           }
       });
   }
}();

作为一个新手,用两天时间调试的banner图,感觉还是可以的~_~~_~

JQuery写的一个常见的banner的更多相关文章

  1. 用jQuery写了一个模态框插件

    用jQuery写了一个模态框插件 大家觉得下面的框框好看么, 水印可以去掉(这个任务交给你们了(- o -)~zZ); "info"框 $("div").con ...

  2. 利用jquery写的一个TAB页切换效果

    函数如下 /** *切换效果 */ function switab(tab,con,tab_c_css,tab_n_css,no) { $(tab).each(function(i){ if(i == ...

  3. 用jquery写自己的form表单验证

    这几天看了锋利的jquery,感觉很不错.特别是jquery强大的选择器.今天就利用jquery写了一个自己的form表单验证的小案例.当巩固下jquery.首先贴下代码,当然只是一个小案例. 思路: ...

  4. 如何使用jQuery写一个jQuery插件

    jQuery插件其实是前端框架的思维,构成一个框架,个人认为必须满足以下几个基础条件:1. 可重用,2. 兼容性,3. 维护方便,虽说现在有很多比较成熟的前端框架,但是也有部分存在配置麻烦,学习成本大 ...

  5. 自己在项目中写的一个Jquery插件和Jquery tab 功能

    后台查询结果 PDFSearchResult实体类: [DataContract(Name = "PDFSearchResult")] public class PDFSearch ...

  6. 用jQuery写的最简单的表单验证

    近几天完成了关于我们项目的最简单的表单验证,是用jQuery写的,由于之前也一直没学过jQuery,所以自己也是一直处于边摸索边学习的阶段,经过这一段时间的学习,通过查资料啥的,也发现了学习jQuer ...

  7. 为jQuery写插件

    很多场合,我们都会调用jQuery的插件去完成某个功能,比如slider. 如下图,做一个div,通过“$( "#slider" ).slider();”的方式直接将div变成sl ...

  8. 用jquery写循环播放div的相关笔记 珍贵的总结 -1

    用jquery写循环播放div line-height应用的元素的 层次? line-heig字ht, 叫行高, 仅仅是指 文/文本, 而不管图片. line-height是容器中 文本行 与 文本行 ...

  9. 自己写的一个Yeoman的Generator-Require-Angularjs

    Yeoman是一个常见的工作流,能够很方面的搭建属于自己的脚手架. 这段时间我用闲暇时间写了一个Generator来玩了一下,这个Generator的主要目的是快速建立一个RequireJS+Angu ...

随机推荐

  1. ubuntu16.04下安装chrome

    1.在终端中,输入以下命令: sudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.l ...

  2. 文本处理三剑客之grep

    grep grep(支持基本正则表达式),egrep(支持扩展的正则表达式),fgrep(快速的grep,不支持正则表达式) grep是一个最初用于Unix操作系统的命令行工具.在给出文件列表或标准输 ...

  3. Hibernate(二):MySQL server version for the right syntax to use near 'type=InnoDB' at line x

    目前使用的hibernate5.2.9版本,配置的mysql方言为: <property name="hibernate.dialect">org.hibernate. ...

  4. JS面向对象之原型链

      对象的原型链 只要是对象就有原型 原型也是对象 只要是对象就有原型, 并且原型也是对象, 因此只要定义了一个对象, 那么就可以找到他的原型, 如此反复, 就可以构成一个对象的序列, 这个结构就被成 ...

  5. C/C++下调用matlab函数操作说明

    1.matlab的安装 连接:http://pan.baidu.com/s/1qXuF7aO 安装32位版本的matlab(在目录下bin文件夹中有两个文件夹,选择win32文件夹下的setup进行安 ...

  6. JS继承的一些见解

    JS继承的一些见解 js在es6之前的继承是五花八门的.而且要在项目中灵活运用面向对象写法也是有点别扭,更多的时候还是觉得面向过程的写法更为简单,效率也高.久而久之对js的继承每隔一段时间就会理解出现 ...

  7. hermite矩阵

    在读线代书.因为之前并没有上过线性代数的课.所以决定把基础打牢牢. 读书的时候当然会出现不懂的概念和术语或者定理什么的.所以在这记录一下啦--- hermit矩阵要理解它好像先要知道什么是共轭(con ...

  8. Java基础知识回顾之三 ----- 封装、继承和多态

    前言 在上一篇中回顾了java的修饰符和String类,这篇就来回顾下Java的三大特性:封装.继承.多态. 封装 什么是封装 在面向对象程式设计方法中,封装是指一种将抽象性函式接口的实现细节部份包装 ...

  9. vim 多行缩进

    按v进入可视化模式后, 选中要缩进的多行, 后按shift+.实现多行缩进.

  10. ABP领域层知识回顾之---工作单元

    1. 前言   在上一篇博文中(http://www.cnblogs.com/xiyin/p/6842958.html) 我们讲到了ABP领域层的仓储.这边博文我们来讲 工作单元.个人觉得比较重要.文 ...