婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 移動端解決懸浮層(懸浮header、footer)會遮擋住內容的3種方法

移動端解決懸浮層(懸浮header、footer)會遮擋住內容的3種方法

熱門標簽:申請400電話流程簡介 pageadm實現地圖標注 呼和浩特外呼電銷系統排名 外呼線穩定線路 南通數據外呼系統推廣 阜陽企業外呼系統 邢臺縣地圖標注app 外呼系統電話怎么投訴 地圖標注位置能賺錢嗎

在現在的前端頁面中,尤其是移動端,經常會需要將<header>或者是<footer>模塊懸浮出來,跟隨頁面的滑動保持定位在頁面的最上方或者是最下方,如下圖所示。

“回復主題”模塊,就是跟隨頁面的浮動一直懸浮在頁面的最下方,代碼結構如下。


復制代碼
代碼如下:

...
<section class='footer'>
<div class='reply-topic'>回復主題</div>
</section>
...

實現這樣的功能當然是利用position:fixed。但是,使用position:fixed有一個bug,以懸浮<footer>在最下方為例(懸浮<header>同理),當頁面滑到最下方的時候,由于是fixed定位,脫離了正常文檔流,導致會遮擋住一部分內容。如下所示:

上面左邊是有問題的顯示,右邊為正常顯示。那么,如何解決這個問題呢?在此,我拋磚引玉提出三種我的看法,希望能有更好的方法。

法一. Javasrript解決

  使用js解決,判定當滑動條滑到頁面內容的最底端的時候,將原本會脫離文檔流的fixed定位改為不脫離文檔流的relative定位即可。

  使用腳本解決問題是最繁重的方法,能用css解決的盡量不使用腳本,但是也是一種方法。

復制代碼
代碼如下:

//滾動條在Y軸上的滾動距離
function getScrollTop(){
  return document.body.scrollTop;
}
//文檔的總高度
function getScrollHeight(){</p> <p>   return document.body.clientHeight;
}
//瀏覽器視口的高度
function getWindowHeight(){
var windowHeight = 0;
     if(document.compatMode == "CSS1Compat")
    {
       windowHeight = document.documentElement.clientHeight;
    }
    else
   {
      windowHeight = document.body.clientHeight;
    }
    return windowHeight;
}</p> <p> //滑動監聽
  window.onscroll = function(){
//滑到底部時footer定于最下方,假定<footer>的height為60
if((getScrollHeight() - getScrollTop() - getWindowHeight()) > 61)
$('.footer').css('position','fixed');
else
$('.footer').css('position','relative');
}

 法二.給body加上padding-bottom

  給html<body>標簽加上一個padding-bottom屬性,這樣正常文檔流的內容距離body底部就會產生一個padding-bottom設置的距離。

  缺點是,考慮到現在項目上線之后模塊的復用及經常需要合并css文件,當其他頁面不需要這個懸浮塊,就會給不需要<footer>fixed定位的頁面造成負擔,不推薦使用這種方法。

復制代碼
代碼如下:

//假定<footer>的高度為60px
body
{
padding-bottom: 60px;
}

法三.增加同級占位符<div>

  個人認為這個方法最為實用,在<footer>塊之外再包裹一層div,然后再增加一個與<footer>同級的<div>塊,這個<div>塊的高度設置為與<footer>同樣高,不包含任何內容,這樣就可以起到一個占位符的效果,在頁面最底占據與<footer>同樣高度的空間,當然頁面滑到最下方,原本的<footer>懸動塊就會與這個占位塊完美重疊。且不會對其他頁面產生影響。代碼如下:

  唯一缺點是不符合語義化,增加了無實質內容的空標簽。

復制代碼
代碼如下:

<!-- footer外包裹一層div-->
<div>
<!--充當占位符的div塊,無實質內容 -->
<div style="height:60px;"></div> </p> <p> <!--fixed懸浮出來的footer -->
<section class='footer'>
<div class='reply-topic'>回復主題</div>
</section>
</div>

 以上是我想到的三種方法,才疏學淺,文中若有紕漏錯誤或者有更好的方法,萬望告知,感謝。

標簽:德州 內蒙古 黃山 撫順 鶴崗 蚌埠 辛集 楊凌

巨人網絡通訊聲明:本文標題《移動端解決懸浮層(懸浮header、footer)會遮擋住內容的3種方法》,本文關鍵詞  移動,端,解決,懸浮,層,header,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《移動端解決懸浮層(懸浮header、footer)會遮擋住內容的3種方法》相關的同類信息!
  • 本頁收集關于移動端解決懸浮層(懸浮header、footer)會遮擋住內容的3種方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 元谋县| 洪洞县| 垫江县| 滕州市| 巴林右旗| 沁阳市| 桃江县| 抚顺县| 凌源市| 思南县| 平江县| 师宗县| 辽源市| 绥化市| 旅游| 庆城县| 和田县| 通河县| 自治县| 扎兰屯市| 扬州市| 米林县| 甘泉县| 成都市| 四会市| 昭通市| 和平区| 金堂县| 湛江市| 福鼎市| 永登县| 海南省| 榆社县| 汨罗市| 左云县| 稷山县| 内丘县| 任丘市| 洱源县| 泗水县| 清流县|