HTML

<div class="carousel">
    <ul class="car-img">
        <li><img src="data:images/imgs1.jpg"></li>
        <li><img src="data:images/imgs2.jpg"></li>
        <li><img src="data:images/imgs1.jpg"></li>
        <li><img src="data:images/imgs2.jpg"></li>
        <li><img src="data:images/imgs1.jpg"></li>
        <li><img src="data:images/imgs2.jpg"></li>
    </ul>
    <div class="navgation">
        <span class="nav-prev"><</span>
        <span class="nav-next">></span>
    </div>
    <ul class="car-btn">
        <li class="lihover"></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</div>

CSS

*{
    margin:0;
    padding:0;
    border:0;
    box-sizing:border-box;
}
li{
    list-style:none;
}
.carousel{
    position:relative;
    width:100%;
    height:600px;
}
.carousel .car-img{
    position:relative;
    width:100%;
    height:100%;
    overflow:hidden;
}
.carousel .car-img li{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
}
.carousel .car-img li img{
    border:0;
    width:100%;
    height:100%;
}
.carousel .navgation{
    position:absolute;
    top:295px;
    width:100%;
    color:#fff;
    font-size:30px;
    line-height:45px;
}
.carousel .navgation .nav-prev{
    display:inline-block;
    width:30px;
    height:50px;
    background:rgba(51,51,51,.5);
}
.carousel .navgation .nav-next{
    float:right;
    display:inline-block;
    width:30px;
    height:50px;
    background:rgba(51,51,51,.5);
}
.carousel .navgation .nav-prev.btnhover,.carousel .navgation .nav-next.btnhover{
    color:red;
    cursor:pointer;
}
.carousel .car-btn{
    position:absolute;
    bottom:20px;
    width:auto;
    margin-left: calc(50% - 120px);
    overflow:hidden;
}
.carousel .car-btn li{
    float:left;
    margin:10px;
    width:20px;
    height:20px;
    border-radius:20px;
    background:rgba(102,255,0,1);
}
.carousel .car-btn li.lihover{
    float:left;
    margin:10px;
    width:20px;
    height:20px;
    border-radius:20px;
    background:rgba(255,0,0,1);
}

jQuery

$(function(){
    var isPagerClick=false,        //判断底下的小按钮
        isPrevClick=false,        //判断左右滑动的按钮
        index=0,    //目标值
        pre=0,
        handid;
    start();
    function start(){
        init();    //初始化函数
        $(".car-img li").eq(0).fadeIn().siblings().fadeOut();
        handid = setInterval(play,2000);    //轮播
    }
    function init(){
        $(".car-btn li").bind("click",pagerClick);    //给小按钮绑定点击事件
        $(".navgation span").bind("click",btnClick);//给左右按钮绑定点击事件
        $(".navgation span").hover(btnMouseOver,btnMouseOut);
    }
    function pagerClick(){        //小按钮的点击事件
        isPagerClick=true;        //已经点击
        clearInterval(handid);    //消除setInterval
        var oPager=$(this).index();    //获取点击按钮的索引值
        if(oPager != pre)    //判断点击按钮的位置
        {
            index=oPager - 1;    
            play();
        }
    }
    function btnClick(){
        if($(this).hasClass("nav-prev")){ //判断点击按钮的 左 或者是 右
            isPrevClick=true;
            clearInterval(handid);
            if(index==0 || index==1)
            {
                if(index==0){index=$(".car-img li").length-2;}
                else{index=$(".car-img li").length-1;}
            }else
            {
                index-=2;
            }
            play();
        }
        else{
            isPrevClick=true;
            clearInterval(handid);
            play();
        }
    }
    function btnMouseOver(){
        $(this).addClass("btnhover");
    }
    function btnMouseOut(){
        $(this).removeClass("btnhover");
    }
    function play(){
        index++;
        if(index == $(".car-img li").length)
        {
            index = 0;
        }
        $(".car-img li").eq(pre).fadeOut(100,function(){
            $(".car-img li").eq(index).fadeIn(500,function(){
                if(isPagerClick)    //判断是否点击了
                {
                    handid=setInterval(play,2000);    //重新设置setInterval
                    isPagerClick=false;
                };
                if(isPrevClick)
                {    
                    handid=setInterval(play,2000);
                    isPrevClick=false;
                }
            }).siblings().fadeOut();
            $(".car-btn li").eq(index).addClass("lihover");
            $(".car-btn li").eq(pre).removeClass("lihover");
            pre=index;
        });
    }
})

效果图

