搜索
首页web前端H5教程移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法_html5教程技巧

在现在的前端页面中,尤其是移动端,经常会需要将

或者是
模块悬浮出来,跟随页面的滑动保持定位在页面的最上方或者是最下方,如下图所示。

“回复主题”模块,就是跟随页面的浮动一直悬浮在页面的最下方,代码结构如下。


复制代码
代码如下:

...

...

实现这样的功能当然是利用position:fixed。但是,使用position:fixed有一个bug,以悬浮

在最下方为例(悬浮
同理),当页面滑到最下方的时候,由于是fixed定位,脱离了正常文档流,导致会遮挡住一部分内容。如下所示:

上面左边是有问题的显示,右边为正常显示。那么,如何解决这个问题呢?在此,我抛砖引玉提出三种我的看法,希望能有更好的方法。

法一. Javasrript解决

  使用js解决,判定当滑动条滑到页面内容的最底端的时候,将原本会脱离文档流的fixed定位改为不脱离文档流的relative定位即可。

  使用脚本解决问题是最繁重的方法,能用css解决的尽量不使用脚本,但是也是一种方法。

复制代码
代码如下:

//滚动条在Y轴上的滚动距离
function getScrollTop(){
  return document.body.scrollTop;
}
//文档的总高度
function getScrollHeight(){

  return document.body.clientHeight;
}
//浏览器视口的高度
function getWindowHeight(){
var windowHeight = 0;
     if(document.compatMode == "CSS1Compat")
    {
       windowHeight = document.documentElement.clientHeight;
    }
    else
   {
      windowHeight = document.body.clientHeight;
    }
    return windowHeight;
}

//滑动监听
  window.onscroll = function(){
//滑到底部时footer定于最下方,假定

的height为60
if((getScrollHeight() - getScrollTop() - getWindowHeight()) > 61)
$('.footer').css('position','fixed');
else
$('.footer').css('position','relative');
}

 法二.给body加上padding-bottom

  给html

标签加上一个padding-bottom属性,这样正常文档流的内容距离body底部就会产生一个padding-bottom设置的距离。

  缺点是,考虑到现在项目上线之后模块的复用及经常需要合并css文件,当其他页面不需要这个悬浮块,就会给不需要

fixed定位的页面造成负担,不推荐使用这种方法。

复制代码
代码如下:

//假定
的高度为60px
body
{
padding-bottom: 60px;
}

法三.增加同级占位符

  个人认为这个方法最为实用,在

块之外再包裹一层div,然后再增加一个与
同级的
块,这个
块的高度设置为与
同样高,不包含任何内容,这样就可以起到一个占位符的效果,在页面最底占据与
同样高度的空间,当然页面滑到最下方,原本的
悬动块就会与这个占位块完美重叠。且不会对其他页面产生影响。代码如下:

  唯一缺点是不符合语义化,增加了无实质内容的空标签。

复制代码
代码如下:







 以上是我想到的三种方法,才疏学浅,文中若有纰漏错误或者有更好的方法,万望告知,感谢。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
解决Vue移动端多触点问题解决Vue移动端多触点问题Jun 30, 2023 pm 01:06 PM

在移动端开发中,我们经常会遇到多手指触控的问题。当用户在移动设备上使用多个手指滑动或缩放屏幕时,如何准确地识别和响应这些手势是一个重要的开发难题。在Vue开发中,我们可以采取一些措施来解决移动端多手指触控问题。一、使用vue-touch插件vue-touch是一个用于Vue的手势插件,它可以方便地处理移动端的多手指触控事件。我们可以通过npm安装vue-to

Vue开发中如何解决移动端双击放大问题Vue开发中如何解决移动端双击放大问题Jun 29, 2023 am 11:06 AM

