问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

HTML5如何才能让导航栏固定顶部不动,且!且!且!不遮挡住下面的DIV...

发布网友 发布时间:2022-04-23 04:00

我来回答

5个回答

懂视网 时间:2022-05-12 05:15

吸顶是一种比较常见的交互效果,当页面滑出屏幕边界,标题会自动吸附在屏幕边缘,用于提示用户,这篇文章主要介绍了Html5之title吸顶功能的相关资料,感兴趣的小伙伴们可以参考一下

吸顶功能

吸顶是一种比较常见的交互效果,当页面滑出屏幕边界,标题会自动吸附在屏幕边缘,用于提示用户。

基本原理

在H5中实现的基本原理就是判断当前页面滑动的距离scrollTop和标题距离页面顶部距离offsetTop的关系,进而设置标题的position = fixed。这里需要明白scrollTop和offsetTop属性的含义。

scrollTop

代表在有滚动条时,滚动条向下滚动的距离也就是元素顶部被遮住部分的高度。在没有滚动条时scrollTop==0恒成立。单位px,可读可设置。

offsetTop

当前元素顶部距离最近父元素顶部的距离,和有没有滚动条没有关系。单位px,只读元素。

所以,当scrollTop>offsetTop时,title的position = fixed,top = 0,使之固定在屏幕上方;当scrollTop < offsetTop,取消position = fixed,代码如下:

 if (fixedDom[0].offsetTop - elementScrollTop < 0){
  fixedDom.addClass("road-tab-fixed")
  }else {
  fixedDom.removeClass("road-tab-fixed")
  }

效果如下:

优化

有图看出基本功能实现的差不多了,但是感觉哪里怪怪的。当页面向上滑时效果还是比较自然的,但是当页面下滑时,只有当页面完全滑到顶部时,标题才会回到原位,导致过度不自然,所以对于titile的position的设定要分两种情况:上滑和下滑。

判断上下滑动方向

判断上下滑动点击此处

当页面上滑时

当scrollTop>offsetTop时,title的position = fixed,top = 0,使之固定在屏幕上方;

当页面下滑时

当scrollTop<offsetTop时,取消掉fixed属性,这样就会使标题跟随页面滑动下来,交互更加自然了,

代码如下:

if(beforeElementScrollTop - elementScrollTop <=0){//up
  console.log('up');
  if (beforeOffsetTop - elementScrollTop < 0){
  fixedDom.addClass("road-tab-fixed")
  }
  }else{
  console.log('down');
  // console.log('beforeOffsetTop-----------',beforeOffsetTop);
  // console.log('elementScrollTop--------------',elementScrollTop);
  if (beforeOffsetTop - elementScrollTop >= 0){
  fixedDom.removeClass("road-tab-fixed")
  }
  }

效果如下:

优化之scroll节流

当对页面监听了scroll事件后,滑动时scroll的回调会一直在执行,影响到页面性能,而节流只允许一个函数在 X 毫秒内执行一次,只有当上一次函数执行后过了你规定的时间间隔,才能进行下一次该函数的调用。代码如下

const fixedDom = $("#road-tab"),
  isIos = utils.getMobileType(),
  tabclass = "road-tab-fixed";
 let beforeElementScrollTop = 0;
 let beforeOffsetTop = fixedDom[0].offsetTop;
 //scroll节流
 const throttle = (func,wait,mustRun) => {
  var timeout,
  startTime = new Date();

  return function() {
  var context = this,
  args = arguments,
  curTime = new Date()
  clearTimeout(timeout)
  // 如果达到了规定的触发时间间隔,触发 handler
  if(curTime - startTime >= mustRun){
  beforeElementScrollTop = document.body.scrollTop;
  console.log("beforelementScrollTop----------",document.body.scrollTop);
  func.apply(context,args);
  startTime = curTime
  // 没达到触发间隔,重新设定定时器
  }else{
  timeout = setTimeout(func, wait)
  }
  }
 }
 const winScroll = (e) => {
  const elementScrollTop=document.body.scrollTop;
  console.log('elementScrollTop--------------',elementScrollTop);
  if(beforeElementScrollTop - elementScrollTop <=0){//up
  console.log('up');
  if (beforeOffsetTop - elementScrollTop < 0){
  fixedDom.addClass("road-tab-fixed")
  }
  }else{
  if (beforeOffsetTop - elementScrollTop >= 0){console.log("UUUUUU");
  fixedDom.removeClass("road-tab-fixed")
  }
  }
 };
 $(window).off("scroll").on("scroll", throttle(winScroll,10,100));

热心网友 时间:2022-05-12 02:23

HTML5让导航栏固定顶部不动且不遮挡住下面的DIV方法如下:

1,首先在html中,添加良好的导航内容。

2,后者是网页的具体内容,这里的代码比较简单。

3,在样式中,首先在菜单中定义一些样式。

4,此时,在运行页面时,滚动条滚动后导航将消失。

5,为了将导航栏固定在顶部,可以添加样式位置:固定;最高:0;在导航容器中,键是第一个样式,因此其位置是固定的。

