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

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

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

搭建我们的骨架:

 <!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. Apache Mina入门实例

    一.mina是啥 ApacheMINA是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可扩展性的网络应用程序.它提供了一个通过Java NIO在不同的传输例如TCP/IP和UDP/IP上抽象的 ...

  2. 面向对象的三大特征——封装、继承、多态(&常用关键字)

    一.封装 Encapsulation 在面向对象程式设计方法中,封装是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装的概念(针对服务器开发,保护内部,确保服务器不出现问题) 将类的 ...

  3. Combination Sum系列问题

    主要使用方法是backtracking. Combination Sum Given a set of candidate numbers (C) and a target number (T), f ...

  4. Zookeeper的安装和初步使用

    1. Zookeeper集群角色 Zookeeper集群的角色:  Leader 和  follower  (Observer) zk集群最好配成奇数个节点 只要集群中有半数以上节点存活,集群就能提供 ...

  5. 【算法功底】LeetCode 292 Nim Game

    You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...

  6. Maven项目热部署到Tomcat容器下

    第一步: 配置Tomcat的登陆的用户名与密码     在 apache-tomcat-7.0.33\conf\ tomcat-users.xml,第40行添加如下: <role rolenam ...

  7. python urllib模块

    1.urllib.urlopen(url[,data[,proxies]]) urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像 ...

  8. Spark源码分析之分区器的作用

    最近因为手抖,在Spark中给自己挖了一个数据倾斜的坑.为了解决这个问题,顺便研究了下Spark分区器的原理,趁着周末加班总结一下~ 先说说数据倾斜 数据倾斜是指Spark中的RDD在计算的时候,每个 ...

  9. sublime text 3 打造舒适黑色主题

    效果: 这里我使用了两个主题插件组合成的 Spacegray Afterglow Ctrl+Shift+P -> Package Control:Install Packages 分别输入Spa ...

  10. 在mysql 5.6的环境下修改生产环境的表结构(在线ddl) ----工具pt-osc

    随着需求的变化越来越快,在线修改表结构变得越来越需要. 在mysql5.6以前,mysql的修改表结构操作会锁表,这样就会造成开发人员或者DBA修改表结构必须要等到凌晨流量谷值或者停服修改.这样必定会 ...