jquery+css實(shí)現(xiàn)簡單的圖片輪播效果
開發(fā)過程中需要用到圖片輪播的插件,在網(wǎng)上找了幾個插件之后還是決定自己碼一個,比較簡潔的功能,以后說不定還會有用。
ps:
功能比較簡單,整個框并不能根據(jù)圖片的大小自動調(diào)節(jié),這里所用的圖片是1170*500的,如果需要改成其他大小的圖片,自行修改.pic-list下img的寬度。
.pic-list中的寬度為整個橫幅的寬度,如果需要輪播的圖片數(shù)量很多,.pic-list的寬度應(yīng)大于數(shù)量*單張寬度,
html
<div class="banner"> <!--第一張圖片為最后一張,用來做輪播連接使用,所以一開始顯示的第一章,應(yīng)是第二張圖片,這里圖片的寬度為1170px,所以一開始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(); });
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 12款經(jīng)典的白富美型—jquery圖片輪播插件—前端開發(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動畫圖片輪播切換特效
- jQuery手動點(diǎn)擊實(shí)現(xiàn)圖片輪播特效
- 基于jQuery實(shí)現(xiàn)左右圖片輪播(原理通用)
相關(guān)文章
jquery動態(tài)賦值id與動態(tài)取id方法示例
這篇文章主要給大家介紹了關(guān)于jquery動態(tài)賦值id與動態(tài)取id的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08jQuery EasyUI API 中文文檔 - Tree樹使用介紹
jQuery EasyUI API 中文文檔 - Tree樹使用介紹,需要的朋友可以參考下。2011-11-11JQuery+CSS實(shí)現(xiàn)圖片上放置按鈕的方法
這篇文章主要介紹了JQuery+CSS實(shí)現(xiàn)圖片上放置按鈕的方法,涉及jQuery鼠標(biāo)事件及頁面樣式的相關(guān)技巧,需要的朋友可以參考下2015-05-05一個有意思的鼠標(biāo)點(diǎn)擊文字特效jquery代碼
這篇文章主要介紹了一個有意思的鼠標(biāo)點(diǎn)擊文字特效jquery代碼,需要的朋友可以參考下2017-09-09基于jQuery Ajax實(shí)現(xiàn)下拉框無刷新聯(lián)動
這篇文章主要為大家詳細(xì)介紹了基于jQuery Ajax實(shí)現(xiàn)下拉框無刷新聯(lián)動,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12JQuery實(shí)現(xiàn)電梯導(dǎo)航效果
這篇文章主要為大家詳細(xì)介紹了JQuery實(shí)現(xiàn)電梯導(dǎo)航效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07jQueryUI 拖放排序遇到滾動條時有可能無法執(zhí)行排序的小bug及解決方案
前些日子不是在做使用Jquery-UI實(shí)現(xiàn)一次拖拽多個選中的元素操作嘛,在持續(xù)完善這個組件時遇到了一個關(guān)于拖放排序的bug。今天就著圖片和代碼重現(xiàn)一下,也順便告訴大家如何解決這個問題2016-12-12