众所周知,轮播图是被广泛的运用的。

  轮播图我们在很多的网站上都可以看到,例如淘宝、京东这些网站都很常见。

  下面开始我们的轮播之旅:

搭建我们的骨架:

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
   <title></title>
</head>
<body> </body>
</html>

添加区块:



 <div class="banner">
<div class="b_main">
<div class="b_m_pic">
<ul>
<li>
<a>
<img src="img/1.png" width="100%" height="100%"/><!--这里的宽高是为了占满盒子-->
</a>
</li>
<li>
<a>
<img src="img/2.png" width="100%" height="100%"/>
</a>
</li>
<li>
<a>
<img src="img/3.jpg" width="100%" height="100%"/>
</a>
</li>
<li>
<a>
<img src="img/4.jpg" width="100%" height="100%"/>
</a>
</li>
<li>
<a>
<img src="img/5.png" width="100%" height="100%"/>
</a>
</li>
<li>
<a>
<img src="img/6.png" width="100%" height="100%"/>
</a>
</li>
</ul>
</div>
</div>
<!--小圆点-->
<div class="b_list">
<ul>
<li class="l_click"></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="b_btn">
<div class="b_left">&lt</div>
<div class="b_right">&gt</div>
</div>
</div>

css样式:


 <style>
*{margin:;padding:}
ul li{list-style:none}
img{margin:}
</style>
<style>
.banner{position: relative;width: 1366px;height: 780px;margin: 100px auto;border: 10px solid #009999;border-radius: 15px}
.banner .b_main{position: relative;width: 1366px;height: 780px;}
.banner .b_main .b_m_pic{position: relative;width: 1366px;height: 780px;}
.b_main .b_m_pic li{position: absolute;width: 1366px;height: 780px;top:;left:;}/*这里给绝对定位,是为了把li叠在一起*/
</style>
<style>
/*小圆点的样式*/
.b_list ul{position:absolute;right: 40px;bottom: 30px;}/*这里的ul根据banner定位*/
.b_list ul li{width: 20px;height: 20px;float: left;background: #333;margin-left: 20px;border-radius: 50px;
border:2px solid white;}
.b_list ul .l_hover,.b_list ul .l_click{border:2px solid #333;background: white}
/*两边耳朵的样式*/
.b_btn div{position: absolute;width: 100px;height: 100px;background: rgba(0,0,0,0.7);font-size: 60px;color: white;text-align: center;line-height: 100px;top: 50%;margin-top: -80px;cursor: pointer;}
.b_btn .b_left{left:;border-radius: 50%}/*移到左边*/
.b_btn .b_right{right:;border-radius: 50%}/*移到右边*/
</style>

 

接下来是我们的JS代码:

  var $li = $(".b_list ul li");//获取.b_list里面的所有li,放到$li这个变量里面
var len = $li.length-1;
var _index = 0;//li的索引
var $img = $(".b_main .b_m_pic li");//同上
var $btn = $(".b_btn div"); var timer = null; // alert(typeof timer); timer是一个对象 $li.hover(function(){
$(this).addClass("l_hover");//指向li添加样式
},function(){
$(this).removeClass("l_hover");//指向li删除样式
}); //点击事件
$li.click(function(){
_index = $(this).index();
//获取li的下标,改变样式
//$li.eq(_index).addClass("l_click").siblings().removeClass("l_click");
//获取图片的下标,实现淡入淡出
//$img.eq(_index).fadeIn().siblings().fadeOut();
play();
}); //封装函数
function play(){
//获取li的下标,改变样式
$li.eq(_index).addClass("l_click").siblings().removeClass("l_click");
//获取图片的下标,实现淡入淡出
$img.eq(_index).fadeIn().siblings().fadeOut();
} //两边耳朵的点击事件
$btn.click(function(){
var index = $(this).index();
if(index) {
_index++;
if (_index > len) {
_index = 0;
}
play();
}else {
_index--;
if(_index < 0){
_index = len;
}
play();
}
}); //定时轮播
function auto(){
//把定时器放进timer这个对象里面
timer = setInterval(function(){
_index++;
if(_index > len){
_index = 0;
}
play();
},2000);
}
auto(); //当我移上d_main的时候停止轮播
$(".b_main").hover(function(){
clearInterval(timer);
},function(){
//移开重新调用播放
auto();
});
//当我移上两边耳朵的时候停止轮播
$(".b_btn div").hover(function(){
clearInterval(timer);
},function(){
//移开重新调用播放
auto();
});

下面是我们的效果图:

  

总结:

  1、图片、小圆点、两边的耳朵要使用position:absolute绝对定位,进行叠加。

    注:绝对定位要根据父级元素进行定位,父级元素要加上position: relative;

  2、根据索引值改变图片,达成切图

    注:实现淡入淡出分别是fadeIn和fadeOut两个jq方法

      siblings() 方法返回被选元素的所有同级元素。同级元素是共享相同父元素的元素。

  3、定时器(实现轮播):

      setInterval()是开始播放,clearInterval()是关闭,有始有终嘛~~~~~

      定时器有两个参数,第一个是函数方法(可以另写一个方法,写上方法名调用,也可以直接写一个function),第二个是时间

      

  

