欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2010年07月25日 23:38:44   作者:  
迷上jQuery,相對于原生JavaScript,它是如此的美妙.也因此,促使我更加的努力的研習原生JavaScript.
分享一個控制左右滾動及自動滾動的樣例, 昨晚花了兩個多小時, 忍受著悍蚊的叮咬, 汗水的侵襲, 一行行的敲出來的血汗代碼. 哈哈.
封裝了兩種模式: 點擊滾動版本DEMO 自動滾動版本DEMO,源碼中有詳細注釋.
思路:
點擊滾動模式下,是為點擊(向前/向后/數(shù)字)添加click事件,通過控制展示區(qū)塊left值實現(xiàn)切換.
1.向前(左):當在第一個版面時,滾動到最后一個頁面,否則,累加left值,向前滾動;
2.向后(右):當在最后一個版面時,滾動到第一個頁面,否則,累減left值,向后滾動;
3.數(shù)字點擊:利用index(…)獲取當前點擊在數(shù)字列表中的索引值, 然后索引值為倍數(shù)為外圍寬度負值.即可達到切換.
核心代碼:
復(fù)制代碼 代碼如下:

//@Mr.Think***向前滾動
$pre.click(function(){
if (!$showbox.is(':animated')) { //判斷展示區(qū)是否動畫
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'); //為對應(yīng)的版面數(shù)字加上高亮樣式,并移除同級元素的高亮樣式
}
});
//@Mr.Think***向后滾動
$next.click(function(){
if (!$showbox.is(':animated')) { //判斷展示區(qū)是否動畫
if ($cur == $pages) { //在最后一個版面時,再向后滾動到第一個版面
$showbox.animate({
left: 0
}, 500); //改變left值,切換顯示版面,500(ms)為滾動時間,下同
$cur = 1; //初始化版面為第一個版面
}
else {
$showbox.animate({
left: '-=' + $w
}, 500);//改變left值,切換顯示版面
$cur++; //版面數(shù)累加
}
$num.eq($cur - 1).addClass('numcur').siblings().removeClass('numcur'); //為對應(yīng)的版面數(shù)字加上高亮樣式,并移除同級元素的高亮樣式
}
});
//@Mr.Think***數(shù)字點擊事件
$num.click(function(){
if (!$showbox.is(':animated')) { //判斷展示區(qū)是否動畫
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演示中,為向前/向后/數(shù)字/區(qū)域都添加了當鼠標劃過時都添加了清除動畫事件.但是,如果你的頁面中,這幾個需要添加清除動畫事件的都在同一個區(qū)域內(nèi),完全可以用trigger(…)模擬實現(xiàn)自動滾動.
還有一點,自動滾動中是用setTimeout(“fun”,interval)實現(xiàn),而不用setInterval(“fun”,interval)實現(xiàn). 原因在于,setInterval是在間隔時間后重復(fù)執(zhí)行傳入的函數(shù),而setTimeout只在間隔時間后執(zhí)行一次函數(shù)傳入函數(shù),這樣即可避免第二次鼠標劃入停止動畫區(qū)域時不能清除動畫.
核心代碼:
復(fù)制代碼 代碼如下:

......
//@Mr.Think***調(diào)用自動滾動
autoSlide();
......
//@Mr.Think***停止?jié)L動
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是重復(fù)執(zhí)行傳入函數(shù),這會引起第二次劃入時停止失效
}
//@Mr.Think***清除自動滾動
function clearAuto(){
clearTimeout($autoFun);
}

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

相關(guān)文章

  • 基于JQuery實現(xiàn)圖片上傳預(yù)覽與刪除操作

    基于JQuery實現(xiàn)圖片上傳預(yù)覽與刪除操作

    這篇文章主要為大家詳細介紹了基于JQuery實現(xiàn)圖片上傳預(yù)覽與刪除操作的相關(guān)代碼,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 使用jQuery判斷瀏覽器滾動條位置的方法

    使用jQuery判斷瀏覽器滾動條位置的方法

    借助jQuery,我們能夠更加輕松地判斷頁面滾動條(scroll)是上滾還是下滾,且是否滾動到頭部或者底部,這里我們就來看一下使用jQuery判斷瀏覽器滾動條位置的方法
    2016-05-05
  • Jquery操作radio,checkbox,select表單操作實現(xiàn)代碼

    Jquery操作radio,checkbox,select表單操作實現(xiàn)代碼

    Jquery操作radio,checkbox,select表單操作實現(xiàn)代碼,需要用jquery操作表單的朋友可以參考下。
    2010-04-04
  • jQuery中$.ajax()方法的具體使用

    jQuery中$.ajax()方法的具體使用

    本文主要介紹了jQuery中$.ajax()方法的具體使用,$.ajax(url,[settings])通過 HTTP 請求加載遠程數(shù)據(jù),文中通過示例代碼詳細的介紹了$.ajax()的用法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • jquery.post用法關(guān)于type設(shè)置問題補充

    jquery.post用法關(guān)于type設(shè)置問題補充

    當使用ajax獲取data數(shù)據(jù)的時候,直接data.foo就可以得到。而較低版本的jquery就不行比如1.4之前,下面為大家介紹下jquery.post用法關(guān)于type設(shè)置問題
    2014-01-01
  • jQuery中extend()和fn.extend()方法詳解

    jQuery中extend()和fn.extend()方法詳解

    jQuery自定義了jQuery.extend()和jQuery.fn.extend()方法.其中jQuery.extend()方法能夠創(chuàng)建全局函數(shù)或者選擇器,而jQuery.fn.extend()方法能夠創(chuàng)建jQuery對象方法.
    2015-06-06
  • js jquery獲取當前元素的兄弟級 上一個 下一個元素

    js jquery獲取當前元素的兄弟級 上一個 下一個元素

    js獲取方法要比jq的方法麻煩的多,主要是因為FF瀏覽器,因為FF瀏覽器也會把換行當作dom元素,下面跟著小編一起來學習js jquery獲取當前元素的兄弟級 上一個 下一個元素的,需要的朋友一起來學習吧
    2015-09-09
  • jQuery 表單驗證擴展(四)

    jQuery 表單驗證擴展(四)

    周末寫的 jQuery 表單驗證擴展(三) 這篇文章點擊率過低,不知道是文章太失水準還是什么其他原因,這里寫文章只是為了分享一下自己寫代碼的心得,
    2010-10-10
  • 基于jQuery實現(xiàn)Ajax驗證用戶名是否存在實例

    基于jQuery實現(xiàn)Ajax驗證用戶名是否存在實例

    這篇文章主要為大家詳細介紹了基于jQuery實現(xiàn)Ajax驗證用戶名是否存在實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Jquery的基本對象轉(zhuǎn)換和文檔加載用法實例

    Jquery的基本對象轉(zhuǎn)換和文檔加載用法實例

    這篇文章主要介紹了Jquery的基本對象轉(zhuǎn)換和文檔加載用法,實例分析了Jquery的基本對象轉(zhuǎn)換及文檔加載使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02

最新評論