Javascript或jQuery做轮播图

css样式

<style>
a{
text-decoration:none;
}
.naver{
width: 100%;
position:relative;
} .images{
position:relative;
width: 100%;
height: 400px;
}
.images img{
position:absolute;
left: 0;
top: 0;
width: 100%;
height: 400px;
opacity: 0;
filter:alpha(opacity=0);
transition:opacity .5s;
}
/*图片切换之前有渐变的效果*/
.images img.current{
opacity:1;
filter:alpha(opacity=100);
}
.icon-list{
position:absolute;
left:43%;
bottom:30px;
z-index:1;
width: 200px;
border-radius:30px;
height:35px;
background-color:hsla(0,0%,100%,.4);
}
.icon-list span{
display:inline-block;
width: 20px;
height: 20px;
background-color:#fff;
border-radius:50%;
margin:8px 12px;
}
.icon-list span.current{
background:pink;
}
.icon a{
position:absolute;
top:50%;
display:block;
width: 40px;
height: 40px;
line-height:40px;
text-align:center;
color:rgba(255,255,255,.4);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#66ffffff,endcolorstr=#66ffffff);
background:rgba(0,0,0,.4);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#66000000,endcolorstr=#66000000);
font-size:36px;
font-weight:bold;
}
.icon a:hover{
color:rgba(255,255,255,.8);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#c8ffffff,endcolorstr=#c8ffffff);
background:rgba(0,0,0,.8);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#c8000000,endcolorstr=#c8000000);
/*为了让IE兼容rgba*/
}
.icon a#prev{
left:10px;
}
.icon a#next{
right:10px;
}

HTML部分

<div class="naver clear">
<div class="images">
<img src="./images/01.jpg" class="current" >
<img src="./images/02.jpg" alt="" >
<img src="./images/03.jpg" alt="" >
<img src="./images/04.png" alt="" >
</div>
<div class="icon-list">
<span class="current" index="0"></span>
<span index="1"></span>
<span index="2"></span>
<span index="3"></span>
</div>
<div class="icon">
<a href="#" id="prev">&lt;</a>
<a href="#" id="next">&gt;</a>
</div>
</div>

JavaScript设置

<script>
//获取响应的元素
var naver = document.querySelector(".naver");
var iconList = document.querySelectorAll(".icon-list span");
var prev = document.querySelector("#prev");
var next = document.querySelector("#next"); //定义循环变量
var m = 1; //定时函数
function runPlay(){
if (m > 3) {
m = 0;
} controlImage(m) m ++;
} var timer = setInterval(runPlay, 3000); //滑过轮播图,定时停止
naver.onmouseover = function(){
clearInterval(timer); //显示按钮
prev.style.display = "block";
next.style.display = "block";
} naver.onmouseout = function(){
timer = setInterval(runPlay, 3000); //隐藏按钮
prev.style.display = "none";
next.style.display = "none";
} //被每一个 控制按钮绑定 鼠标滑过 事件
for (var i = 0; i < iconList.length; i ++) {
iconList[i].onmouseover = function(){
var index = parseInt(this.getAttribute("index"));
controlImage(index); m = index + 1; }
} //点击向右的按钮
next.onclick = function(){
if (m > 3) {
m = 0;
} controlImage(m);
m ++;
} //点击向左的按钮
prev.onclick = function(){
m -= 2;
if (m < 0) {
m = 3;
}
controlImage(m);
m ++;
} //控制图片的变化
function controlImage(n){
//获取所有a的集合
var aImgs = document.querySelectorAll(".images img"); //所有的a删除类, 第n个添加类
for (var i = 0; i < aImgs.length; i ++) {
aImgs[i].className = "";
iconList[i].className = "";
}
aImgs[n].className = "current";
iconList[n].className = "current"; }
</script>

jQuery部分

<!-- 兼容IE8以上的 -->
<!--[if gt IE 8]><!-->
<script src="./js/jquery-3.2.1.min.js"></script>
<!--<![endif]--> <!-- 兼容包括IE8以下的浏览器 -->
<!--[if lte IE 8]>
<script src="./js/jquery-1.12.4.min.js"></script>
<![endif]--> <script>
// 设置轮播图样式
$(function(){
//定义循环变量
var m=1;
//定时函数
function runPlay(){
if(m > 3){
m=0;
}
controlImage(m);
m++;
}
var timer=setInterval(runPlay,3000);
//滑过轮播图,定时停止,离开定时继续
$(".naver").mouseenter(function(){
clearInterval(timer);
//显示按钮
prev.style.display="block";
next.style.display="block";
}).mouseleave(function(){
timer=setInterval(runPlay,3000);
//隐藏按钮
prev.style.display="none";
next.style.display="none";
}) //点击向下的按钮
$("#next").click(function(){
if(m > 3){
m=0;
}
controlImage(m);
m++;
}) //点击向上的按钮
$("#prev").click(function(){
m-=2;
if(m < 0){
m=3;
}
controlImage(m);
m++;
}) $(".icon-list span").mouseenter(function(){
controlImage($(this).index());
m = $(this).index() + 1;
}) //控制图片的变化
function controlImage(n){
$(".images img").removeClass("current").eq(n).addClass("current");
$(".icon-list span").removeClass("current").eq(n).addClass("current");
}
}) </script>