jQ实现的一个轮播图的更多相关文章

  1. 基于JQ的简单左右轮播图

    // 轮播图 主要实现思想: a.第一层div,设置overflow为hidden. b.里面是一个ul,每个li里面有个img或者为每个li设置背景图片也可以. c.li设置为左浮动,排成一行,还有 ...

  2. css3 - 纯css实现一个轮播图

    这是我上一次的面试题.一晃两个月过去了. 从前都是拿原理骗人,把怎么实现的思路说出来. 我今天又被人问到了,才想起来真正码出来.码出来效果说明一切: 以上gif,只用到了5张图片,一个html+css ...

  3. JQuery实现一个轮播图

    1.HTML <div class="banner"> <div class="b_main"> <div class=" ...

  4. 用JQ去实现一个轮播效果

    前提:用JQ去实现轮播效果一步步的做一个梳理. 首先肯定是轮播的HTML和CSS样式了: <body> <div class="pic"> <div ...

  5. jq交叉淡入淡出轮播图

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

  6. AXURE 8弄一个轮播图的步骤

    这个图是网上找到,7.0可以使用. 如果是8.0.没有找到"动态面板"这个地方,如下图所示

  7. 用原生的javascript 实现一个无限滚动的轮播图

    说一下思路:和我上一篇博客中用JQ去写的轮播图有相同点和不同点 相同点: 首先页面布局是一样的 同样是改变.inner盒子的位置去显示不同的图片 不同点: 为了实现无限滚动需要多添加两张重复的图片 左 ...

  8. 使用jq深入研究轮播图特性

    网站轮播图 太耳熟的词了  基本上做pc端的 主页绝壁会来一个轮播图的特效 轮播图他一个页面页面的切换,其实的原理是通过css的定位 ,定位到一起,第一张首先显示,其余默认隐藏. 今天我实现的这个轮播 ...

  9. 原生js实现一个简单的轮播图

    想锻炼一下自己的原生js能力可以从写一个轮播图开始,轮播图的运用想必大家都知道吧,好了废话不多说,开始记笔记了,一些需要注意的点,我都在代码中标注了 首先是构造html: <div id=&qu ...

随机推荐

  1. css简单实现火焰效果

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

  2. 4.Linux的文件搜索命令

    1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [chanshuyi@localhost ~]$ which ls alias ls= ...

  3. 使用$.post和action或servlet交互 URL出现 http://localhost:8080/../[object%20Object] 错误的问题解决

    使用$.post时,如下所示: $.post({ url : "./test/ajaxTest", }); 控制台报:There is no Action mapped for n ...

  4. winform 自定义分页控件 及DataGridview数据绑定

    分页效果如上图所示,用到的控件均为基本控件 ,其方法如下 右击项目-添加-新建项 选择用户控件 然后在用户控件中拖入所需要的Label,Button,Text 用户控件全部代码: using Syst ...

  5. Canvas绘制一个大鱼喂小鱼的游戏

    Canvas是HTML5中的一部分,强大的API足以让我们绘制我们任意想绘制的东西.利用Canvas的基础学习以及JavaScript面向对象的思想绘制一个小游戏,下面是源码地址https://git ...

  6. 构造器和多态(Chapter8.3)

    构造器不具有多态性(它们是static方法,只不过该static声明是隐式的),但还是非常有必要理解构造器怎样通过多态在复杂的层次结构中运作,这一理解将有助于大家避免一些令人不快的困扰. 在main中 ...

  7. MVC实现SSO

    近来工作无事,想做个SSO, 之前做过一个项目用到SSO,自己也没有看明白是个什么东西.现在正好有时间,所以想研究下. 先是从网上看到了SSO的思路: 三个站点:SiteA,SiteB,SiteMai ...

  8. java线程控制安全

    synchronized() 在线程运行的时候,有时会出现线程安全问题例如:买票程序,有可能会出现不同窗口买同一张编号的票 运行如下代码: public class runable implement ...

  9. 图片裁剪(cropper)后上传问题

    最近工作需要处理头像裁剪以及上传,研究了几天,写点心得,提醒自己记住踩过的坑,能帮助别人当然更好. 功能基本就是这样: 这里需要注意的是:拿到需求后,不要急于直接上手,花费半个小时,甚至更长时间缕清整 ...

  10. 【原】Unity Shader VS UDK Material Editor

    UDK 的材质编辑器十分好用,毕竟是所见即所得的.虽然unity也有类似第三方插件,但易用性还是差很多,下面主要是,把一些常见表达式概念对应起来. 1. UDK CameraVector (相机位向量 ...