jQuery寫百葉窗和和頁面滾動

百葉窗

思路

1.先給每一個li綁定mouseenter(或者mouseover)事件,我們優(yōu)先選用mouseenter件已,因為mouseover具有事件冒泡的特征笋额,而mouseenter沒有,較為方便篷扩。
2.然后當(dāng)你進(jìn)入li的時候通過改變li的left值兄猩。也就是當(dāng)你進(jìn)入當(dāng)前l(fā)i的時候改變前后li的left值,在當(dāng)前l(fā)i之前的里就是[0,60,120,180,240],之后里的值就是[ 0,560,620,680,740].

下面是html+css:
<style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        .shutter{
            width: 800px;
            height: 300px;
            border: 1px solid #000;
            margin: 100px auto;
            position: relative;
            overflow: hidden;
        }
        .shutter ul{
            list-style: none;
        }
        .shutter ul li{
            position: absolute;
            top: 0;
        }
        .shutter ul li.no0{left: 0;}
        .shutter ul li.no1{left: 160px;}
        .shutter ul li.no2{left: 320px;}
        .shutter ul li.no3{left: 480px;}
        .shutter ul li.no4{left: 640px;}
    </style>
</head>
<body>
    <div class="shutter">
        <ul>
            <li class="no0">
                <a href="">
                    ![](images/0.jpg)
                </a>
            </li>
            <li class="no1">
                <a href="">
                    ![](images/1.jpg)
                </a>
            </li>
            <li class="no2">
                <a href="">
                    ![](images/2.jpg)
                </a>
            </li>
            <li class="no3">
                <a href="">
                    ![](images/3.jpg)
                </a>
            </li>
            <li class="no4">
                <a href="">
                    ![](images/4.jpg)
                </a>
            </li>
        </ul>
    </div>
jQuery代碼:
//給每個li綁定移開事件mouseleave(不冒泡)
        $("li").mouseleave(function() {
            //函數(shù)截流鉴未,即在當(dāng)前動作完成之前不會進(jìn)入下一動作
            $("li").stop(true);         
            //規(guī)定的每個li的位置
            $(".no0").animate({"left": 0});
            $(".no1").animate({"left": 120});
            $(".no2").animate({"left": 240});
            $(".no3").animate({"left": 360});
            $(".no4").animate({"left": 480});
        })
        //給每個li綁定移入事件
        $("li").mouseenter(function(){
            //函數(shù)截流枢冤,即在當(dāng)前動作完成之前不會進(jìn)入下一動作
            $("li").stop(true);
            //獲取每個i的的下標(biāo)值
            var i = $(this).index();
            //當(dāng)前位置的前后li的left值
            var left = [0,60,120,180,240]
            var right = [0,560,620,680,740]
            //遍歷所有的li
            $("li").each(function(j){
                //判斷 如果當(dāng)前l(fā)i的index值(i)>= j時
                if (j <= i){
                    //那么當(dāng)前l(fā)i的左邊就是left[j]
                  $(this).animate({"left":left[j]})
              }
                else{
                    ////否則當(dāng)前l(fā)i的右邊就是right[j]
                    $(this).animate({"left":right[j]})
                }
            })
            
        })

頁面滾動

思路:

1.先引入插件<script type="text/javascript" src="js/jquery.mousewheel.js" ></script>因為jQuery中沒有滾動事件。
2.然后我們給document綁定滾輪事件mousewheel()铜秆,在得到e.deltaY的值淹真。當(dāng)值為負(fù)時,往下滾動连茧,反之核蘸,向上滾動。
3.然后在更新當(dāng)前頁面的高度啸驯。

代碼如下:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
        
            body, html {
                width: 100%;
                height: 100%;
                /* 給外層的body 添加隱藏*/
                overflow: hidden;  
            }
        
            #big {
                width: 100%;
                height: 100%;
                position: absolute;
                left: 0;
                top: 0;
            }
            
            .page {
                position: relative;
                width: 100%;
                height: 100%;
                background: green;
            }
            
            .page0 {
                background: green;
            }
            
            .page1 {
                background: yellow;
            }
            
            .page2 {
                background: greenyellow;
            }
            
            .page3 {
                background: orange;
            }
            
            .page4 {
                background: gold;
            }
        </style>
    </head>
    <body>
        <div id="big">
        <!-- div.page*5  按TAB鍵
            
            page page0  同時將 page 和 page0 作用在 div元素 中
        -->
        <div class="page page0">1</div>
        <div class="page page1">2</div>
        <div class="page page2">3</div>
        <div class="page page3">4</div>
        <div class="page page4">5</div>
