成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導(dǎo)航首頁 ? 技術(shù)教程 ? 基于jQuery和hwSlider實現(xiàn)內(nèi)容左右滑動切換效果附源碼下載(一)
全站頭部文字 我要出現(xiàn)在這里
基于jQuery和hwSlider實現(xiàn)內(nèi)容左右滑動切換效果附源碼下載(一) 693 2024-02-27   

內(nèi)容滑動切換應(yīng)用非常廣,常見的有幻燈片焦點圖、畫廊切換等。隨著WEB前端技術(shù)的廣泛應(yīng)用,內(nèi)容滑動切換效果占據(jù)著web頁面重要地位,因此本站Helloweba特別給廣大前端愛好者安排了淺顯易懂的內(nèi)容滑動切換效果的開發(fā)教程。

先給大家展示下效果圖,感覺還不錯請參數(shù)實現(xiàn)代碼,具體效果如下所示:

查看圖片

效果展示 源碼下載

本次教程分三個部分:

1、使用jQuery開發(fā)基本的內(nèi)容滑動切換效果,

2、支持移動端觸控自適應(yīng)的內(nèi)容滑動切換效果,

3、封裝內(nèi)容滑動切換效果jQuery插件。

本文講解第一部分,后面兩部分會在接下來的文章中陸續(xù)發(fā)布,敬請關(guān)注。

本文將結(jié)合實例實現(xiàn)內(nèi)容滑動切換的基本效果,包括:

左右箭頭切換

無限無縫滾動

圓點按鈕切換

動畫效果

自動切換

HTML

首先準備HTML結(jié)構(gòu),整個滑動區(qū)域用#hwslider包裹,包括滑塊內(nèi)容,滑塊使用ul li組織內(nèi)容,滑塊內(nèi)容可以是圖片、文字等任意HTML內(nèi)容。#dots即圓點切換導(dǎo)航,由多個小圓點組成,對應(yīng)滑塊數(shù)量,一般位于滑動區(qū)域的下方。.arr則是由兩個左右方向鍵組成。

<div id="hwslider"> 
<ul> 
<li class="active"><a ><img src="http://www.gimoo.net/t/1902/images/s1.jpg" alt="1"></a></li> 
<li><a ><img src="http://www.gimoo.net/t/1902/images/s2.jpg" alt="2"></a></li> 
<li>Helloweba</li> 
</ul> 
<div id="dots"> 
<span data-index="1" class="active"></span> 
<span data-index="2"></span> 
<span data-index="3"></span> 
</div> 
<a href="javascript:;" id="prev" class="arr"><</a> 
<a href="javascript:;" id="next" class="arr">></a> 
</div>

CSS

使用CSS完成滑動區(qū)域各組件的布局,注意其中#hwslider需要設(shè)置position: relative以及寬度和高度,那么滑塊#hwslider ul li設(shè)置position:absolute,默認只顯示.active的滑塊,超出尺寸部分將被隱藏。而圓點導(dǎo)航#dots和箭頭導(dǎo)航.arr都要設(shè)置position: absolute,箭頭導(dǎo)航默認不顯示,當鼠標滑向滑塊區(qū)域時才顯示。再一個要注意的是#dots和.arr的z-index設(shè)置成2,即都應(yīng)該顯示在滑塊上面。您可以修改css樣式以滿足各種需求,請看以下代碼:

