<!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. 自学Zabbix3.8.1.1-可视化Visualisation-Graphs简单图表

    自学Zabbix3.8.1.1-可视化Visualisation-Graphs简单图表 Zabbix提供了一些简单的图表,用于可视化由项目收集的数据. 用户不需要进行配置工作来查看简单的图表.他们是由 ...

  2. python __getattr__ 巧妙应用

    在之前的文章有提到__getattr__函数的作用: 如果属性查找(attribute lookup)在实例以及对应的类中(通过__dict__)失败, 那么会调用到类的__getattr__函数, ...

  3. AJAX扩展-POST传递参数并跳转页面

    拓展的代码: 这段代码的原理是创建一个表单,所有args都创建一个隐藏的input,用post方法把这些参数传递过去 注意form表单一定要加载到页面中,即下面代码中标红的部分,不然参数是无法被传递的 ...

  4. springboot 热部署的两种方式

    问题的提出: 在编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果是这样的编码方式,那么我们估计一天下来就真的是打几个Hello World就下班了.那么如何解决热部署的问题呢 ...

  5. Java Web Session设置

    一.前言 在做 java web项目时,我们很多时候都要用到 Session,那么我就简单的写一下 Session 的写法. 二.代码实现 Servlet Session 的设置 package co ...

  6. CSS之clearfix清除浮动

    .clear { clear: both; height: 0; overflow: hidden; display: block; line-height: 0 }   .clearfix:afte ...

  7. echarts中如何使用timeline组件

    1.吃碗面 这里关于echarts3 官网的示例我不得不吐槽一下,逼格真高!一小部分示例动不动数据就是国家统计局搞出来的,你脸真大.当然他们做的示例的确是很好,这一点毫无疑问.当我看了echarts3 ...

  8. Chrome调试折腾记_(1)调试控制中心快捷键详解!!!

    转载:http://blog.csdn.net/crper/article/details/48098625 大多浏览器的调试功能的启用快捷键都一致-按下F12;还是熟悉的味道;  或者直接 Ctrl ...

  9. python如何进行内存管理

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 语言的内存管理是语言设计的一个重要方面.它是决定语言性能的重要因素.无论是C语言的 ...

  10. Python列表操作

    自带帮助文档: >>> help(list) Help on class list in module builtins: class list(object) | list() - ...