<!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零基础入门系列】Day1 开发环境搭建

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  2. angular封装七牛云图片上传,解决同一页面多个上传按钮分别上传

    step1:引入文件 引入Plupload *该SDK上传功能集于Plupload插件封装,所以需要下载Plupload; plupload.dev.js 引入qiniu.js为了简便,当时直接从官网 ...

  3. 开源组件NanUI一周年 - 使用HTML/CSS/JS来构建.Net Winform应用程序界面

    NanUI是什么 NanUI基于ChromiumFX项目进行开发,它能让你在你的Winform应用程序中使用HTML5/CSS3/Javascript等网页技术来呈现用户界面(类似Electron). ...

  4. 移动端下拉刷新上拉加载-mescroll.js插件

    最近无意间看到有这么一个上拉刷新下拉加载的插件 -- mescroll.js,个人感觉挺好用的,官网地址是:http://www.mescroll.com 然后我就看了一下文档,简单的写了一个小dem ...

  5. 【java设计模式】责任链模式

    可以随时添加过滤器,并在主方法中添加删除: Main package com.tn.filter; public class Main { public static void main(String ...

  6. MySQL创建用户与授权方法

    最近在弄个mysql兼职项目,记录一下: 一, 创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username ...

  7. js垃圾回收机制

    垃圾回收机制,简称GC(garbage collection),会定期(周期性)地回收那些不再使用的变量,然后释放其内存. 而内存占用的情况有很多: 1.变量 2.字面量对象声明:var obj = ...

  8. Ubuntu配置Django+ Apache2+ mysql

    # 我的Ubuntu上自带的python3.5,所以安装一下 python3.6sudo add-apt-repository ppa:jonathonf/python-3.6sudo apt-get ...

  9. 前端生成验证码图片utils

    <%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncod ...

  10. thinkinginjava学习笔记02_对象

    对象 1. 对象通过一个引用来操作,但是java中的对象是按值传递的,基本上可以在操作中认为对象本身,在内部结构中仍然要记得是对象实体的引用:如:String s = "abcd" ...