</div>
    </body>
</html>
<script type="text/javascript" src="js/jquery-3.2.1.js" ></script>
<!-- jquery 沒有處理滾輪的事件客扎, 借助插件。 插件已經(jīng)處理了不同瀏覽器的兼容問題 -->
<script type="text/javascript" src="js/jquery.mousewheel.js" ></script>
<script>
    var n = 0;
    $(document).mousewheel(function(e){
        //console.log(e.deltaY )
        if ($("#big").is(":animated")) {
            return
        }
        if (e.deltaY > 0) {
            n--;
        } else{
            n++
        }
        //判斷n不能小于零或者大于四罚斗,否者滾輪會滾動到空白位置
        if (n < 0) {
            n = 0
        } 
        if(n > 4){
            n = 4
        }
        //保存body的高度值
        var h = $("body").height();
        //設(shè)置動畫讓最大的盒子big動一個-n * h
        $("#big").animate({"top": -n * h})
    })
    
</script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末徙鱼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子针姿,更是在濱河造成了極大的恐慌袱吆,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搓幌,死亡現(xiàn)場離奇詭異杆故,居然都是意外死亡迅箩,警方通過查閱死者的電腦和手機溉愁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拐揭,你說我怎么就攤上這事撤蟆。” “怎么了堂污?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵家肯,是天一觀的道長。 經(jīng)常有香客問我盟猖,道長讨衣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任式镐,我火速辦了婚禮反镇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘娘汞。我一直安慰自己歹茶,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布你弦。 她就那樣靜靜地躺著惊豺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪禽作。 梳的紋絲不亂的頭發(fā)上尸昧,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機與錄音领迈,去河邊找鬼彻磁。 笑死,一個胖子當(dāng)著我的面吹牛狸捅,可吹牛的內(nèi)容都是我干的衷蜓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尘喝,長吁一口氣:“原來是場噩夢啊……” “哼磁浇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起朽褪,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤置吓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缔赠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衍锚,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年嗤堰,在試婚紗的時候發(fā)現(xiàn)自己被綠了戴质。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖告匠,靈堂內(nèi)的尸體忽然破棺而出戈抄,到底是詐尸還是另有隱情,我是刑警寧澤后专,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布划鸽,位于F島的核電站,受9級特大地震影響戚哎,放射性物質(zhì)發(fā)生泄漏裸诽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一型凳、第九天 我趴在偏房一處隱蔽的房頂上張望崭捍。 院中可真熱鬧,春花似錦啰脚、人聲如沸殷蛇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粒梦。三九已至,卻和暖如春荸实,著一層夾襖步出監(jiān)牢的瞬間匀们,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工准给, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留泄朴,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓露氮,卻偏偏與公主長得像祖灰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子畔规,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容

  • (續(xù)jQuery基礎(chǔ)(1)) 第5章 DOM節(jié)點的復(fù)制與替換 (1)DOM拷貝clone() 克隆節(jié)點是DOM的常...
    凜0_0閱讀 1,338評論 0 8
  • 總結(jié): 鼠標(biāo)事件 1.click與dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r閱讀 1,605評論 2 10
  • 為甚嚒要學(xué)習(xí)jQuery盗冷? 因為JS中有很多痛點: window.onload事件只能出現(xiàn)一次丐枉,如果出現(xiàn)多次,后面...
    magic_pill閱讀 816評論 0 13
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式蓬豁。設(shè)計者無需花費時間糾纏JS復(fù)雜的高級特性玻粪。 1....
    LaBaby_閱讀 1,335評論 0 2
  • 許久不動筆說些什么诗鸭,再拾起筆怕也難逃硬式教育的后遺癥,結(jié)束了眾人各自印象中都最炎熱的暑假对室,初到山大幾個月模燥,若說我...
    好大一個碗喲閱讀 288評論 0 1