随着移动端设备的普及,使用Vue进行移动端开发已经成为了常见的选择。然而,我们在移动端开发过程中经常会面临一个问题,就是双击放大。本文将针对这一问题,探讨在Vue开发中如何解决移动端双击放大的具体方法。移动端双击放大问题的出现,主要是因为移动设备在触摸屏上进行双击操作时,会自动放大网页的缩放比例。对于一般的网页开发来说,这种双击放大通常是有好处的,因为它可以

使用Python和百度地图API实现移动端地图定位功能的方法使用Python和百度地图API实现移动端地图定位功能的方法Jul 29, 2023 pm 11:33 PM

使用Python和百度地图API实现移动端地图定位功能的方法随着移动互联网的发展,地图定位功能在移动端应用中变得越来越常见。Python作为一种流行的编程语言,也可以通过使用百度地图API来实现移动端地图定位功能。下面将介绍使用Python和百度地图API实现地图定位功能的步骤,并提供相应的代码示例。步骤一:申请百度地图API密钥在开始之前,我们首先需要申请

如何处理PHP表单中的移动端和响应式设计如何处理PHP表单中的移动端和响应式设计Aug 10, 2023 am 11:51 AM

如何处理PHP表单中的移动端和响应式设计随着移动设备的普及和使用频率的增加,以及越来越多的用户使用移动设备访问网站,适配移动端成为了一个重要的问题。在处理PHP表单时,我们需要考虑如何实现移动端友好的界面和响应式设计。本文将介绍如何处理PHP表单中的移动端和响应式设计,并提供代码示例。1.使用HTML5的响应式表单HTML5提供了一些新特性,可以方便地实现响

Vue开发:优化移动端手势缩放卡顿问题Vue开发:优化移动端手势缩放卡顿问题Jun 30, 2023 pm 04:33 PM

Vue开发中如何解决移动端手势缩放页面卡顿问题近年来,移动端应用的普及使得手势操作成为用户交互的重要方式。在Vue开发中,实现移动端手势缩放功能往往会遇到页面卡顿的问题。本文将探讨如何解决这一问题,并提供一些优化策略。了解手势缩放原理在解决问题之前,我们首先需要了解手势缩放的原理。手势缩放通过监听触摸事件来实现,当用户用两个手指滑动屏幕时,页面会按照手指的滑

如何使用PHP生成可用于移动端的二维码?如何使用PHP生成可用于移动端的二维码?Aug 26, 2023 pm 02:51 PM

如何使用PHP生成可用于移动端的二维码?随着移动互联网的快速发展,二维码成为了商家推广、支付、活动等方方面面的重要工具。而使用PHP生成可用于移动端的二维码则成为了许多开发人员的需求。在本文中,我们将介绍如何使用PHP生成可用于移动端的二维码,并附上代码示例供参考。首先,我们需要先安装并引入一个PHP库,名为"endroid/qr-code"。这个库提供了一

Vue移动端消除点击穿透问题的解决方案Vue移动端消除点击穿透问题的解决方案Jul 01, 2023 am 08:27 AM

Vue开发中如何解决移动端点击穿透问题移动端上经常会遇到点击穿透的问题,即用户在快速点击元素时,由于点击事件的执行时间较长,下一个元素会被穿透点击。这在开发中会造成一系列的问题,例如多次触发事件、页面跳转错误等。针对这个问题,Vue提供了几种解决方案。一、使用FastClick库FastClick是一个能够消除click事件在移动端300ms的延迟库。安装和

Vue开发中如何解决移动端图片旋转问题Vue开发中如何解决移动端图片旋转问题Jun 29, 2023 pm 09:22 PM

随着移动互联网的快速发展,越来越多的网站和应用程序开始采用Vue.js进行移动端开发。然而,在移动端开发过程中,经常会遇到图片旋转的问题。图片旋转是指当用户在移动设备上拍摄照片时,由于设备方向的变化,导致照片在页面上显示的角度与实际拍摄的角度不一致。解决图片旋转问题,首先需要了解图片旋转的原因。当用户在移动设备上拍摄照片时,设备会自动为照片添加一些元数据,其

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具