固定懸浮層不觸發(fā)底下頁面滑動效果

前端入坑紀(jì) 44

如題舰讹,取名不易,請原諒這一長條題名闪朱!這是個不大不小的效果月匣,原先的處理是在懸浮層上滑動時,不觸發(fā)下面的body移動奋姿。
小伙伴反應(yīng)不支持ios锄开,現(xiàn)在更新下另一種方式。原理是當(dāng)浮動層打開時称诗,禁止滑動觸摸的默認(rèn)事件萍悴,然后在浮動層內(nèi)時,用js代碼變動scrollTop來模擬滑動效果寓免。

好癣诱,入正題!

OK袜香,first things first撕予! github項目地址

截圖
HTML 結(jié)構(gòu)
    <div class="mfix">
        <a href="javascript:;">關(guān)閉</a>
        <article>
            <p>節(jié)選自《三體》 叛亂</p>
            <p>《三體 》三部曲(又名“地球往事“三部曲)是劉慈欣撰寫的史詩級巨作,是一部非常典型的硬科幻作品蜈首,堪稱目前為止中國當(dāng)代最杰出的科幻小說实抡。這部作品講述了地球文明在宇宙中的興衰歷程欠母,書中對人類歷史、物理學(xué)吆寨、天文學(xué)艺蝴、社會學(xué)、哲學(xué)鸟废、宗教都有涉及猜敢,從科幻的角度對人性進行了深入探討,格局宏大盒延,立意高遠缩擂,出版后備受讀者與媒體的贊譽,被普遍認(rèn)為是中國科幻文學(xué)的里程碑之作添寺,吸引和造就了無數(shù)科幻迷胯盯,也將中國科幻推上了世界的高度。2014年11月计露,由美國著名華裔科幻作家劉宇昆(Ken Liu)所翻譯該系列作品的第一部《三體》的英文版在美國上市博脑,反響熱烈,并于2015年2月20日獲得美國科幻奇幻協(xié)會“星云獎”提名票罐。第二部《The
                Dark Forest》于2015年7月15號上市叉趣,翻譯者為Joel Martinsen。2015年8月23日该押,《三體》獲得雨果獎最佳長篇小說獎疗杉。[1]</p>
        </article>


    </div>
    <div class="main">
        <a href="javascript:;">開啟</a>
        <p>葉文潔話音剛落,轟然幾聲巨響蚕礼,飯廳的兩扇大門同時被撞開烟具,一群端沖鋒槍的士兵沖了進來。汪淼注意到他們不是武警而是正規(guī)軍奠蹬,他們幾乎無聲地貼墻而行朝聋,很快在三體叛軍周圍形成了一個包圍圈。史強最后走了進來囤躁,皮夾克敞著懷冀痕,手里握著槍管,槍柄像一把榔頭似的露出來割以。他大大咧咧地四下看看金度。突然沖向前去,倒握著槍的手一掄严沥,響起了金屬砸在頭骨上的悶響猜极,一名三體戰(zhàn)士倒了下去,沒來得及抽出的手槍捧出老遠消玄。幾名士兵沖天鳴槍跟伏,天花板上落下一片塵土丢胚。有人拉起汪淼,飛快地跑出了三體叛軍的人群受扳,站到一排士兵后面携龟。</p>
        <p>“武器都丟桌子上!誰再炸刺勘高,穿了丫的峡蟋!”史強指指身后的一排沖鋒槍說:“知道各位都是不要命的,我們也是沖不要命來的华望!我可把話擱這兒了:普通的警務(wù)和法律禁區(qū)蕊蝗,對你們已經(jīng)不適用,甚至人類的戰(zhàn)爭法則對你們也不適用了赖舟!既然你們已經(jīng)與全人類為敵蓬戚,咱們大家也都沒什么可忌諱的”鲎ィ”</p>
        <p>三體叛軍的人群中有一陣騷動子漩,但并沒有大的驚慌。葉文潔不動聲色石洗。有三個人突然沖出人群幢泼,其中包括扭斷潘寒脖子的那個美麗女孩兒,他們沖向那座活動的三體藝術(shù)品劲腿,一個人抓住了顆翻飛的金屬球旭绒,緊緊托在胸前。</p>
        <p>美麗女孩雙手托起晶亮的金屬球焦人,讓人聯(lián)想到身材苗條的藝術(shù)體操運動員。她又露出那動人的笑重父,用悅耳的聲音說:“各位警官花椭,我們手里拿著的是三枚原子彈,每枚當(dāng)量一千五百噸級房午,不算大矿辽,我們喜歡小玩藝兒,這是起爆開關(guān)郭厌〈螅”</p>


    </div>

兩個a用來開啟和關(guān)閉 懸浮層,懸浮層用fixed定位

