jquery+css實(shí)現(xiàn)簡(jiǎn)單的圖片輪播效果
開(kāi)發(fā)過(guò)程中需要用到圖片輪播的插件,在網(wǎng)上找了幾個(gè)插件之后還是決定自己碼一個(gè),比較簡(jiǎn)潔的功能,以后說(shuō)不定還會(huì)有用。
ps:
功能比較簡(jiǎn)單,整個(gè)框并不能根據(jù)圖片的大小自動(dòng)調(diào)節(jié),這里所用的圖片是1170*500的,如果需要改成其他大小的圖片,自行修改.pic-list下img的寬度。
.pic-list中的寬度為整個(gè)橫幅的寬度,如果需要輪播的圖片數(shù)量很多,.pic-list的寬度應(yīng)大于數(shù)量*單張寬度,
html
<div class="banner">
<!--第一張圖片為最后一張,用來(lái)做輪播連接使用,所以一開(kāi)始顯示的第一章,應(yīng)是第二張圖片,這里圖片的寬度為1170px,所以一開(kāi)始left為-1170px,同理最后一張圖也為第一張圖。-->
<div class="pic-list" style="left: -1170px">
<img src="/static/img/4.jpg" alt="">
<img src="/static/img/1.jpg" alt="">
<img src="/static/img/2.jpg" alt="">
<img src="/static/img/3.jpg" alt="">
<img src="/static/img/4.jpg" alt="">
<img src="/static/img/1.jpg" alt="">
</div>
<div id="buttons">
<!-- 確保span的數(shù)量跟img數(shù)量一樣多,不包括第一張img和最后一張img-->
<span class='on'></span>
<span></span>
<span></span>
<span></span>
</div>
<a href="javascript:;" class="arrow" id="prev"><</a>
<a href="javascript:;" class="arrow" id="next">></a>
</div>
css
.banner{
width: 100%;
height: 500px;
overflow: hidden;
position: relative;
}
.banner a{
text-decoration: none;
}
.banner .pic-list{
width: 10000px;
height: 500px;
position: absolute;
z-index: 1;
}
.banner .pic-list img{
width: 1170px;
float: left;
}
#buttons{
position: absolute;
z-index: 2;
height: 10px;
bottom: 20px;
left: 550px;
}
#buttons span{
cursor: pointer;
float: left;
border: 1px solid #fff;
width: 10px;
height: 10px;
border-radius: 50%;
background: #333;
margin-right: 5px;
}
#buttons .on{
background: orange;
}
.arrow{
cursor: pointer;
line-height: 36px;
text-align: center;
font-size: 20px;
font-weight: bold;
width: 40px;
height: 40px;
position: absolute;
z-index: 2;
top: 200px;
background: rgba(0,0,0,0.5);
color: #fff;
display: none;
}
.banner:hover .arrow{display: block;}
#prev{
left: 20px;
}
#next{
right:20px;
}
js
$(document).ready(function(){
var picNum = 4;//圖片數(shù)量,根據(jù)實(shí)際修改
var picWidth = 1170;//圖片的寬度,根據(jù)實(shí)際修改
var picMaxWidth = -1 * picNum * picWidth;
var currentPic = 1;
var next = $('#next');
var prev = $('#prev');
var flag = false;
prev.on('click',function(){
if(!flag){
calPx(1170);
currentPic--;
if (currentPic < 1) {
currentPic = picNum;
}
$('#buttons span').eq(currentPic-1).addClass('on').siblings().removeClass('on');
}
});
next.on('click',function(){
if(!flag){
calPx(-1170);
currentPic++;
if (currentPic > picNum) {
currentPic = 1;
}
$('#buttons span').eq(currentPic-1).addClass('on').siblings().removeClass('on');
}
});
$('.banner').on('mouseover',function(){
stop();
}).on('mouseout',function(){
play();
})
function nextClick(){
next.click();
}
function play(){
setInt = setInterval(nextClick,2000);
}
function stop(){
clearInterval(setInt);
}
function calPx(leftPx){
flag = true;
var left = parseInt($('.pic-list').css('left'));
var newLeft = left+leftPx;
var time = 300;
var interval = 10;
var speed = leftPx/(time/interval);
function go(){
var left = parseInt($('.pic-list').css('left'));
if((speed < 0 && left > newLeft) || (speed > 0 && left < newLeft)){
$('.pic-list').css('left', (left + speed) + 'px');
setTimeout(go,interval);
}else{
flag = false;
if( newLeft > -1170){
newLeft = picMaxWidth;
}else if (newLeft < picMaxWidth ) {
newLeft = -1170;
}
$('.pic-list').css('left',newLeft + 'px');
}
}
go();
}
play();
});
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 12款經(jīng)典的白富美型—jquery圖片輪播插件—前端開(kāi)發(fā)必備
- 原生js和jquery實(shí)現(xiàn)圖片輪播特效
- jQuery圖片輪播的具體實(shí)現(xiàn)
- Jquery代碼實(shí)現(xiàn)圖片輪播效果(一)
- 基于JQuery的實(shí)現(xiàn)圖片輪播效果(焦點(diǎn)圖)
- 原生js和jquery實(shí)現(xiàn)圖片輪播淡入淡出效果
- 基于jquery的圖片輪播 tab切換組件
- jQuery插件slicebox實(shí)現(xiàn)3D動(dòng)畫圖片輪播切換特效
- jQuery手動(dòng)點(diǎn)擊實(shí)現(xiàn)圖片輪播特效
- 基于jQuery實(shí)現(xiàn)左右圖片輪播(原理通用)
相關(guān)文章
jquery.messager.js插件導(dǎo)致頁(yè)面抖動(dòng)的解決方法
這盤文章介紹了jquery.messager.js插件導(dǎo)致頁(yè)面抖動(dòng)的解決方法,有需要的朋友可以參考一下2013-07-07
ajax與json 獲取數(shù)據(jù)并在前臺(tái)使用簡(jiǎn)單實(shí)例
這篇文章主要介紹了ajax與json 獲取數(shù)據(jù)并在前臺(tái)使用簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-01-01
jQuery的顯示和隱藏方法與css隱藏的樣式對(duì)比
display:none和visible:hidden都能把網(wǎng)頁(yè)上某個(gè)元素隱藏起來(lái),而jQuery的顯示和隱藏又有哪些方法,在本文將為大家詳細(xì)介紹下,感興趣的朋友不要錯(cuò)過(guò)2013-10-10
jquery.validate 自定義驗(yàn)證方法及validate相關(guān)參數(shù)
jquery.validate是一個(gè)基于jquery的非常優(yōu)秀的驗(yàn)證框架,我們可以通過(guò)它迅速驗(yàn)證一些常見(jiàn)的輸入,并且可以自己擴(kuò)充自己的驗(yàn)證方法,而且對(duì)國(guó)際化也有非常好的支持,通過(guò)本文給大家介紹jquery.validate 自定義驗(yàn)證方法及validate相關(guān)參數(shù),需要的朋友一起學(xué)習(xí)吧2016-01-01
jQuery根據(jù)用戶電腦是mac還是pc加載對(duì)應(yīng)樣式的方法
這篇文章主要介紹了jQuery根據(jù)用戶電腦是mac還是pc加載對(duì)應(yīng)樣式的方法,涉及jQuery針對(duì)客戶端信息的獲取及樣式的調(diào)用技巧,需要的朋友可以參考下2015-06-06
淺談jquery fullpage 插件增加頭部和版權(quán)的方法
下面小編就為大家分享一篇淺談jquery fullpage 插件增加頭部和版權(quán)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看2018-03-03
jQuery EasyUI API 中文文檔 - TimeSpinner時(shí)間微調(diào)器
jQuery EasyUI API 中文文檔 - TimeSpinner時(shí)間微調(diào)器介紹,需要的朋友可以參考下。2011-10-10
jQuery插件學(xué)習(xí)教程之SlidesJs輪播+Validation驗(yàn)證
這篇文章主要介紹了jQuery插件學(xué)習(xí)教程之SlidesJs輪播+Validation驗(yàn)證的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
jQuery對(duì)話框插件ArtDialog在雙擊遮罩層時(shí)出現(xiàn)關(guān)閉現(xiàn)象的解決方法
這篇文章主要介紹了jQuery對(duì)話框插件ArtDialog在雙擊遮罩層時(shí)出現(xiàn)關(guān)閉現(xiàn)象的解決方法,涉及針對(duì)插件源碼的修改,需要的朋友可以參考下2016-08-08

