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. PHP 用Symfony VarDumper Component 调试

    Symfony VarDumper 类似 php var_dump() 官方文档写的安装方法 : 按照步骤 就可以在 running any PHP code  时候使用了 In order to h ...

  2. 剑指offer:从头到尾打印链表

    目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:从头到尾打印链表 题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 解题思路 首先题目实际给出的要求是返回ve ...

  3. 【UML】活动图介绍

    1.活动图,即Activity Diagram,是UML中用于对系统的动态行为建模的一种常用工具,它描述活动的顺序,展现从一种活动到另一种活动的控制流.其本质上是一种流程图,着重表现从一个活动到另一个 ...

  4. golang and intellij

    有一个项目,混合了java和go,需要在intellij中安装go的插件. OK,网上的信息简直混乱不堪,两个流派,一个流派就是装插件,一个流派就是编译插件,各种折腾,还是安装不了,谁知柳暗花明又一村 ...

  5. rpc通信模型

    1.client_stub是为了屏蔽客户端调用远程主机的对象,而在本地的一个对象存根,存根负责接受本地方法调用,并将其序列化,然后通过网络发送给服务端.

  6. Object empty value key filter

    Object empty value key filter 过滤空值 Utils emptykeysFilter() "use strict"; /** * * @author x ...

  7. BZOJ4327 JSOI2012玄武密码(AC自动机)

    当然可以在SA上二分答案,但看起来会被卡log.考虑对模板串建出AC自动机,用母串在上面跑,标记上所有能到达的点.注意到达某个点时需要标记所有其通过fail指针可以走到的点,如果遇到一个标记过的点就可 ...

  8. something about Parameter Estimation (参数估计)

    点估计 Point Estimation 最大似然估计(Maximum Likelihood Estimate —— MLE):视θ为固定的参数,假设存在一个最佳的参数(或参数的真实值是存在的),目的 ...

  9. 【BZOJ 3123】 [Sdoi2013]森林 主席树启发式合并

    我们直接按父子关系建主席树,然后记录倍增方便以后求LCA,同时用并查集维护根节点,而且还要记录根节点对应的size,用来对其启发式合并,然后每当我们合并的时候我们都要暴力拆小的一部分重复以上部分,总时 ...

  10. 线程--promise furture 同步

    http://www.cnblogs.com/haippy/p/3279565.html std::promise 类介绍 promise 对象可以保存某一类型 T 的值,该值可被 future 对象 ...