亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

Html5導航欄吸頂方案原理與對比實現

2024-09-05 07:23:34
字體:
來源:轉載
供稿:網友

一. 什么是吸頂?

吸頂效果是web開發中一種常見的交互方式,常見的應用場景有導航、搜索框等等。能夠做流量的橫向分發,矚目的吸頂效果和橫滑切tab的手勢,能夠讓用戶快速發現更多商品。

市場上享有H5導航欄吸頂效果展示

1.淘寶聚劃算吸頂演示:

2.淘寶百億補貼吸頂演示:

 

二. 常見的tabbar吸頂方案

  • 基于position粘性定位的吸頂方案
  • 基于JS監聽scroll事件的吸頂方案

三. 方案的原理與對比

1. position粘性方案的實現與詳解

1.1. 知識詳解

position使我們經常使用的CSS屬性,能夠在布局和解決一些特定問題時候帶來很好的解決方案,例如,卡片的各種icon和標。position粘性定位也是實現吸頂的方案之一,先看看position具有哪些屬性值及相關的含義:

取值 相關解釋
static 該關鍵字指定元素使用正常的布局行為,即元素在文檔常規流中當前的布局位置。此時 top, right, bottom, left 和 z-index 屬性無效。
relative 該關鍵字下,元素先放置在未添加定位時的位置,再在不改變頁面布局的前提下調整元素位置(因此會在此元素未添加定位時所在位置留下空白)。position:relative 對 table-*-group, table-row, table-column, table-cell, table-caption 元素無效。
absolute 元素會被移出正常文檔流,并不為元素預留空間,通過指定元素相對于最近的非 static 定位祖先元素的偏移,來確定元素位置。絕對定位的元素可以設置外邊距(margins),且不會與其他邊距合并。
fixed 元素會被移出正常文檔流,并不為元素預留空間,而是通過指定元素相對于屏幕視口(viewport)的位置來指定元素位置。元素的位置在屏幕滾動時不會改變。打印時,元素會出現在的每頁的固定位置。fixed 屬性會創建新的層疊上下文。當元素祖先的 transform, perspective 或 filter 屬性非 none 時,容器由視口改為該祖先。
sticky 元素根據正常文檔流進行定位,然后相對它的最近滾動祖先(nearest scrolling ancestor)和 containing block (最近塊級祖先 nearest block-level ancestor),包括table-related元素,基于top, right, bottom, 和 left的值進行偏移。偏移值不會影響任何其他元素的位置。

MDN傳送門

關于sticky屬性,顧名思義,單詞sticky的中文意思是“粘性的”,其效果是position:relative和position:fixed的結合。當元素在屏幕內,表現為relative,就要滾出顯示器屏幕的時候,表現為fixed。這個屬性曾經被chrome放棄過,不過后來又得到了支持

<!--示例用法-->nav{    position: -webkit-sticky;    position: sticky;    top: 0;}

1.2 兼容性

如上圖所示,position的sticky已經被各類游覽器支持,并且得到了比較好的支持,除safari還需-webkit-前綴支持外。

demo實現:

  *{        padding:0;        margin:0;    }    .container{        width:100%;        background:rgba(0,0,0,.5);    }    .nav{        width:100%;        height:50px;        text-align: center;        line-height: 50px;        background: black;        color:white;        position: sticky;        top:0;    }    .body{        width:100%;        height:10000px;    }
<div class="container">    <div style="width:100%;height:100px;"></div>    <div class="nav">position sticky 粘性定位</div>    <div class="body"></div></div>

 

1.3. 可能會踩得坑

  •  使用position:sticky同時,必須同時使用(top、left、right、bottom)中之一,否者無效
  • 父元素不能overflow:hidden或者overflow:auto屬性,否者無效
  • 父元素的高度不能小于sticky元素的高度,否者無效
  • sticky元素僅在其父元素內生效

2. JS監聽scroll事件的吸頂方案

知識詳解 整體思路是通過js對滾動事件的監聽,當滾動到頂部時(距頂部的距離為0時),動態的將元素的position屬性更改為fixed,進行固定定位達到吸頂的效果。 判斷距離頂部的距離比較常規的是使用offsetTop,但offsetTop是相對定位父級的偏移量,倘若需要滾動吸頂的元素出現定位父級元素,那么 offsetTop 獲取的就不是元素距離頁面頂部的距離。這里我們考慮使用 getBoundingClientRect() 獲取頁面中某個元素相對瀏覽器視窗上下左右的距離。 MDN傳送門

function compute(){    let ele = document.getElementById('nav');    	if(ele.getBoundingClientRect().top === 1){    		ele.style.position = "sticky";    		ele.style.top = 0;    	}    }window.addEventListener('scroll', compute);

