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. ACM训练大纲

    1. 算法总结及推荐题目 1.1 C++ STL • STL容器: set, map, vector, priority_queue, queue, stack, deque, bitset• STL ...

  2. 第十一次ScrumMeeting会议

    第十一次ScrumMeeting 时间:2017/11/18 4:00-4:30 地点:主203 人员:全体人员 照片: 工作情况 名字 今日计划 明天的工作 遇到的困难 蔡帜 讨论策划详情\确定WB ...

  3. 【Python】python函数每日一讲 - dir()

    最近确实是有些忙,刚过了年,积攒了很多事情需要处理,所以每日一函数只能是每两天更新一篇,在这里和大家致歉. 今天我们来看一个非常重要的函数:dir() 中文说明:不带参数时,返回当前范围内的变量.方法 ...

  4. 日历插件DatePicker

    Datepicker 地址:https://getuikit.com/v2/docs/datepicker.html

  5. sqlite sql语句关键字GROUP BY的理解

    第一遍看GROUP BY的介绍时,没看懂. SQLite 的 GROUP BY 子句用于与 SELECT 语句一起使用,来对相同的数据进行分组.在 SELECT 语句中,GROUP BY 子句放在 W ...

  6. 关于MySQL的异常处理 Can't connect to MySQL server on localhost (10061)解决方法

    首先检查MySQL 服务没有启动>如果没有启动,则要启动这个服务. 昨天,重起服务器后出现MySQL 'localhost' (10061)错误,开始以为是因为数据库链接打开过多,数据库资源耗尽 ...

  7. PAT 1086 就不告诉你

    https://pintia.cn/problem-sets/994805260223102976/problems/1038429065476579328 做作业的时候,邻座的小盆友问你:“五乘以七 ...

  8. 教你一步一步在linux中正确的安装Xcache加速php

    #第一步,下载Xcache wget http://xcache.lighttpd.net/pub/Releases/3.1.0/xcache-3.1.0.tar.gz #第一步非常简单,如果你下载不 ...

  9. 【题解】SCOI2010幸运数字

    最近在学习容斥相关,于是就看到了这个题.一开始以为是补集转化,但是观察一下马上发现不可行,好像直接做会比较容易一些.一个数满足要求的充要条件即为是一个幸运数字的倍数,那么容斥可以轻松搞定,只要枚举是一 ...

  10. 【BZOJ 3316】JC loves Mkk 01分数规划+单调队列

    单调栈不断吞入数据维护最值,数据具有单调性但不保证位置为其排名,同时可以按照进入顺序找出临近较值单调队列队列两端均可删除数据但只有队末可以加入数据,仍然不断吞入数据但同时可以额外刨除一些不符合条件的数 ...