#hwslider{width: 600px;height: 320px;margin:40px auto; position: relative; overflow: hidden;} 
#hwslider ul{width: 600px; height: 320px; position: absolute; z-index: 1} 
#hwslider ul li{display:none;position:absolute; left:0; top:0; width: 600px;height: 320px; overflow: hidden;} 
#hwslider ul li.active{display: block;} 
#dots{position: absolute; bottom:20px; left:270px; width: 60px; height: 12px; z-index: 2;} 
#dots span{float: left; width:12px;height: 12px; border: 1px solid #fff; border-radius: 50%; background: #333; margin-right: 8px; cursor: pointer;} 
#dots span.active{background: orangered} 
.arr{display:none;position: absolute; top: 140px; z-index: 2;width: 40px; height: 40px; line-height: 38px; text-align: center;; font-size: 36px; background: rgba(0,0,0,.3); color: #fff; text-decoration: none} 
.arr:hover{background: rgba(0,0,0,.7); text-decoration: none;} 
#hwslider:hover .arr{display: block; text-decoration: none;color: #fff} 
#prev{left: 20px} 
#next{right: 20px}

jQuery

我們使用jQuery來實現(xiàn)滑動切換的各種效果,首先我們引入百度CDN提供的jQuery庫和hwslider.js。

<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script> 
<script src="http://www.gimoo.net/t/1902/js/hwslider.js"></script>

接著我們在hwslider.js中預(yù)先定義變量參數(shù):

$(function(){ 
var slider = $("#hwslider"); 
var dots = $("#dots span"), 
prev = $("#prev"),next = $("#next"); 
var sliderInder = slider.children('ul') 
var hwsliderLi = sliderInder.children('li'); 
var hwsliderSize = hwsliderLi.length; //滑塊的總個數(shù) 
var index = 1; //初始顯示第一個滑塊 
var speed = 400; //滑動速度 
var interval = 3000; //間隔時間 
var autoPlay = false; //是否支持自動滑動 
var clickable = true; //是否已經(jīng)點擊了滑塊在做滑動動畫 
});

以上定義了各種需要的變量,其中clickable用于限制點擊滑塊動畫,因為滑塊滑動過程需要時間完成,如果連續(xù)點擊箭頭的話,正常情況如果不限制點擊,則會在滑動動畫未完成的情況下又進行下一個滑動動畫,這樣可能會導(dǎo)致頁面卡住的情況。

接下來我們來寫移動動畫函數(shù)moveTo()。接受兩個參數(shù),index即要滑動的目標滑塊,dir是滑動方向,有next和prev。我們實現(xiàn)滑動動畫的原理是,當前滑塊向左或向右移動的距離剛好是滑塊的寬度,我們把這個寬度看作可視區(qū),滑動時,當前滑塊會向左或向右移出可視區(qū),而緊接著下一個滑塊從左或從右側(cè)進入可視區(qū)。我們使用jQuery的animate()方法實現(xiàn)動畫效果,兩個滑塊的運動速度speed保持一致,就實現(xiàn)了無縫滾動的效果。另外當滑動完成時,及時變換圓點切換的樣式。

var moveTo = function(index,dir){ 
if(clickable){ 
clickable = false; 
//位移距離 
var offset = slider.width(); 
if(dir == 'prev'){ 
offset = -1*offset; 
} 
//當前滑塊動畫 
sliderInder.children('.active').stop().animate({ 
left: -offset}, 
speed, 
function() { 
$(this).removeClass('active'); 
}); 
//下一個滑塊動畫 
hwsliderLi.eq(index-1).css('left', offset + 'px').addClass('active').stop().animate({ 
left: 0}, 
speed, 
function(){ 
clickable = true; 
}); 
dots.removeClass('active'); 
dots.eq(index-1).addClass('active'); 
}else{ 
return false; 
} 
}

綁定左右箭頭的點擊事件,當點擊箭頭時,判斷當前滑塊是否是第一個滑塊或最后一個滑塊,并重新定義index,從而實現(xiàn)無線滾動效果,然后分別調(diào)用moveTo()函數(shù),實現(xiàn)滑動動畫效果。

next.on('click', function(event) { 
event.preventDefault(); 
if(clickable){ 
if(index >= hwsliderSize){ 
index = 1; 
}else{ 
index += 1; 
} 
moveTo(index,'next'); 
} 
}); 
prev.on('click', function(event) { 
event.preventDefault(); 
if(clickable){ 
if(index == 1){ 
index = hwsliderSize; 
}else{ 
index -= 1; 
} 
moveTo(index,'prev'); 
} 
});

接著,綁定圓點導(dǎo)航的點擊事件,當點擊小圓點時,獲取當前點擊的圓點序號,即點擊的是第幾個圓點,就對應(yīng)的第幾個滑塊,然后調(diào)用moveTo()完成切換動畫。

dots.on('click', function(event) { 
event.preventDefault(); 
if(clickable){ 
var dotIndex = $(this).data('index'); 
if(dotIndex > index){ 
dir = 'next'; 
}else{ 
dir = 'prev'; 
} 
if(dotIndex != index){ 
index = dotIndex; 
moveTo(index, dir); 
} 
} 
});

自動切換,首先我們要定義一個定時器,每隔一定的時間setInterval執(zhí)行play(),play()每執(zhí)行一次就會變化index參數(shù),調(diào)用moveTo實現(xiàn)切換效果。最后當鼠標滑上滑塊時清除定時器timer,鼠標移開滑塊時又重新啟動定時器自動切換。

if(autoPlay){ 
var timer; 
var play = function(){ 
index++; 
if(index > hwsliderSize){ 
index = 1; 
} 
moveTo(index, 'next'); 
} 
timer = setInterval(play, interval); //設(shè)置定時器 
//鼠標滑上時暫停 
slider.hover(function() { 
timer = clearInterval(timer); 
}, function() { 
timer = setInterval(play, interval); 
}); 
};

最后將代碼整理后,你將可以看到一個基本的滑動切換效果,你也可以下載源碼測試。

為了讓我們的滑動切換效果應(yīng)用到移動端,我們在下一篇文章中會具體介紹移動端的自適應(yīng)屏幕以及手勢滑動滑塊效果,敬請關(guān)注。

以上所述是小編給大家介紹的基于jQuery和hwSlider實現(xiàn)內(nèi)容左右滑動切換效果附源碼下載(一)的相關(guān)知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對綠夏網(wǎng)網(wǎng)站的支持!



主站蜘蛛池模板: 假面骑士响鬼| 延边卫视节目表| cctv5+体育节目表| 母亲电影完整版韩国| sarah brightman| 王菲电影| 打美女屁股光屁股视频| 老阿姨在等你免费播放47集电视剧完整| 河南卫视节目预告| 混凝土结构施工质量验收规范gb50204-2015 | 红日歌词完整版| wenxi| 杂牌摄像头软件通用app| 红海行动2| 老阿姨电影电视剧免费| 加入民盟的好处和坏处| 《致青春》电影| 稻森泉| 保镖1983| 电影《盲井》| 七寸照片| 敏感姬| 小数加减法100道题| 护航 电影| 戮神| 极寒之城在线观看高清完整 | 高达w| 自拍在线| 龙的新娘电视剧全集| 圣少女第1集分集剧情| 幼儿歌曲颠倒歌| 乔治桑| 韩国好妈妈| 小数加减法100道题| 林蛟| 张子恩| 黄金太阳2| 乔治桑| 苏小懒| 成人在线播放网站| 王艺嘉|

!!!站長長期在線接!!!

網(wǎng)站、小程序:定制開發(fā)/二次開發(fā)/仿制開發(fā)等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103