到此這篇關于Html5導航欄吸頂方案原理與對比實現的文章就介紹到這了,更多相關Html5 導航欄吸頂內容請搜索武林網以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持武林網! 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品无码久久久久久国产| 欧美一级淫片aaaaaaa视频| 欲色天天网综合久久| 亚洲自拍偷拍区| 欧美激情国内偷拍| 久久久久久久国产精品| 国产成人欧美在线观看| 久久久国产精品x99av| 奇门遁甲1982国语版免费观看高清| 亚洲大胆美女视频| 午夜精品www| 91免费国产网站| 久久久久久国产精品久久| 国产精品v片在线观看不卡| 精品人伦一区二区三区蜜桃网站| 97视频在线观看免费| 色777狠狠综合秋免鲁丝| 欧美日韩中国免费专区在线看| 91po在线观看91精品国产性色| 一道本无吗dⅴd在线播放一区| 91av在线影院| 最近2019中文字幕mv免费看| 亚洲精品一区二区三区不| 伊人久久久久久久久久久久久| 亚洲国产精品免费| 国产欧美欧洲在线观看| 国产丝袜精品视频| 51ⅴ精品国产91久久久久久| 中文字幕欧美亚洲| 久久艹在线视频| 国产综合在线观看视频| 亚洲第五色综合网| 国产91露脸中文字幕在线| 成人国产亚洲精品a区天堂华泰| 蜜臀久久99精品久久久久久宅男| 欧美大胆在线视频| 国产精品久久久久久久av电影| 久青草国产97香蕉在线视频| 色偷偷9999www| 日韩69视频在线观看| 中文字幕免费精品一区高清| 中文字幕亚洲欧美日韩高清| 亚洲xxxxx电影| 色综合久久久久久中文网| 亚洲男人的天堂在线播放| 日韩中文视频免费在线观看| 国产999精品久久久| 久久香蕉频线观| 91成人国产在线观看| 久久精品2019中文字幕| 久久久综合av| 日韩av三级在线观看| 成人精品一区二区三区电影黑人| 日本sm极度另类视频| 日韩精品久久久久| 国产精品电影久久久久电影网| 亚洲二区在线播放视频| 色综合视频网站| 欧美二区在线播放| 国产精品免费网站| 日韩中文在线中文网在线观看| 久久久亚洲福利精品午夜| 欧美精品xxx| 大伊人狠狠躁夜夜躁av一区| 精品久久久视频| 欧美激情在线一区| 亚洲成人黄色在线| 国产精品久久一| 日韩av一区二区在线观看| 欧美天堂在线观看| 亚洲成人久久久久| 亚洲va男人天堂| 日韩激情视频在线播放| 91久久在线播放| 日韩成人中文字幕在线观看| 国产精品va在线| 欧美激情手机在线视频| 色狠狠久久aa北条麻妃| 性夜试看影院91社区| 91国在线精品国内播放| 欧洲永久精品大片ww免费漫画| 最好看的2019的中文字幕视频| 色av吧综合网| 国产999视频| 欧美精品日韩www.p站| 激情亚洲一区二区三区四区| 播播国产欧美激情| 亚洲欧美国产另类| 777国产偷窥盗摄精品视频| 大桥未久av一区二区三区| 欧美亚州一区二区三区| 中文字幕亚洲无线码a| 欧美日韩免费在线观看| 久久久久久久久中文字幕| 精品少妇一区二区30p| 国内精品小视频在线观看| 丁香五六月婷婷久久激情| 国产精品爽爽爽| 欧美国产第二页| 久久国产精品久久久| 久久影视电视剧免费网站清宫辞电视| 久久国产精品久久久久| 黄色精品在线看| 国产精品视频xxx| 亚洲精品网址在线观看| 欧美色视频日本高清在线观看| 国产精品麻豆va在线播放| 亚洲欧美日韩综合| 岛国精品视频在线播放| 欧美成人午夜视频| 成人av电影天堂| 久久国产精品视频| 最近2019年手机中文字幕| 欧美一级电影免费在线观看| 日韩欧美在线视频免费观看| 亚洲成人精品视频| 日韩有码在线视频| 日韩高清免费在线| 久久69精品久久久久久国产越南| 美女国内精品自产拍在线播放| 欧美激情精品久久久久| 精品国产老师黑色丝袜高跟鞋| 中文字幕欧美精品在线| 国产乱人伦真实精品视频| 欧美激情在线观看| 久久久精品久久久久| 欧美成在线视频| 91色视频在线观看| 在线视频欧美日韩精品| 国产精品海角社区在线观看| 91最新国产视频| 成人444kkkk在线观看| 欧美黑人巨大精品一区二区| 国产视频在线观看一区二区| 国产精品久久久久久久午夜| 国产一区二区美女视频| 蜜臀久久99精品久久久久久宅男| 国产99视频在线观看| 中文字幕在线国产精品| 国产精品视频26uuu| 国产精品白嫩初高中害羞小美女| 国产日韩欧美日韩大片| 亚洲欧美日韩国产中文专区| 日韩在线视频中文字幕| 国产午夜精品一区二区三区| 一本一本久久a久久精品牛牛影视| 欧美性20hd另类| 亚洲欧美三级伦理| 国产999在线观看| 欧美极品少妇xxxxⅹ裸体艺术| 国产欧美精品一区二区三区-老狼| 亚洲天堂网在线观看| 日韩久久精品成人| 久久久午夜视频| 777国产偷窥盗摄精品视频| 在线看福利67194| 另类少妇人与禽zozz0性伦| 国产精品第100页| 亚洲第一免费网站| 欧美性精品220| 精品国内产的精品视频在线观看| 隔壁老王国产在线精品| 亚洲码在线观看| 6080yy精品一区二区三区|