国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

全屏滾動封裝(PC端)

siberiawolf / 1243人閱讀

摘要:使用說明函數調用參數說明大盒子標簽名大盒子名大盒子類名側導航每層盒子標簽名側導航每層盒子名側導航每層盒子類名任選一個傳入兼容性兼容火狐及以上。如果想兼容最好傳或者標簽名類名沒做處理或者可以自己再處理一下。這里寫上面封裝的函數

使用說明
函數調用 new FullScreenScroll(obj)
obj 參數說明:
{
outerTag: "大盒子標簽名(String)",
outerId: "大盒子id名(String)",
outerClass: "大盒子類名(String)",
tipTag: "側導航每層盒子標簽名(String)",
tipId: "側導航每層盒子id名(String)",
tipClass: "側導航每層盒子類名(String)"
}
Tag、Id、Class任選一個傳入
兼容性
兼容 Google、火狐、IE7及以上。
如果想兼容IE最好傳id或者標簽名 類名沒做處理 或者可以自己再處理一下。
js代碼如下
function FullScreenScroll(obj){
    // 外層盒子
    if(obj.outerTag){
        this.ul = document.getElementsByTagName(obj.outerTag)[0];
    }else if(obj.outerId){
        this.ul = document.getElementById(obj.outerId);
    }else{
        this.ul = document.querySelector("."+obj.outerClass);
    }
    // 內層每層盒子
    this.ulli = this.ul.children;
    // 側導航每層盒子
    if(obj.tipTag){
        this.ol = document.getElementsByTagName(obj.tipTag)[0];
    }else if(obj.tipId){
        this.ol = document.getElementById(obj.tipId);
    }else{
        this.ol = document.querySelector("."+obj.tipClass);
    }
    this.olli = this.ol.children;
    // 定時器
    this.timer = null;
    // 控制滾動的開關 防止滑動過快
    this.flag = true;
    // 獲取卷去的高度 兼容寫法
    this.docTop = document.documentElement.scrollTop||document.body.scrollTop;
    // 規定盒子的初始位置的下標
    this.num = Math.round(this.docTop/this.ulli[0].offsetHeight);
    // 初始化元素信息
    this.eleInit()
    // 初始化函數
    this.init()
    var _this = this
    this.addEvent(window,"resize",function(){
        for(var i=0;i<_this.ulli.length;i++){
            _this.ulli[i].style.height = document.documentElement.clientHeight + "px";
        }
    })
}
// 初始化元素信息
FullScreenScroll.prototype.eleInit = function(){
    this.ul.style.height = document.documentElement.clientHeight*this.ulli.length + "px";
}
// 初始化函數 
FullScreenScroll.prototype.init = function(){
    // 給每個側導航添加點擊事件
    for(var i=0;i0){
                _this.num--;
            }else{
                _this.num=0
            }
            var target = _this.num*_this.ulli[0].offsetHeight
            _this.move(target)
        }
    },function(){
        // 向下滾動處理函數
        if(_this.flag){
            _this.flag = false;
            clearInterval(_this.timer)
        if(_this.num<_this.ulli.length-1){
            _this.num++;
        }else{
            _this.num=_this.ulli.length-1;
        }
        var target = _this.num*_this.ulli[0].offsetHeight;
        _this.move(target)
        }
    })
}
// 每屏運動的函數 target 滾動結束位置
FullScreenScroll.prototype.move = function(target){
    var _this = this;
    this.timer = setInterval(function(){
        // 滾動起點
        // var leader = document.documentElement.scrollTop||document.body.scrollTop;
        var leader = _this.ul.offsetTop;
        // 步長 距離/n
        var step = (-target-leader)/10;
        // 當步長過小時 根據向上運動(step<0)或向下運動(step>0) 即 target-leader 大于0或小于0 向上取整或向下取整控制步長,否則步長一直減小,不會到達終點。
        step = step>0?Math.ceil(step):Math.floor(step);
        // 判斷是否到達終點
        // 會有 target-leader 不夠一個步長的情況 這個時候會發生抖動
        if(Math.abs(-target-leader)0){
            upfn();
        }else{
            downfn();
        }
    }
}
// 監聽事件兼容寫法 obj 操作對象 type 事件類型 fn 回調函數
FullScreenScroll.prototype.addEvent = function(obj,type,fn){
    if(document.addEventListener){
        obj.addEventListener(type,fn,false);
    }else{
        obj.attachEvent("on"+type,fn);
    }
}
// 調用
new FullScreenScroll({
    outerTag:"ul",
    tipTag:"ol"
})
HTML、CSS代碼
當然啦! html和css就需要自己寫了。
這里有一個簡單的丑陋的dome。



    
    Document
    


    
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104804.html

相關文章

  • 用 ES6 寫全屏滾動插件

    摘要:這篇文章將介紹如何使用原生主要使用語法實現全屏滾動插件,兼容手機觸屏,觸摸板優化,支持自定義頁面動畫,壓縮后文件只有。 這篇文章將介紹如何使用原生 JS (主要使用 ES6 語法)實現全屏滾動插件,兼容 IE 10+、手機觸屏,Mac 觸摸板優化,支持自定義頁面動畫,壓縮后 gzip 文件只有 2.15KB。完整源碼在這 pure-full-page,點這查看 demo。 1)前面的話...

    liuchengxu 評論0 收藏0
  • AlloyTouch全屏滾動插件發布--30秒搞定順滑H5頁

    原文鏈接:https://github.com/AlloyTeam/AlloyTouch/wiki/AlloyTouch-FullPage-Plugin 先驗貨 showImg(https://segmentfault.com/img/remote/1460000007885626?w=280&h=280); 插件代碼可以在這里找到。 注意,雖然是掃碼體驗,但是AlloyTouch.FullPag...

    _ivan 評論0 收藏0
  • 移動布局與適配

    摘要:實戰之微信錢包騰訊服務界面網格布局是讓開發人員設計一個網格并將內容放在這些網格內。對于移動端適配,不同的公司不同的團隊有不同的解決方案。柵格系統用于處理頁面多終端適配的問題。 grid實戰之微信錢包 騰訊服務界面 CSS3網格布局是讓開發人員設計一個網格并將內容放在這些網格內。而不是使用浮動制作一個網格,實際上是你將一個元素聲明為一個網格容器,并把元素內容置于網格中。 移動端頁面適配—...

    Clect 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<