轮播图

  1. 图片自动切换(定时器);
  2. 鼠标悬停在图片上图片不切换(清除定时器)
  3. 鼠标悬停在按钮上时显示对应的图片(鼠标悬停事件)
  4. 鼠标悬停在图片上是现实左右箭头
  5. 点击左键切换到上一张图片,但图片为第一张时,点击切换到最后一张图片
  6. 点击右键切换到下一张图片,但图片为最后一张时,点击切换到第一张图片

jquery版本3.4.1

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="css/reset.css" />
<style>
.big{ position: relative;
width: 450px;
height: 270px;
}
#ulimg{
width: 450px;
height: 270px;
overflow: hidden;
}
#ulimg li{float: left;}
#ulimg ul{
width: 500%;
height: 270px;
display: block;
clear: both;
}
#arrows{
position: absolute;
top:90px;
z-index: 5;
width: 100%;
}
.arrow{
width: 30px;
height: 60px;
background-color: #191E2B;
font-size: 25px;
text-align: center;
line-height: 60px;
border-radius: 10px;
color: #FFFFFF;
float: left;
}
#rarrow{
float: right; }
.big #arrows{
position: absolute;
z-index: -1;
transition: z-index 1s;
opacity: 1;
cursor: pointer;
}
.btn{
width: 20px;
height: 20px;
background-color: whitesmoke;
font-size: 18px;
text-align: center;
float: left;
margin: 10px;
border-radius: 5px;
}
#btns{
position: absolute;
z-index: 5;
top: 220px;
left: 220px;
cursor: pointer; }
#btns .btn2{
background: orange;
}
</style>
</head>
<body>
<div class="big">
<div id="ulimg">
<ul>
<li class="now"><img src="img/01.jpg" alt=""/></li>
<li><img src="img/02.jpg" alt=""/></li>
<li><img src="img/03.jpg" alt=""/></li>
<li><img src="img/04.jpg" alt=""/></li>
<li><img src="img/05.jpg" alt=""/></li>
</ul>
</div>
<div id="arrows">
<div class="arrow"><</div>
<div class="arrow" id="rarrow">></div>
</div>
<div id="btns">
<div class="btn btn2">1</div>
<div class="btn">2</div>
<div class="btn">3</div>
<div class="btn">4</div>
<div class="btn">5</div>
</div>
</div>
<script type="text/javascript" src="js/jquery-3.4.1.min.js" ></script>
<script>
var timer=setInterval(change,3000);
var index=1;
function change(){
index++;
if(index>=6){
index=1;
}
$(".btn").removeClass("btn2");
$(".btn").eq(index-1).addClass("btn2");
$("#ulimg ul").animate({
"marginLeft":"-450px"
},1000,function(){
$("#ulimg li:eq(0)").appendTo($(this));
$(this).css("marginLeft",0);
})
}
function lchange(){
$(".btn").removeClass("btn2");
index--;
if(index<=0){
index=5;
}
$(".btn").eq(index-1).addClass("btn2");
$("#ulimg li:eq(4)").prependTo($("#ulimg ul"));
}
function rchange(){
$(".btn").removeClass("btn2");
index++;
if(index>=6){
index=1;
}
$(".btn").eq(index-1).addClass("btn2");
$("#ulimg li:eq(0)").appendTo($("#ulimg ul"));
}
$(".arrow:eq(0)").click(function(){
lchange();
});
$(".arrow:eq(1)").click(function(){
rchange();
});
$(".big").mouseover(function(){
clearInterval(timer);
$("#arrows").css("zIndex",3);
})
$(".big").mouseout(function(){
clearInterval(timer);
timer=setInterval(change,3000);
$("#arrows").css("zIndex",-1);
})
$(".btn").click(function(){
$(".btn").removeClass("btn2");
$(this).addClass("btn2");
var now=$(this).html();
// console.log(now);
// console.log(index);
var btw=now-index;
if(btw<0){
btw=Math.abs(btw);
for(let i=0;i<btw;i++){
lchange();
}
}else if(btw>0){
for(let i=0;i<btw;i++){
rchange();
}
}else{ }
})
</script>
</body>
</html>

javascript版本

html+css

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>轮播图</title>
<link rel="stylesheet" href="css/reset.css" />
<style>
.big{
position: absolute;
width: 450px;
height: 270px;
}
#ulimg li{
position: absolute;
z-index: 1;
opacity: 0;
transition: opacity 1s;
}
#ulimg .now{
position: absolute;
z-index: 2;
opacity: 1;
}
#arrows{
position: absolute;
top:90px;
z-index: 3;
width: 100%;
}
.arrow{
width: 30px;
height: 60px;
background-color: #191E2B;
font-size: 25px;
text-align: center;
line-height: 60px;
border-radius: 10px;
color: #FFFFFF;
float: left;
}
#rarrow{
float: right; }
.big #arrows{
position: relative;
z-index: 1;
transition: z-index 1s;
opacity: 0;
cursor: pointer;
}
.btn{
width: 20px;
height: 20px;
background-color: whitesmoke;
font-size: 18px;
text-align: center;
float: left;
margin: 10px;
border-radius: 5px;
}
#btns{
position: relative;
z-index: 3;
margin-top: 220px;
margin-left: 220px;
cursor: pointer; }
#btns .btn2{
background: orange;
}
</style>
</head>
<body>
<div class="big">
<ul id="ulimg">
<li class="now"><img src="img/01.jpg" alt=""/></li>
<li><img src="img/02.jpg" alt=""/></li>
<li><img src="img/03.jpg" alt=""/></li>
<li><img src="img/04.jpg" alt=""/></li>
<li><img src="img/05.jpg" alt=""/></li>
</ul>
<div id="arrows">
<div class="arrow"><</div>
<div class="arrow" id="rarrow">></div>
</div>
<div id="btns">
<div class="btn btn2">1</div>
<div class="btn">2</div>
<div class="btn">3</div>
<div class="btn">4</div>
<div class="btn">5</div>
</div>
</div>
<script src="js/imgs.js"></script>
</body>
</html>