用js和jQuery做轮播图的更多相关文章

  1. jQuery做轮播图

    这是我自己做的一个简单的轮播图,效果图如下: 我觉得轮播图中最主要的是要理解到图片为什么会滑动,是怎么控制的.上面这个我自己做的,是搭好的一个结构,在无序列表中插入需要的图片.然后在插入图片的后面添加 ...

  2. 用jQuery实现轮播图效果,js中的排他思想

    ---恢复内容开始--- jQuery实现轮播图不用单独加载. 思路: a. 通过$("#id名");选择需要的一类标签,获得一个伪数组 b.由于是伪数组的原因,而对数组的处理最多 ...

  3. 原生JS面向对象思想封装轮播图组件

    原生JS面向对象思想封装轮播图组件 在前端页面开发过程中,页面中的轮播图特效很常见,因此我就想封装一个自己的原生JS的轮播图组件.有了这个需求就开始着手准备了,代码当然是以简洁为目标,轮播图的各个功能 ...

  4. 自实现PC端jQuery版轮播图

    最近其他项目不是很忙,被安排给公司的官网项目做一个新的页面(之前没接触公司官网项目),其中有一个用到轮播图的地方,最开始想直接用swiper.js插件实现就好了,可是发现官网项目里之前都没有引入过sw ...

  5. Jquery无缝轮播图的制作

    轮播是html页面中比较常见的一种展现形式,也是基础,把轮播图做好,是排版中比较关键的 1.首先是轮播的html元素放置:做轮播之前,要有一个初步的认识 2.每个元素的位置怎样摆放,也是很关键的,这里 ...

  6. jQuery无缝轮播图思路详解-唯品会

    效果图如上: 需求:图片自动轮播,鼠标移上停止播放,离开恢复播放,箭头切换图片. html代码 <!--轮播图大盒子开始--> <div class="wrap" ...

  7. js原生代码实现轮播图案例

    一.轮播图是现在网站网页上最常见的效果之一,对于轮播图的功能,要求不同,效果也不同! 我们见过很多通过不同的方式,实现这一效果,但是有很多比较麻烦,而且不容易理解,兼容性也不好. 在这里分享一下,用j ...

  8. 用 CSS 做轮播图

    对于用 css 实现一个轮播图的缘由,是那时候刚开始接触前端,完全还不懂 js.但是有一个项目(就是一个用来应付面试的作品)需要做一个轮播的效果,当时第一反应就是用 css3 自定义动画 -webki ...

  9. 用html +js+css 实现页面轮播图效果

    html 页面 <html lang="en"> <head> <meta charset="UTF-8"> <met ...

随机推荐

  1. 从零开始搭建一个react项目

    Nav logo 120 发现 关注 消息 4 搜索 从零开始搭建一个react项目 96 瘦人假噜噜 2017.04.23 23:29* 字数 6330 阅读 32892评论 31喜欢 36 项目地 ...

  2. Sping工作原理

    一. IoC(Inversion of control): 控制反转 1.IoC: 概念:控制权由对象本身转向容器:由容器根据配置文件去创建实例并创建各个实例之间的依赖关系 核心:bean工厂:在Sp ...

  3. HDU 4587 TWO NODES(割点)(2013 ACM-ICPC南京赛区全国邀请赛)

    Description Suppose that G is an undirected graph, and the value of stab is defined as follows: Amon ...

  4. 复合类型的声明——是int *p还是int* p

    我们先来看一条基本类型的声明语句:int a, b, ... 即一条声明语句由一个数据类型(int)和紧随其后的一个变量名列表(a, b, ...)组成 更通用的描述是:一个基本数据类型和紧随其后的一 ...

  5. MongoDB Linux下的安装和启动

    1. 下载MongoDB,此处下载的版本是:mongodb-linux-i686-1.8.1.tgz.tar. http://fastdl.mongodb.org/linux/mongodb-linu ...

  6. linux 查看文件空间大小

    1. 查看总的空间占用情况:df -hl 2.查看linux系统里面的各个目录.文件夹的大小和使用情况, 先切换到需要查看的目录,如果需要查看所有linux目录的使用情况就直接切换到系统跟目录,然后执 ...

  7. 【iOS开发】iOS CGRectGetMaxX/Y 使用

    在iOS的界面布局中我们可以使用CGRectGetMaxX 这个方法来方便的获取当前控件的x坐标值+宽度的数值,这样便可以方便布局. 同理CGRectGetMaxY是获取y坐标值+控件高度的值,当然这 ...

  8. bootsrap 上传插件fileinput 简单使用

    1.安装 下载fileinput文件,载入对应的css+js文件,如下: <link href="css/bootstrap.min.css" rel="style ...

  9. log4j的常用使用方法

    第一步,引入jar包,不做介绍. 第二步,创建以下类(固定写法) package smn.util; import org.apache.log4j.Logger; public class MyLo ...

  10. BZOJ4513 SDOI2016储能表(数位dp)

    如果n.m.k都是2的幂次方,答案非常好统计.于是容易想到数位dp,考虑每一位是否卡限制即可,即设f[i][0/1][0/1][0/1]为第i位是/否卡n.m.k的限制时,之前的位的总贡献:g[i][ ...