天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

基于jQuery的可以控制左右滾動及自動滾動效果的代碼

分享一個控制左右滾動及自動滾動的樣例, 昨晚花了兩個多小時, 忍受著悍蚊的叮咬, 汗水的侵襲, 一行行的敲出來的血汗代碼. 哈哈.
封裝了兩種模式: 點擊滾動版本DEMO 自動滾動版本DEMO,源碼中有詳細注釋.
思路:
點擊滾動模式下,是為點擊(向前/向后/數字)添加click事件,通過控制展示區塊left值實現切換.
1.向前(左):當在第一個版面時,滾動到最后一個頁面,否則,累加left值,向前滾動;
2.向后(右):當在最后一個版面時,滾動到第一個頁面,否則,累減left值,向后滾動;
3.數字點擊:利用index(…)獲取當前點擊在數字列表中的索引值, 然后索引值為倍數為外圍寬度負值.即可達到切換.
核心代碼:
復制代碼 代碼如下:
//@Mr.Think***向前滾動
$pre.click(function(){
if (!$showbox.is(':animated')) { //判斷展示區是否動畫
if ($cur == 1) { //在第一個版面時,再向前滾動到最后一個版面
$showbox.animate({
left: '-=' + $w * ($pages - 1)
}, 500); //改變left值,切換顯示版面,500(ms)為滾動時間,下同
$cur = $pages; //初始化版面為最后一個版面
}
else {
$showbox.animate({
left: '+=' + $w
}, 500); //改變left值,切換顯示版面
$cur--; //版面累減
}
$num.eq($cur - 1).addClass('numcur').siblings().removeClass('numcur'); //為對應的版面數字加上高亮樣式,并移除同級元素的高亮樣式
}
});
//@Mr.Think***向后滾動
$next.click(function(){
if (!$showbox.is(':animated')) { //判斷展示區是否動畫
if ($cur == $pages) { //在最后一個版面時,再向后滾動到第一個版面
$showbox.animate({
left: 0
}, 500); //改變left值,切換顯示版面,500(ms)為滾動時間,下同
$cur = 1; //初始化版面為第一個版面
}
else {
$showbox.animate({
left: '-=' + $w
}, 500);//改變left值,切換顯示版面
$cur++; //版面數累加
}
$num.eq($cur - 1).addClass('numcur').siblings().removeClass('numcur'); //為對應的版面數字加上高亮樣式,并移除同級元素的高亮樣式
}
});
//@Mr.Think***數字點擊事件
$num.click(function(){
if (!$showbox.is(':animated')) { //判斷展示區是否動畫
var $index = $num.index(this); //索引出當前點擊在列表中的位置值
$showbox.animate({
left: '-' + ($w * $index)
}, 500); //改變left值,切換顯示版面,500(ms)為滾動時間
$cur = $index + 1; //初始化版面值,這一句可避免當滾動到第三版時,點擊向后按鈕,出面空白版.index()取值是從0開始的,故加1
$(this).addClass('numcur').siblings().removeClass('numcur'); //為當前點擊加上高亮樣式,并移除同級元素的高亮樣式
}
});

自動滾動模式是基于點擊滾動模式加強的,無非是添加了自動滾動事件,以及當鼠標劃上時清除動畫事件.
這里要說明一點.DEMO演示中,為向前/向后/數字/區域都添加了當鼠標劃過時都添加了清除動畫事件.但是,如果你的頁面中,這幾個需要添加清除動畫事件的都在同一個區域內,完全可以用trigger(…)模擬實現自動滾動.
還有一點,自動滾動中是用setTimeout(“fun”,interval)實現,而不用setInterval(“fun”,interval)實現. 原因在于,setInterval是在間隔時間后重復執行傳入的函數,而setTimeout只在間隔時間后執行一次函數傳入函數,這樣即可避免第二次鼠標劃入停止動畫區域時不能清除動畫.
核心代碼:
復制代碼 代碼如下:
......
//@Mr.Think***調用自動滾動
autoSlide();
......
//@Mr.Think***停止滾動
clearFun($showbox);
clearFun($pre);
clearFun($next);
clearFun($num);
//@Mr.Think***事件劃入時停止自動滾動
function clearFun(elem){
elem.hover(function(){
clearAuto();
}, function(){
autoSlide();
});
}
//@Mr.Think***自動滾動
function autoSlide(){
$next.trigger('click');
$autoFun = setTimeout(autoSlide, 3000);//此處不可使用setInterval,setInterval是重復執行傳入函數,這會引起第二次劃入時停止失效
}
//@Mr.Think***清除自動滾動
function clearAuto(){
clearTimeout($autoFun);
}

更詳細代碼分析,請查看源碼,寫有詳細的注釋.
代碼打包下載

JavaScript技術基于jQuery的可以控制左右滾動及自動滾動效果的代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 日本wwwhdsex69 | 最近免费中文MV在线字幕 | 国产精品JIZZ在线观看A片 | 国产成人精品免费视频大 | 久热在线这里只有精品7 | 大香伊人久久精品一区二区 | 亚洲视频在线观 | 欧美乱妇日本无乱码特黄大片 | 中文字幕日本在线mv视频精品 | 国产免费人视频在线观看免费 | 99久久久无码国产AAA精品 | 全黄h全肉细节文在线观看 全黄H全肉细节文短篇 | 白丝制服被啪到喷水很黄很暴力 | 国产91无毒不卡在线观看 | 久久九九日本韩国精品 | 偷拍 拍自 欧美色区 | 亚洲欧美强伦一区二区另类 | 亚欧成人毛片一区二区三区四区 | 日本一本二本三区免费免费高清 | 日本三区四区免费高清不卡 | 亚洲精品无码一区二区三区四虎 | 国产人妻人伦精品无码.麻豆 | 久久国产伦子伦精品 | 美艳人妻在厨房翘着屁股 | 欧美日韩永久久一区二区三区 | 成人毛片大全 | 亚洲mv在线观看 | 一个人的视频在线观看免费观看 | 蜜柚视频在线观看全集免费观看 | 国产精品99久久久久久AV蜜臀 | 国产一区二区三区四区五在线观看 | 奇米狠狠一区二区三区 | 久久久精品免费视频 | 色吧电影院 | 91精品婷婷国产综合久久8 | 欧美亚洲视频在线二区 | 精品无码久久久久久久久 | 99久久爱re热6在线播放 | 嫩草影院未满十八岁禁止入内 | 日本午夜精品一区二区三区电影 | 在线AV国产传媒18精品免费 |