小編給大家分享一下jquery如何實現左右輪播切換效果,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
本文實例為大家分享了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 >
<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));
?>jquery是一個簡潔而快速的JavaScript庫,它具有獨特的鏈式語法和短小清晰的多功能接口、高效靈活的css選擇器,并且可對CSS選擇器進行擴展、擁有便捷的插件擴展機制和豐富的插件,是繼Prototype之后又一個優秀的JavaScript代碼庫,能夠用于簡化事件處理、HTML文檔遍歷、Ajax交互和動畫,以便快速開發網站。
看完了這篇文章,相信你對“jquery如何實現左右輪播切換效果”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。