<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
*{
padding:0;
margin:0;
}
ul,ol{
list-style: none;
}
a{
text-decoration: none;
color:#333;
}
.carousel{
width: 560px;
height: 300px;
border: 1px solid #000;
margin:50px auto;
position: relative;
overflow: hidden;
}
.carousel .unit{
/*火车宽度要足够大*/
width:8888px;
height:300px;
position: absolute;
left:0px;
}
.carousel .unit li{
/*图片并排显示*/
float: left;
width: 560px;
height: 300px;
}
.carousel .btns a{
width: 30px;
height: 60px;
position: absolute;
top:50%;
margin-top: -30px;
background-color: rgba(0,0,0,.5);
color:#fff;
font-size: 20px;
text-align: center;
line-height: 60px;
}
.carousel .btns a.leftBtn{
left: 10px;
}
.carousel .btns a.rightBtn{
right: 10px;
}
.carousel .circles{
width: 140px;
height:20px;
position: absolute;
left:50%;
margin-left: -70px;
bottom: 30px;
overflow: hidden; }
.carousel .circles ol{
width: 150px;
}
.carousel .circles ol li{
float: left;
width: 20px;
height: 20px;
margin-right: 10px;
border-radius: 50%;
background-color: orange;
}
.carousel .circles ol li.cur{
background-color: red;
} </style>
</head>
<body>
<div class="carousel" id="carousel">
<ul class="unit" id="unit">
<li><a href=""><img src="data:images/0.jpg" alt=""></a></li>
<li><a href=""><img src="data:images/1.jpg" alt=""></a></li>
<li><a href=""><img src="data:images/2.jpg" alt=""></a></li>
<li><a href=""><img src="data:images/3.jpg" alt=""></a></li>
<li><a href=""><img src="data:images/4.jpg" alt=""></a></li>
</ul>
<div class="btns">
<a href="javascript:void(0);" class="leftBtn" id="leftBtn">&lt;</a>
<a href="javascript:void(0);" class="rightBtn" id="rightBtn">&gt;</a>
</div>
<div class="circles" id="circles">
<ol>
<li class="cur"></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>
</div>
</div>
<script type="text/javascript" src="js/jquery-1.12.3.min.js"></script>
<script type="text/javascript">
// 获取元素
var $carousel = $("#carousel");
var $unit = $("#unit");
var $leftBtn = $("#leftBtn");
var $rightBtn = $("#rightBtn");
var $circles = $("#circles ol li");
var amount = $circles.length; // // 信号量可能性0,1,,2,3,4
// 信号量表示当前显示第几张图片
var idx = 0; // 克隆第一张图片clone()追加到火车的最后appendTo
$unit.children("li:first").clone().appendTo($unit); // 定时器
var timer = setInterval(rightBtnFun, 2000);
// 关闭定时器
$carousel.mouseenter(function(){
clearInterval(timer);
});
// 重新开启定时器
$carousel.mouseleave(function(){
// 设表先关
clearInterval(timer);
timer = setInterval(rightBtnFun, 2000);
}); // 右按钮的点击事件
// 策略:先拉动,再判断
$rightBtn.click(rightBtnFun);
function rightBtnFun(){
// 图片运动什么都不做
if($unit.is(":animated")){
return;
}
idx ++;
$unit.animate({"left": -560 * idx },700,function(){
// 判断
if(idx > amount - 1){
idx = 0;
// console.log(idx);
// 猫腻图瞬间移动到真图
$unit.css("left",0);
}
});
// 小圆点改变
// 信号量有一段时间idx = 5 这是小圆点指示0
var i = idx <= amount - 1 ? idx : 0;
$circles.eq(i).addClass("cur").siblings().removeClass("cur");
} // 左按钮的点击事件
$leftBtn.click(function(){
// 防流氓
if(!$unit.is(":animated")){
// 策略先验证再拉动
// 0,1,2,3,4,
idx --;
if(idx < 0){
idx = 4;
// 火车瞬间移动到猫腻图
$unit.css("left",-560 * amount);
}
$unit.animate({"left": -560 * idx},700);
// 小圆点
$circles.eq(idx).addClass("cur").siblings().removeClass("cur");
}
}); // 小圆点的鼠标进入事件
$circles.mouseenter(function(){
idx = $(this).index();
$unit.stop(true).animate({"left": -560 * idx},700);
// 小圆点改变
$(this).addClass("cur").siblings().removeClass("cur");
}); </script>
</body>
</html>

jq传统火车轮播图的更多相关文章

  1. jq demo 轮播图,图片可调用,向左,自动+鼠标点击切换

    <!doctype html> <html> <head> <meta http-equiv="Content-Type" content ...

  2. jq demo 轮播图,图片可调用,向上,自动+鼠标点击切换

    1 <!doctype html> <html> <head> <meta http-equiv="Content-Type" conte ...

  3. JQ万能轮播图

    lunbotu.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8">  ...

  4. jq龙禧轮播图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. JQ无缝轮播图-插件封装

    类似京东的这种无缝轮播效果: 实例代码下载 HTML代码: <body> <!-- /*觅me 探索生活*/ --> <div class="test" ...

  6. JQ 实现轮播图(3D旋转图片轮播效果)

    轮播图效果如下: 代码: <!DOCTYPE html> <html xmlns="/www.w3.org/1999/xhtml"> <head> ...

  7. jq交叉轮播图变种【闪一下黑】

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. jq版轮播图

    html部分 <div class="banner"> <ul class="img"> <li><img src=& ...

  9. HTML+jq简单轮播图

    .main{    width: 100%;    min-width: 1100px;    display: table;    margin: 0 auto;    text-align: ce ...

随机推荐

  1. 【Java入门提高篇】Day7 Java内部类——局部内部类

    今天介绍第二种内部类--局部内部类. 局部内部类是什么?顾名思义,那就是定义在局部内部的类(逃).开玩笑的,局部内部类就是定义在代码块.方法体内.作用域(使用花括号"{}"括起来的 ...

  2. redis参数配置说明

    参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程  daemonize no2. 当Redis以守护进程方式运行 ...

  3. Django的缓存机制

    由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5 ...

  4. MFC中应用对象的成员:窗口指针m_pMainWnd说明

    CVC_MFC_firstDlg dlg; //定义对话框对象m_pMainWnd = &dlg;  //这个定义的对话框 dlg 成为主窗口 应用程序对象成员变量m_pMainWnd是一个窗 ...

  5. 详细:idea如何设置类头注释和方法注释

    IntelliJ IDEA 类注释和自定义方法注释   来源:https://my.oschina.net/baishi/blog/617478#navbar-header intellj idea的 ...

  6. 1. 生成三行文本,过滤文本,cp不覆盖,find查找文件,sed打印行,查看系统信息,磁盘分区

  7. 【java】io流之字节输入流:java.io.InputStream类及子类java.io.FileInputStream

    package 文件操作; import java.io.File; import java.io.FileInputStream; import java.io.IOException; impor ...

  8. 【JMeter】获取json响应报文中数组长度

    import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.Predicate; import net.minidev.json.J ...

  9. Vue.js(一)了解Vue

    什么是Vue? 1.Vue.js是一个构建数据驱动的web界面的库.类似于Angularjs,在技术上,他重点集中在MVVM模式的View层,非常容易学习,非常容易和其他的库或已有的项目整合. 2.V ...

  10. Xamarin使用ListView开启分组视图Cell数据展示bug处理

    问题描述 Xamarin使用IsGroupingEnabled="true"之后再Cell操作就会出现数据展示bug,数据不刷新的问题,如下图所示: 点击取消的是其他钢厂,但Vie ...