jquery实现左右轮播切换效果
程序员文章站
2022-07-02 17:06:13
本文实例为大家分享了jquery实现左右轮播切换效果展示的具体代码,供大家参考,具体内容如下
html:
...
本文实例为大家分享了jquery实现左右轮播切换效果展示的具体代码,供大家参考,具体内容如下
html:
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>document</title> <link rel="stylesheet" href="css/banner.css" rel="external nofollow" > </head> <body> <div id="banner"> <!-- 图片区域 --> <ul class="banner-img" data-load="bannerimgs"> <!-- <li> <a href="${product-details.html?lid=28}" rel="external nofollow" > <img src="${img/index/banner1.png}"> </a> </li> --> <li style="left:50%;"> <img src="img/index/banner1.png"> </li> </ul> <!--左右方向按钮--> <a href="javascript:;" class="ck-slide ck-left" data-move="left"></a> <a href="javascript:;" class="ck-slide ck-right" data-move="right"></a> <!--导航小圆点--> <ul class="indicators" data-load="bannerinds"> <!-- <li></li> --> </ul> </div> <script src="js/jquery.min.js"></script> <script src="js/banner.js"></script> </body> </html>
css:
/*banner部分*/ #banner{ width:960px; height:384px; overflow:hidden; position:relative; } #banner ul.banner-img{ position:absolute; left:0; } #banner ul.banner-img>li{float:left;width:960px;} #banner ul.banner-img img{ width:960px; height:384px; } #banner a.ck-slide{ position:absolute; top:150px; width:35px; height:70px; border-radius:3px; background:#000; opacity:0.15; transition:all .3s linear; } #banner a.ck-left{ left:40px; background: #000 url(../img/index/arrow-left.png) no-repeat center center; } #banner a.ck-right{ right:0px; background:#000 url(../img/index/arrow-right.png) no-repeat center center; } #banner a.ck-slide:hover{ opacity:0.3; } #banner ul.indicators{ position:absolute; bottom:10px; left:50%; margin-left:-34px; list-style: none; } #banner ul.indicators li{ width:12px; height:12px; background:#fff; border-radius:50%; float:left; margin-right:5px; transition:all .2s linear; } #banner ul.indicators li:hover,#banner ul.indicators li.hover{ cursor:pointer; background-color:#0aa1ed; }
js:
$(()=>{ $.ajax({ type:"get", url:"php/xz.php", datatype:"json" }).then(data=>{ console.log(data); var html=""; const liwidth=960; for(var item of data){ html+=`<li> <a href="${item.href}" rel="external nofollow" title="${item.title}"> <img src="${item.img}"> </a> </li>`; } html+=`<li> <a href="${data[0].href}" rel="external nofollow" title="${data[0].title}"> <img src="${data[0].img}"> </a> </li>`; console.log(html); var $ulimg=$(".banner-img"); $ulimg.html(html).css("width",liwidth*(data.length+1)); var $ids=$(".indicators"); $ids.html("<li></li>".repeat(data.length)).children().first().addclass("hover"); const wait=2000,dura=1000; var moved=0,timer=null; function move(dir=1){ moved+=dir; console.log("moved="+moved); $ulimg.animate({ left:-liwidth*moved },dura,()=>{ if(moved%data.length==0){ moved=0; $ulimg.css("left",0); } $ids.children(`li:eq(${moved})`).addclass("hover").siblings().removeclass("hover"); }) } var timer=setinterval(move,wait); $('#banner').hover( ()=>{ //这个是什么? clearinterval(timer), timer=null; }, ()=>{ timer=setinterval(move,wait); } ); $("[data-move=right]").click(()=>{ //防止动画叠加 /*clearinterval(timer); timer=null; move(); timer=setinterval(move,wait);*/ if(!$ulimg.is(":animated")) move(); }); $("[data-move=left]").click(()=>{ if(!$ulimg.is(":animated")){ if(moved==0){ $ulimg.css("left",-liwidth*data.length); moved=data.length; } move(-1); } }); $ids.on("mouseover","li",function(){ var $li=$(this); var i=$li.index(); moved=i; $ulimg.stop(true).animate({ left:-liwidth*moved },dura,()=>{ $ids.children(":eq("+i+")") .addclass("hover") .siblings().removeclass("hover"); }) }); }) })
php:
<?php header("content-type:application/json"); require_once("init.php"); $sql="select img,title,href from xz_index_carousel"; $result=mysqli_query($conn,$sql); echo json_encode(mysqli_fetch_all($result,1)); ?>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 3-1 路由_路由对象
下一篇: axios设置header信息