1.HTML结构:

<head>

<script type="text/javascript" src="../jquery-1.8.3/jquery.js"></script>

</head>

<body>

  <div class="banner">

    <ul class="img">

      <li><a href=""><img src="img/01.jpg" alt="1"></a>

      <li><a href=""><img src="img/02.jpg" alt="2"></a>

      <li><a href=""><img src="img/03.jpg" alt="3"></a>

      <li><a href=""><img src="img/04.jpg" alt="4"></a>

    </ul>

    <ul class="num"></ul>

    <div class="btn btn_left">&lt</div>
            <div class="btn btn_right">&gt</div>

  </div>

</body>

2.css样式:

 *{margin:;padding:;list-style: none;}
.banner{margin:100px auto;border:5px solid #000;width:690px;height:690px;overflow: hidden;
position:relative;}
.banner .img{width:5000px;position: absolute;left:;top:;}
.banner .img li{float:left;}
.banner .num{position: absolute;width:100%;bottom:10px;left:;font-size:;text-align: center;}
.banner .num li{width:10px;height:10px;background-color:#888;border-radius: 50%;
display: inline-block;margin:0px 3px;cursor: pointer;}
.banner .num li.on{background-color:#f60;} .banner .btn{width:50px;height:60px;background:rgba(0,0,0,0.5);position:absolute;top:50%;margin-top:-25px;
font-size:40px;line-height:50px;text-align: center;color:#fff;font-family: "宋体";}
.banner .btn_left{left:;}
.banner .btn_right{right:;}

3.jQuery结构:

 $(function(){                 var i=0;
//将第一张复制
var clone=$(".banner .img li").first().clone();
//然后粘贴
$(".banner .img").append(clone);
//size()被length取代
var size=$(".banner .img li").length;
for(var j=0;j<size-1;j++){
$(".banner .num").append("<li></li>");
}
$(".banner .num li").first().addClass("on");
//鼠标划入圆点
$(".banner .num li").hover(function(){
//获取当前元素的索引值
var index=$(this).index();
i=index;
$(".banner .img").stop().animate({left:-index*690},500)
$(this).addClass("on").siblings().removeClass("on");
})
//自动轮播
var t=setInterval(
moverl,2000)
//鼠标移入定时器被关闭
$(".banner").hover(function(){
clearInterval(t);
},function(){
t=setInterval(moverl,2000)
})
//向左的按钮点击事件
$(".banner .btn_left").click(function(){
moverl();
})
//封装函数
function moverl(){
i++;
if(i==size){
$(".banner .img").css({left:});
i=1;
}
$(".banner .img").stop().animate({left:-i*690},500)
if(i==size-1){
$(".banner .num li").eq(0).addClass("on").siblings().removeClass("on");
}else{
$(".banner .num li").eq(i).addClass("on").siblings().removeClass("on");
} } $(".banner .btn_right").click(function(){
moverr();
})
function moverr(){
i--;
if(i==-1){
//索引从0开始
$(".banner .img").css({left:-(size-1)*690});
i=size-2;
}
$(".banner .img").stop().animate({left:-i*690},500)
$(".banner .num li").eq(i).addClass("on").siblings().removeClass("on");
}
})

jquery左右切换的无缝滚动轮播图的更多相关文章

  1. js原生选项卡(自动播放无缝滚动轮播图)二

    今天分享一下自动播放轮播图,自动播放轮播图是在昨天分享的轮播图的基础上添加了定时器,用定时器控制图片的自动切换,函数中首先封装一个方向的自动播放工能的小函数,这个函数中添加定时器,定时器中可以放向右走 ...

  2. JavaScript+HTML+CSS 无缝滚动轮播图的两种方式

    第一种方式 在轮播图最后添加第一张,一张重复的图片. 点击前一张,到了第一张,将父级oList移动到最后一张(也就是添加的重复的第一张),在进行后续动画. 点击下一张,到了最后一张(也就是添加的重复的 ...

  3. js原生选项卡(包含无缝滚动轮播图)一

    原生js选项卡的几种写法,整片文章我会由简及难的描述几种常用的原生选项卡的写法: Improve little by little every day! 1>基本选项卡: 思路:循环中先清除再添 ...

  4. jQuery与原生js实现banner轮播图

    jQuery与原生js实现banner轮播图: (jq需自己加载)(图片需自己加载) <!DOCTYPE html> <html> <head> <meta ...

  5. iOS swift版本无限滚动轮播图

    之前写过oc版本的无限滚动轮播图,现在来一个swift版本全部使用snapKit布局,数字还是pageConrrol样式可选 enum typeStyle: Int { case pageContro ...

  6. JS---案例:无缝的轮播图

    案例:无缝的轮播图 w <!DOCTYPE html> <html> <head lang="en"> <meta charset=&qu ...

  7. 原生无缝Banner轮播图

    话不多说,先展示效果图.由于录制工具,稍显卡顿,实际是流畅的.可以看到实现了无缝轮播,鼠标悬停,点击左右上下按钮切换Banner的功能,如图1所示. 图1 原生无缝banner效果展示 以我这个轮播图 ...

  8. JQuery手写一个简单的轮播图

    做出来的样式: 没有切图,就随便找了一些图片来实现效果,那几个小星星萌不萌. 这个轮播图最主要的部分是animate(),可以先熟悉下这个方法. 代码我放到了github上,链接:https://gi ...

  9. 用jQuery实现简单的简单的轮播图

    图片来源 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

随机推荐

  1. [leetcode-604-Design Compressed String Iterator]

    Design and implement a data structure for a compressed string iterator. It should support the follow ...

  2. Socket实现-Socket I/O

    Socket层的核心是两个函数:sosend()和soreceive().这两个函数负责处理所有Socket层和协议层之间的I/O操作. select()系统调用的作用是监控文件描述符的状态.一般用于 ...

  3. C++ 宏定义#define 中##的使用

    在C++的宏定义中,符号##一般是用于连接,包括参数的连接,参数与标识符的连接等,然后形成一个新的标识符. 下面举几个例子来进行说明. eg1: #define ADD(a,b) a##b #defi ...

  4. 通过history解决ajax不支持前进/后退/刷新

    前言: 现在前后端基本都是通过ajax实现前后端接口数据的交互,但是,ajax有个小小的劣势,即:不支持浏览器“后退”和“前进“键. 但是,现在我们可以通过H5的histroy属性 解决ajax在交互 ...

  5. Java jvm级别native关键词、JNI详解

    1.native关键词的引入 再完美的编程语言也有自己的不足之处,当然Java也不例外,Java的不足之处除了体现在运行速度(这点往往被一些其他编程语言使用者所诟病)上要比传统的C++慢许多之外,Ja ...

  6. linux安装oracle笔记

    linux安装oracle .增大swap空间,内存大于8G后swap跟内存同等大小即可 mkdir /home/swap cd /home/swap mkswap swapfile swapon s ...

  7. 大数据平台搭建-kafka集群的搭建

    本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容: 基础环境安装 zookeeper集群的搭建 kafka集群的搭建 hadoop/hbase集群的搭建 spark集群的搭建 flink集 ...

  8. 用CSS的border画三角形

    用border画三角形,实际上属于一种奇淫巧技. 利用的是border的一个特性:当一个元素的宽高都为0时,给border设置宽度(至少给2个相邻的边框设置宽度),border就会撑开这个元素. 四个 ...

  9. LoadRunner接口工作总结

    因为工作中需要开发维护类似枢纽性质的平台,所以经常利用LR进行接口测试.接口自动化测试.接口压力测试.用多了LR,有点不愿意使用报文编辑器进行手工接口测试了.  接口脚本操作过程: 首先:打开LR,N ...

  10. vue vuex的用法

    1.引入  vue.js    vuex.js 文件 2.创建Store文件 var sSatte=new Vuex.Store({ state:{}, mutations:{}, actions:{ ...