CSS 結(jié)構(gòu)
        body {
            padding: 0;
            margin: 0;
        }
        
        .main {
            background-color: #efefef;
            line-height: 1.6;
            padding: 1rem
        }
        
        .main a {
            position: fixed;
            z-index: 1;
            padding: 0 .5rem;
            text-decoration: none;
            background-color: rgba(138, 150, 156, 0.87);
            color: #fff
        }
        article {
            height: 100%;
            overflow-y: auto
        }
        .mfix {
            display: none;
            position: fixed;
            text-align: justify;
            padding: 1rem;
            line-height: 1.6rem;
            z-index: 3;
            top: 1rem;
            font-size: 15px;
            bottom: 1rem;
            right: 1rem;
            left: 1rem;
            background-color: rgba(126, 202, 247, 0.87);
        }
        
        .mfix a {
            display: block;
            height: 1.6rem;
            width: 3rem;
            top: 3px;
            right: 3px;
            line-height: 1.6rem;
            text-align: center;
            text-decoration: none;
            font-size: 12px;
            bottom: 1rem;
            border: 1px solid #fff;
            border-radius: 3px;
            position: absolute;
            color: #ffffff
        }
JavaScript 結(jié)構(gòu)
        window.onload = init()

        function init() {
            var fix = document.querySelector(".mfix"),
                main = document.querySelector(".main"),
                body = document.querySelector("body"),
                articleObj = fix.getElementsByTagName("article")[0], // 獲取article元素
                hetVal = mnm = 0,
                aOn = document.querySelector(".main a"),
                aOff = document.querySelector(".mfix a");


            // 禁止默認(rèn)事件觸發(fā)
            function unableTouchmove(evt) {
                evt.preventDefault();
            }

            aOn.addEventListener("click", function(e) {
                fix.style.display = "block";
                // 禁止body的默認(rèn)滑動事件觸發(fā)
                body.addEventListener("touchmove", unableTouchmove, {
                    passive: false
                })
               //  獲取浮動層的觸摸開始時的scrollTop和相對視屏的clientX
                fix.addEventListener("touchstart", function(evt) {
                    startY = evt.touches[0].clientY
                    hetVal = articleObj.scrollTop;
                    console.log(hetVal);
                })

                //  浮動層滑動時折柠,計算滑動的差值宾娜,變更artcle的scrollTop
                fix.addEventListener("touchmove", function(evt) {
                    mnm = evt.touches[0].clientY - startY;
                    articleObj.scrollTop = hetVal - mnm; 
                    console.log(mnm);
                })


            });

             //  關(guān)閉浮動層時,對應(yīng)的操作
            aOff.addEventListener("click", function(e) {
                fix.style.display = "none";
                body.removeEventListener("touchmove", unableTouchmove)
            });

        }

js就是按照以上思路來實現(xiàn)效果的扇售,現(xiàn)在ios和Android都可以支持了前塔。相對原先的方法嚣艇,目前這個相對來說代碼有點復(fù)雜。

好了华弓,到此食零,本文告一段落!感謝您的閱讀寂屏!祝您和您的家人身體健康贰谣,闔家幸福!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末迁霎,一起剝皮案震驚了整個濱河市欧引,隨后出現(xiàn)的幾起案子憋肖,更是在濱河造成了極大的恐慌膊升,老刑警劉巖评肆,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機祝拯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門畜晰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嚣州。 經(jīng)常有香客問我鲫售,道長,這世上最難降的妖魔是什么该肴? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任龟虎,我火速辦了婚禮,結(jié)果婚禮上沙庐,老公的妹妹穿的比我還像新娘。我一直安慰自己佳吞,他們只是感情好拱雏,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著底扳,像睡著了一般铸抑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上衷模,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天鹊汛,我揣著相機與錄音蒲赂,去河邊找鬼。 笑死刁憋,一個胖子當(dāng)著我的面吹牛滥嘴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播至耻,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼若皱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尘颓?” 一聲冷哼從身側(cè)響起走触,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎疤苹,沒想到半個月后互广,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡卧土,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年惫皱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夸溶。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡逸吵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缝裁,到底是詐尸還是另有隱情扫皱,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布捷绑,位于F島的核電站韩脑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏粹污。R本人自食惡果不足惜段多,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望壮吩。 院中可真熱鬧进苍,春花似錦、人聲如沸鸭叙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沈贝。三九已至杠人,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嗡善。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工辑莫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人罩引。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓各吨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蜒程。 傳聞我的和親對象是個殘疾皇子绅你,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,167評論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件昭躺、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,105評論 4 62
  • 愛是教育孩子的基礎(chǔ)忌锯。 愛的語言之一身體的接觸 愛的語言之二肯定的言辭 愛的語言之三精心的時刻 愛的語言之四接受禮物...
    Shellyrain老師專欄閱讀 221評論 0 0
  • 現(xiàn)在的我們的卻衣食無憂,花著父母的血汗錢领炫,好像自己不努力也沒關(guān)系偶垮,然而以后呢?少壯不努力帝洪,老大徒傷悲似舵。不努力的你,...
    bye子衿閱讀 154評論 0 0
  • 1. 多變量線性回歸(Linear Regression with Multiple Variables) 也稱為...
    lan_ha閱讀 5,586評論 0 8