本篇文章為大家展示了使用jQuery怎么自定義一個(gè)輪播圖功能,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
為山南等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及山南網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、山南網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
jquery是一個(gè)簡(jiǎn)潔而快速的JavaScript庫,它具有獨(dú)特的鏈?zhǔn)秸Z法和短小清晰的多功能接口、高效靈活的css選擇器,并且可對(duì)CSS選擇器進(jìn)行擴(kuò)展、擁有便捷的插件擴(kuò)展機(jī)制和豐富的插件,是繼Prototype之后又一個(gè)優(yōu)秀的JavaScript代碼庫,能夠用于簡(jiǎn)化事件處理、HTML文檔遍歷、Ajax交互和動(dòng)畫,以便快速開發(fā)網(wǎng)站。
實(shí)現(xiàn)思路:
1.布局
通過疊羅漢方式將圖片展示區(qū)、上一張下一張點(diǎn)擊區(qū),指示燈展示區(qū)層疊顯示
主畫布wrap層在最低層,其次是圖片展示區(qū),上一張下一張點(diǎn)擊區(qū)覆蓋圖片展示區(qū),
指示燈展示區(qū)覆蓋圖片展示區(qū)。
2.CSS樣式
將wrap層相對(duì)布局,圖片展示區(qū)、上一張下一張點(diǎn)擊區(qū)、指示燈展示區(qū)層設(shè)置為絕對(duì)布局。
wrap層作為包涵體,對(duì)圖片展示區(qū)、上一張下一張點(diǎn)擊區(qū)、指示燈展示區(qū)層進(jìn)行層疊布局。
通過display:flex設(shè)置盒子彈性布局對(duì)指示燈展示區(qū)層進(jìn)行居中排列
通過display:block和dispaly:inline-block講行級(jí)元素轉(zhuǎn)換成塊級(jí)元素
3.js
(1)web界面渲染后,開啟圖片從左向右切換的定時(shí)器
(2)鼠標(biāo)移入輪播器后關(guān)閉定時(shí)器,鼠標(biāo)移除輪播器后,開啟定時(shí)器。
(3).點(diǎn)擊上一張,關(guān)閉定時(shí)器,圖片從右向左移動(dòng)一張,鼠標(biāo)移開上一張,開啟定時(shí)器。
(4).點(diǎn)擊下一張,關(guān)閉定時(shí)器,圖片從坐向右移動(dòng)一張,鼠標(biāo)移開下一張,開啟定時(shí)器。
(5).鼠標(biāo)移入到指示燈,關(guān)閉定時(shí)器,圖片切換到指示燈所指示的位置,鼠標(biāo)移開指示燈,開啟定時(shí)器。
布局圖:
實(shí)現(xiàn)代碼:
shufflingfigure.html:
輪播圖 < >
shufflingfigure.css:
*{ margin: 0; padding: 0; } #wrap{ position: relative; width:600px ; height: 260px; margin: 50px auto; } #wrap .pic{ width: 600px; height: 260px; position: relative; cursor: pointer; } #wrap .pic img{ position:absolute; width:600px ; height: 260px; } #wrap .btn span{ position: absolute; top: 50%; display: block; width: 50px; height: 90px; margin-top: -45px; background: rgba(0,0,0,.5); font-size: 20px; text-align: center; line-height: 90px; /*設(shè)置垂直居中*/ cursor: pointer; } #wrap .btn span.next{ position: absolute; right: 0; } #wrap .lib{ position: absolute; bottom: 10px; left: 50%; margin-left: -65px; display: flex; /*彈性盒子模型*/ flex-direction: row; /*主軸為行*/ justify-content:space-between;/*主軸方向排列方式*/ align-items: center; /*輔軸方向排列方式*/ width:130px ; height: 30px; background: rgba(0,0,0,.5); } #wrap .lib span { display: block; width: 10px; height: 10px; background: #fff; margin: 5px; border-radius: 50%; /*設(shè)置圓角設(shè)置圓形*/ cursor: pointer; } #wrap .lib span.on{ background: red; }
shufflingfigure.js:
/** * Created by Administrator on 2017/4/6. */ window.onload=function () { /**定義*/ /*點(diǎn)擊 下一張按鈕 被點(diǎn)擊的時(shí)候 圖片進(jìn)行切換 小圓點(diǎn)切換*/ var $pic=$(".pic"); /*獲取圖片點(diǎn)擊區(qū)域*/ var $next=$(".next");/*獲取下一張的按鈕*/ var $prev=$(".prev");/*獲取上一張的按鈕*/ var $img=$(".pic img"); /*獲取pic下所有的img*/ var $lib=$(".lib span"); /*獲取所有的小圓點(diǎn)*/ var index=0; //定義當(dāng)前圖片下標(biāo) var length=$img.length; //圖片個(gè)數(shù) //圖片從左向右切換 function changeImage() { index++; index=index%length; $img.eq(index).fadeIn(300).siblings().fadeOut(300); $lib.eq(index).addClass('on').siblings().removeClass('on'); } //圖片從右向左切換 function changeImageRighttoLeft() { index--; index=index<0?length:index; $img.eq(index).fadeIn(300).siblings().fadeOut(300); $lib.eq(index).addClass('on').siblings().removeClass('on'); } //開啟圖片從左向右切換定時(shí)器 var intervalHandle = setInterval(changeImage,2000); /**邏輯*/ //下一張點(diǎn)擊時(shí)圖片向右移動(dòng)一張 $next.click(function () { clearInterval(intervalHandle); changeImage(); }) //下一張移除焦點(diǎn)時(shí)開啟定時(shí)器 $next.hover(function () { },function () { clearInterval(intervalHandle); intervalHandle = setInterval(changeImage,2000); }); //上一張點(diǎn)擊時(shí)圖片向左移動(dòng)一張 $prev.click(function () { clearInterval(intervalHandle); changeImageRighttoLeft(); }) //上一張移除焦點(diǎn)時(shí)開啟定時(shí)器 $prev.hover(function () { },function () { clearInterval(intervalHandle); intervalHandle = setInterval(changeImage,2000); }); $lib.hover(function () {/*移入小圓點(diǎn)上*/ //關(guān)閉圖片切換定時(shí)器 clearInterval(intervalHandle); index=$(this).index(); $img.eq(index).fadeIn(300).siblings().fadeOut(300); $lib.eq(index).addClass('on').siblings().removeClass('on'); },function () { intervalHandle = setInterval(changeImage,2000); }); $pic.hover(function () { clearInterval(intervalHandle); },function () { intervalHandle = setInterval(changeImage,2000); }); //圖片點(diǎn)擊事件 $pic.click(function () { alert("index:"+index); }); }
上述內(nèi)容就是使用jQuery怎么自定義一個(gè)輪播圖功能,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。