Js利用滾輪和運動寫的滾屏

效果見下圖

1213.gif

代碼見下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自己寫的純JS滾屏</title>
</head>
<style>
    *{margin:0px;padding:0px;}
    body{overflow: hidden;}
    #content div{text-align:center;line-height:500px;font-size:40px;color:white;}
    #content{position:absolute;left:0px;top:0px;}
    #content div:nth-child(1){background:red;}
    #content div:nth-child(2){background:yellow;}
    #content div:nth-child(3){background:green;}
    #content div:nth-child(4){background:pink;}
    #content div:nth-child(5){background:brown;}
</style>
<body>
<div id="content">
    <div>鼠標滾輪滾動屏幕就有驚喜</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
</div>
</body>
<script>
 gunping(document.getElementById("content"));
    function gunping(obj){
        //第一步初始化
        var width = document.documentElement.clientWidth||document.body.clientWidth;   //獲取到寬度
        var height = document.documentElement.clientHeight||document.body.clientHeight;   //獲取到高度
        var length = obj.children.length;  //獲取到個數(shù)
        //設置每個DIV的寬度和高度
        for(var i=0;i<length;i++)
        {
            obj.children[i].style["width"] = width+"px";
            obj.children[i].style["height"] = height+"px";
        }
        //寫好運動函數(shù)
        function getStyle(obj,attr){
            return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr];
        }
        function move(obj,attr,step,target,endfn)
        {
           step = target>parseInt(getStyle(obj,attr))?step:-step;
            clearInterval(obj.move);
            obj.move = setInterval(function(){
                var speed = parseInt(getStyle(obj,attr))+step;
                if(speed>target&&step>0||speed<target&&step<0)
                {
                    speed = target;
                }
                obj.style[attr] = speed+"px";
                if(speed ==target)
                {
                    clearInterval(obj.move);
                    endfn&&endfn();
                }
            },100)
        }
        //運動函數(shù)結(jié)束
        //mousewheel滾動插件

        function mousewheel(obj,downfn,upfn)
        {

                obj.onmousewheel = fn;
                if (obj.addEventListener) {
                    obj.addEventListener('DOMMouseScroll', fn, false);
                }
            function fn(ev) {
                    var ev = ev || event;
                    var b = true;
                    if (ev.wheelDelta) {
                        b = ev.wheelDelta > 0 ? true : false;
                    } else {
                        b = ev.detail < 0 ? true : false;
                    }
                    if(b) {
                        upfn&&upfn();

                    } else {
                        downfn&&downfn();
                    }
                    if (ev.preventDefault) {
                        ev.preventDefault();
                    }
                    return false;

            }
        }
        //mousewheel滾動插件結(jié)束
        var Pindex = 0 ;
        var flag = true;
        function moveDown(){
             if(flag)
             {
                 flag = false;
                 ++Pindex;
                 if(Pindex==length)
                 {
                     Pindex = length-1 ;
                     flag = true;
                     window.alert(Pindex);
                     return;
                 }
                 move(document.getElementById("content"),"top",500,-Pindex*height,function(){
                     flag = true;
                 });
             }
        }
        function moveUp(){
            if(flag)
            {
                flag = false;
                --Pindex;
                if(Pindex==-1)
                {
                    window.alert("這個是第一屏幕");
                    Pindex=0;
                    flag = true;
                    return;
                }
                move(document.getElementById("content"),"top",500,-Pindex*height,function(){flag = true;});
            }

        }
        mousewheel(document,moveDown,moveUp);
 }
</script>
</html>

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市秽荤,隨后出現(xiàn)的幾起案子窗轩,更是在濱河造成了極大的恐慌,老刑警劉巖伊诵,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡磁奖,警方通過查閱死者的電腦和手機狐援,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門钢坦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人啥酱,你說我怎么就攤上這事爹凹。” “怎么了镶殷?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵禾酱,是天一觀的道長。 經(jīng)常有香客問我,道長颤陶,這世上最難降的妖魔是什么颗管? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮滓走,結(jié)果婚禮上垦江,老公的妹妹穿的比我還像新娘。我一直安慰自己搅方,他們只是感情好比吭,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著姨涡,像睡著了一般衩藤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涛漂,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天慷彤,我揣著相機與錄音,去河邊找鬼怖喻。 笑死底哗,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的锚沸。 我是一名探鬼主播跋选,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼哗蜈!你這毒婦竟也來了前标?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤距潘,失蹤者是張志新(化名)和其女友劉穎炼列,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體音比,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡俭尖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了洞翩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稽犁。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖骚亿,靈堂內(nèi)的尸體忽然破棺而出已亥,到底是詐尸還是另有隱情,我是刑警寧澤来屠,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布虑椎,位于F島的核電站震鹉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏捆姜。R本人自食惡果不足惜传趾,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望娇未。 院中可真熱鬧墨缘,春花似錦星虹、人聲如沸零抬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽平夜。三九已至,卻和暖如春卸亮,著一層夾襖步出監(jiān)牢的瞬間忽妒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工兼贸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留段直,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓溶诞,卻偏偏與公主長得像鸯檬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子螺垢,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,750評論 25 707
  • 記得前段時間你說你不考研究生喧务,經(jīng)過高三后你不喜歡學習了。我其實當時特別想和你聊聊這個枉圃,但怕傷了我們之間的感情...
    糖衣木瓜閱讀 305評論 1 0
  • 文//愛上時光的貓 第64天 在人生的路上,不斷地發(fā)現(xiàn)并尋找更好的自己返劲。 當你看到這個標題的時候赁酝,也許...
    木棉紀閱讀 1,109評論 1 50
  • 一周的時間,輕輕的從我們身邊溜走了旭等,來到了艷陽高照的新一周酌呆。當經(jīng)過了一周之后,回想著這一周所經(jīng)歷的事情搔耕,想來想去隙袁,...
    柏家姓閱讀 244評論 0 0
  • 到底什么才是旅行的意義痰娱?討論良久,發(fā)覺最后的答案卻是“沒有答案”菩收。 16:55梨睁,HK Express UO1558...
    那一只蟬閱讀 3,279評論 0 8