6,此时,页面开始运行,页面向上滚动,并且导航始终在顶部。

热心网友 时间:2022-05-12 03:41

1、新建一个文件夹,用来存放网页文件和图片,快捷键ctrl+shift+n。

2、进入新建文件夹里面,右键新建文本文档。

3、进入新建的文本文档,复制下方代码,点击快捷键ctrl+s保存后退出。

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<style type="text/css">

body{margin: 0 auto;color:#F6F6F6;}

/*注:t1的宽度是100%跟其他div的宽度不同,如果分辨率高于1100宽度的时候,t1会突出来,这是你原先代码的。*/

/*position:fixed;这个fixed属性为块状,他跟absolute一样,不会独占一行。z-index: 2;属性就是让他显示在其他div的上层*/

.t1{position:fixed; width:100%; height:50px; background: #000000;z-index: 2;}

.t2{width:1100px;height:100px;background:#2266FF;}

.t3{width:1100px;height:100px;background:#5577FF;}

.t4{width:1100px;height:100px;background:#3344FF;}

.t5{width:1100px;height:100px;background:#5577FF;}

.t6{width:1100px;height:100px;background:#3344FF;}

/*t01的position: relative;这个是独占一行的属性,在这里相当于占位符的作用。height: 50px;这里的50像素高度要等于t1的高度。background:none;背景设置成空白或者透明,这里设不设置都没关系,因为他没有加z-index这个属性,他默认的属性为0,即显示在t1图层的下面*/

.t01{position: relative;height: 50px;background:none;}

</style>

</head>

<body>

<div class="t1">T1这是希望固定不动的DIV</div>

<div class="t01"></div>

<div class="t2">T2</div>

<div class="t3">T3</div>

<div class="t4">T4</div>

<div class="t5">T5</div>

<div class="t6">T6</div>

</body>

</html>

4、重命名新建文本文档为index.html,原先的.txt的后缀同时去掉后保存,提示确实要更改后按“是”即可。

5、点击index.html,右键浏览器打开预览效果,打开后即可得到如下效果。

热心网友 时间:2022-05-12 05:16

1、首先在我们的html里,添加好导航内容。

2、后面的就是网页的具体内容了,这里的代码简单一些。

3、样式里,我们先定义一些菜单里的样式。

4、这时运行页面时,在滚动条滚动下去后,导航是会消失不见的。

5、为了让导航栏固定在顶部,我们可以在导航容器里添加样式position: fixed;top: 0;  关键是第一个样式,让它的位置固定起来。

6、这时运行页面,页面滚动起来,导航也始终在顶部的。

热心网友 时间:2022-05-12 07:07

思路不对,解决办法不是在t1上,而是在t2上,给t2添加一个css,margin-top:50px;即就是你t1的高度追问

按照说的方法解决也不对啊...按您说的方法改后,不仅没有解决反而还加大了和顶部的距离了

见录制的GIF

首先是修改后在IE测试,后面是在chrome里测试,鉴于结果,就没去火狐等其他测

追答

你这是给t2加了top值吧,t2的top:0,要这样的, position:fixed; 兼容ie8+


HTML5如何才能让导航栏固定顶部不动,且!且!且!不遮挡住下面的DIV???

HTML5让导航栏固定顶部不动且不遮挡住下面的DIV方法如下:1,首先在html中,添加良好的导航内容。2,后者是网页的具体内容,这里的代码比较简单。3,在样式中,首先在菜单中定义一些样式。4,此时,在运行页面时,滚动条滚动后导航将消失。5,为了将导航栏固定在顶部,可以添加样式位置:固定;最高:0...

HTML5怎么把导航固定在底部?是只滑动内容,导航固定不动的。

HTML5怎么把导航固定在底部的步骤如下:css的定位样式属性来实现;会用到css中的position:fixed;属性,结合来实现。&lt;style&gt;.foot-menu{width:100%;height:60px;background:#000;position:fixed;bottom:0;/**距离底部为0*/left:0;z-index:1;}&lt;/style&gt;&lt;div class="foot-menu"&gt;&lt;!---导航具体...

html导航栏跳转页面?

html5如何做到使用导航栏切换页面时不重新加载页面1、如果导航链接是其他单独的页面:方法一:使用iframe;方法二:使用ajax;如果内容不多,所有内容写到一个页面,然后利用js和css来控制其显示隐藏也可以实现。2、导航栏下面放一个Div,专门用来显示对应导航栏目的内容。点击导航栏触发点击事件,在事件函数...

html5如何做到使用导航栏切换页面时不重新加载页面

实现这个功能有很多种方法,这里我选一种个人认为比较简单的方法:建立三个网页,一个作为主页面,另外两个子页面作为切换页面嵌入主页面,子页面也可以用文字替代。用jQuery方法来切换页面,语言比较简单网上搜一下看看就懂了 下面附上代码 &lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; ...

求HTML5中文本或者行内块的常用居中方式 附代码 尽量全 谢了

这种方法用来实现单行垂直居中是相当的简单的,你只要保证元素内容是单行,并且其高度是固定不变的,你只要将其“line-height”设置成和“height”值一样就Ok了。不过这种方法局限性太大,只有单行文本的元素才适用,所以在多行元素中是不能使用这种方法的。 Html Markup&lt;div class="vertical"&gt;content&lt;/div&gt;复制代码 CS...

bootstrap按钮居中?

范例一先用传统的HTML表格align以及valign来设计水平与垂直方向的置中效果,其中align=center是水平置中,valign=middle则是垂直置中,这两个功能都要写在表格栏位的标签内才有效果。bootstrap总只要是含有container类名的div都是可以居中的无论在什么设备中。导航条:导航条(navbar)和的导航(nav),...

怎么制作自己的网页?

1.精通html和css,能制作符合W3C标准的静态页面;2.精通JavaScript编程,对面向对象编程思想有深刻理解;3.精通主流Javascript库/框架jQuery;4.理解并掌握JavaScript语言核心技术DOM、BOM有Javascript性能优化经验;5.对浏览器兼容性有深入的研究,精通各种浏览器问题 ;6.了解Backbone.js、AngularJs等MVC框架...

网页制作是什么意思呀!

专业网站中,必须要有导航条。三、收集资源确定好站点目标和结构之后,接下来要做的就是收集有关网站的资源,其中包括以下资源:文字资料:文字是网站的主题。无论是什么类型的网站,都要离不开叙述性的文字。离开了文字即使图片再华丽,浏览者也不知所云。所以要制作一个成功的网站,必须要提供足够的...

HTML5如何才能让导航栏固定顶部不动,且!且!且!不遮挡住下面的DIV???

HTML5让导航栏固定顶部不动且不遮挡住下面的DIV方法如下:1,首先在html中,添加良好的导航内容。2,后者是网页的具体内容,这里的代码比较简单。3,在样式中,首先在菜单中定义一些样式。4,此时,在运行页面时,滚动条滚动后导航将消失。5,为了将导航栏固定在顶部,可以添加样式位置:固定;最高:0...

顶部导航栏固定不动 怎么让导航栏固定一直不动 html怎么固定导航栏不动 如何实现导航栏位置固定 导航栏置顶不不随滚动 如何固定网页导航栏 vue固定顶部导航栏 如何才能让自己不动心 如何将收藏栏放在导航栏上
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...怎么样设置单元格;在文字后面加上固定的数字2011. 我要组织一期有关“感恩父母”的主题班会,需要一个有关感恩父母的... 我需要一篇暑假作业,是《感恩父母,回报社会》,我大三,懒的写,希望好心... 鸣潮是一个手机号绑定多个账号吗? 《海棠经雨胭脂透》饰演朗青青的人是谁 朗青青最后和谁在一起了 朋友,有李强《感恩父母》的演讲稿吗?有的话,能不能给我发过来一份,谢谢... 为什么小额贷款都不过 鸣潮如何重新创建新账号? 苹果手机打电话提示用户正忙是什么意思? 为什么拼多多上面的iPhone X旧的新的和苏宁上的旧的这个差不多? 怎样用PHP来给网页做导航栏 怎么设置空间背景音乐? php做网页导航栏静止在上面不动,但是下面内容会跑到导航下面? 怎么把音乐设为背景音乐 怎么更改背景音乐啊? 我的背景音乐怎么设置了,不管用啊? keep健身软件中的背景音乐在哪里可以下载? 怎么设置背景音乐 我用keep运动的时候想听歌,然后他们不能一起放能不能一起放啊?就是不... keep软件怎么关闭指导声音? 苹果keep音乐燃脂跑里的歌怎么开 名人团结合作的故事 团结的古代俗语有哪些? 古代将军团结的故事 古代名人团结合作的事列 中国古代团结一致的例子 团结的名言与例子(最好是典故) 关于团结的历史典故100字。 古代团结互助的故事,完整版 关于团结的历史小故事 php 怎么控制当前页的导航菜单样式 网站首页的导航菜单 是写死的 固定的还是 用php动态生成的 用D触发器能组成计数器吗?怎么做? php导航栏问题 如何用D触发器构成七进制计数器 前端编程:bootstrap中如何实现那种滑动到了一定位置才出现的导航栏,不是那种始终固定的,小白求教 php做导航栏的问题 数字电路设计 D触发器能组成计数器吗 要怎样对付变了心的女人 PHP网页模块化设计,例如:所有页面都重复调用同一个导航栏。 D触发器和JK触发器组成的计数器的区别 变了心的女人会有哪些变化? HTML 怎么把网页的头部导航条 和尾部友情链接 都固定在每一个页_百度... 如何用双d触发器74ls74构成十进制加法计数器 变了心的女人,往往会有哪些明显变化? 可不可以用PHP把DIV设置成导航栏呢? 一个变了心的女人,什么事情都能做的出来 请用D触发器构成一个三位二进制减法计数器,写出实验原理。(可以画出电... php怎么实现类似母版页功能? 变了心的女人是怎么样的