jQuery 图片轮播的更多相关文章

  1. 12款经典的白富美型—jquery图片轮播插件—前端开发必备

    图片轮播是网站中的常用功能,用于在有限的网页空间内展示一组产品图片或者照片,同时还有非常吸引人的动画效果.本文向大家推荐12款实用的 jQuery 图片轮播效果插件,帮助你在你的项目中加入一些效果精美 ...

  2. Nivo Slider - 世界上最棒的 jQuery 图片轮播插件

    Nivo Slider 号称世界上最棒的图片轮播插件,有独立的 jQuery 插件和 WordPress 插件两个版本.目前下载量已经突破 1,800,000 次!jQuery 独立版本的插件主要有如 ...

  3. jquery图片轮播插件slideBox

    效果预览: 源代码下载: jQuery图片轮播(焦点图)插件jquery.slideBox 特点:兼容IE6+,Chrome,Firefox,Opera,safari,可左右,可上下,可快可慢,可指定 ...

  4. Jquery 图片轮播实现原理总结

    Jquery 图片轮播实现原理总结 以前要做图片轮播效果的时候,总是在网上找一段jquery的复制粘贴进去,只索取不奉献,今个就把我对这个的实现原理讲解一下. 首先说下,我在网上找的例子全是用的UL ...

  5. 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结

    史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...

  6. jquery 图片轮播demo实现

    转载注明出处!!! 转载注明出处!!! 转载注明出处!!! 图片轮播demo,弄清楚过程其实是一个很简单的东西,看网上都没有什么实质性的代码,就自己把过程捋了一遍实现了. 这次因为随手写的,所以没有做 ...

  7. jquery图片轮播效果(unslider)

    今天做网站(住建局网站)需要用到图片轮播,刚开始想借鉴DTCMS上的,查看CSS与页面代码,呵呵,不复杂,直接复制过来,结果调整半天,页面还是各种乱,没办法,网上找一个吧,于是找到了今天要说的这货un ...

  8. Jquery图片轮播和CSS图片轮播

    学习Jquery以后,很多时候觉得比写源生代码要简单一点.我们用JQuery做了一个图片轮播的动画,感觉比写CSS要简单一些.下面我来具体讲一下是怎么用JQuery来写. <body> & ...

  9. jQuery 图片轮播的代码分离

    以前遇到过jQuery实现列表自动滚动,这次的图片轮播在原理上与之相同,只有一些细微的差别,就是需要在图片的右下角显示当前图片的序号. html代码,以及对应的css代码: <div id=&q ...

  10. 面板支持单个,多个元素的jQuery图片轮播插件

    一.先附上demo <!doctype html> <html> <head> <meta charset="utf-8"> < ...

随机推荐

  1. wpa_supplicant使用笔记-wpa_cli iwconfig

    还在搞8634,看不到头了..唉.wireless_tools的缺点是不支持WPA认证,所以有必要把wpa_supplicant也移植过来.无线 网卡是基于zydas芯片的,正好可以在网上搜到wpa_ ...

  2. Postman interceptor

    安装 下载地址: Postman Interceptor Chrome插件下载 1. 下载的是一个crx文件. 2. 在谷歌中打开: chrome://extensions/ 3. 拖动cfx文件到 ...

  3. curl 模拟ajax 请求

    主要是在header请求里加一个  X-Requested-With: XMLHttpRequest curl -v -H "X-Requested-With: XMLHttpRequest ...

  4. [置顶] Android JNI必须掌握的五点

      1:JNI是什么? Java NativeInterface(JNI)是Java提供的一个很重要的特性.它使得用诸如C/C++等语言编写的代码可以与运行于Java虚拟机(JVM)中的 Java代码 ...

  5. Android Scroller类的详细分析

    尊重原创作者,转载请注明出处: http://blog.csdn.net/gemmem/article/details/7321910 Scroller这个类理解起来有一定的困难,刚开始接触Scrol ...

  6. JAVA中的继承和覆盖

    java里面的继承是子类继承父类的一些方法和属性(除private属性和方法之外):对于父类的私有属性和方法子类是没有继承的.可是要想子类也能訪问到父类的私有属性,必须给私有属性以外界訪问的方法接口. ...

  7. 再回首,Java温故知新——开篇说明

    不知不觉在IT界从业2年了,两年时间足够一个人成长很多,当然也会改变很多事.在这两年时间里,随着对技术的深入了解,知识面的拓展以及工作难度的增大,渐渐的感觉自己技术方面根基不稳,多数问题也只是做到知其 ...

  8. Java基础知识强化之集合框架笔记06:Collection集合存储自定义对象并遍历的案例

    1.练习:用集合存储5个学生对象,并把学生对象进行遍历. 分析: (1)创建学生类(2)创建集合对象(3)创建学生对象(4)把学生添加到集合(5)把集合转成数组(6)遍历数组 2. 代码示例: Stu ...

  9. Python之路,Day26-----暂无正在更新中

    Python之路,Day26-----暂无正在更新中

  10. Composite 组合模式

      简介         <大话设计模式>一书中组合模式的定义为:将对象组合成[树]形结构以表示[部分-整体]的层次结构,组合模式使得用户对[单个对象]和对[组合对象]的使用具有一致性. ...