js

var imgs=document.querySelectorAll("#ulimg li");
var big=document.querySelector(".big");
var index=0;
var timer=setInterval(change,1000);
var arrows=document.getElementById("arrows");
var arrowsbtns=document.getElementsByClassName("arrow");
var btns=document.getElementsByClassName("btn");
function resetbtns(){
for(var i=0;i<imgs.length;i++){
imgs[i].className="";
btns[i].className="btn";
btns[i].setAttribute("onclick","changeimg(this)");
}
}
function change(){
resetbtns();
index++;
if(index>=5){
index=0;
}
imgs[index].className="now";
btns[index].className="btn btn2";
}
big.onmouseover=function stop(){
clearInterval(timer);
arrows.style.zIndex=3;
arrows.style.opacity=1;
}
big.onmouseout=function start(){
clearInterval(timer);
timer=setInterval(change,1000);
arrows.style.zIndex=1;
arrows.style.opacity=0;
}
arrowsbtns[0].onclick=function leftChange(){
resetbtns();
index--;
if(index<=-1){
index=4;
}
imgs[index].className="now";
btns[index].className="btn btn2";
}
arrowsbtns[1].onclick=function rightChange(){
resetbtns();
index++;
if(index>=5){
index=0;
}
imgs[index].className="now";
btns[index].className="btn btn2";
} function changeimg(obj){
resetbtns();
index=obj.innerHTML*1-1;
imgs[index].className="now";
btns[index].className="btn btn2";
}

【jQuery】全功能轮播图的实现(本文结尾也有javascript版)的更多相关文章

  1. jQuery淡入淡出轮播图实现

    大家好我是 只是个单纯的小白,这是人生第一次写博客,准备写的内容是Jquery淡入淡出轮播图实现,在此之前学习JS写的轮播图效果都感觉不怎么好,学习了jQuery里的淡入淡出效果后又写了一次轮播图效果 ...

  2. 用jQuery写的轮播图

    效果图: GitHub地址:https://github.com/123456abcdefg/Javascript 大家可以下载源码查看. 与前一篇写的轮播图实现的效果一致,这个是用jQuery写的, ...

  3. jQuery实现简易轮播图的效果

    (图片素材取自于小米官网) 刚开始接触jQuery的学习,个人觉得如果为了实现多数的动态效果,jQuery的确很简易方便. 下面简易的轮播图效果,还请前辈多多指教~ (努力学习react vue an ...

  4. 用纯css、JavaScript、jQuery简单的轮播图

    完成一个可以自动切换或点击数字的轮播图 HTML代码只需要一个div 包含着一个图片和一个列表,我们主要的思路就是通过点击相应的数字,改变图片的 路径. 有4张图片都在img文件夹里,名称为  img ...

  5. JQuery实现一个轮播图

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

  6. 记录一下自己用jQuery写的轮播图

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

  7. jquery淡入淡出轮播图

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

  8. 使用JQuery制作幻灯片(轮播图)

    1.首先看一下目录结构 images文件夹放所需要播放的图片. js文件夹放jquery库和main.js 2.html代码: <!DOCTYPE html> <html lang= ...

  9. jquery 移动端轮播图

    <div class="slide"> <div class="slide-box"> <ul class="slide ...

随机推荐

  1. scala 中 Any、AnyRef、Object、AnyVal 关系

    Any,是 scala 中的抽象类,不能实例化 AnyRef 继承于 Any,它是一个 trait AnyVal 继承于 Any,它是一个抽象类,目的是消除基本类型,scala中只有引用类型,仅此作用 ...

  2. 组合模式(c++实现)

    组合模式 目录 组合模式 定义 动机 UML类图 场景拆解 源码实现 优点 缺点 定义 将对象组合成树形结构以表示"部分-整体"的层次结构.组合模式是的用户对单个对象和组合对象的使 ...

  3. 【hdu1007】最近点对

    http://acm.hdu.edu.cn/showproblem.php?pid=1007 分治法的经典应用,复杂度可以证明为nlognlogn #include <iostream> ...

  4. tp5.1使用路径常量

    echo "app_path=========".Env::get('app_path')."</br>"; echo "root_pat ...

  5. SSL协议握手工作流程详解(双向HTTPS流程)

    参考学习文档:http://www.cnblogs.com/jifeng/archive/2010/11/30/1891779.html SSL协议的工作流程: 服务器认证阶段: 1)客户端向服务器发 ...

  6. jconsole+idea监控+(jvisualvm 本地内存分析)

    1.idea启动配置 添加以下内容 -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.mana ...

  7. 什么是 Nginx?

    Nginx (engine x) 是一款轻量级的 Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器. 什么是反向代理? 反向代理(Reverse Proxy)方式是指以代理服 ...

  8. Android平台使用termux,随时随地写代码

    生活如此无聊,写点代码打发时间. 趁着假期,我的vivo手机和华为平板(均为4G+64G配置)用的也比较少.于是,思考着如何将这2个设备用来写latex.python.用kingroot却取不了两设备 ...

  9. jmeter学习之安装篇(一)

    一.Jmeter简介 Jmeter是Apache组织开发的基于Java开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常被用做接口功能测试和性能测试. Jme ...

  10. dokcer入门

    背景: 由于最近在做基于Headless chrome + Robotframework + Docker +Jenkins架构的web自动化测试的预研工作,其中涉及到web自动化持续集成,需要搭建自 ...