iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在Html5中实现title吸顶功能
  • 754
分享到

怎么在Html5中实现title吸顶功能

2023-06-09 14:06:58 754人浏览 泡泡鱼
摘要

怎么在HTML5中实现title吸顶功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。吸顶功能吸顶是一种比较常见的交互效果,当页面滑出屏幕边界,标题会自动吸附在屏幕边缘,用于提

怎么在HTML5中实现title吸顶功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

吸顶功能

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

基本原理

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

scrollTop

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

怎么在Html5中实现title吸顶功能

offsetTop

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

怎么在Html5中实现title吸顶功能

所以,当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")          }

效果如下:

怎么在Html5中实现title吸顶功能

优化

有图看出基本功能实现的差不多了,但是感觉哪里怪怪的。当页面向上滑时效果还是比较自然的,但是当页面下滑时,只有当页面完全滑到顶部时,标题才会回到原位,导致过度不自然,所以对于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")            }          }

效果如下:

怎么在Html5中实现title吸顶功能

优化之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));

看完上述内容,你们掌握怎么在html5中实现title吸顶功能的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 怎么在Html5中实现title吸顶功能

本文链接: https://www.lsjlt.com/news/256327.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在Html5中实现title吸顶功能
    怎么在Html5中实现title吸顶功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。吸顶功能吸顶是一种比较常见的交互效果,当页面滑出屏幕边界,标题会自动吸附在屏幕边缘,用于提...
    99+
    2023-06-09
  • React 实现具备吸顶和吸底功能组件实例
    目录背景实现结语背景 现在手机应用经常有这样一个场景: 页面上有一个导航,导航位置在页面中间位置,当页面顶部滚动到导航位置时,导航自动吸顶,页面继续往下滚动时,它就一直在页面视窗顶...
    99+
    2023-02-23
    React吸顶吸底功能 React 功能组件
  • React如何实现具备吸顶和吸底功能组件
    本篇内容介绍了“React如何实现具备吸顶和吸底功能组件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!具体要求:需要可以设置是 吸顶 还是 ...
    99+
    2023-07-05
  • react.js中怎么实现tab吸顶效果
    这篇文章给大家分享的是有关react.js中怎么实现tab吸顶效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在react项目开发中有一个需求是,页面滚动到tab所在位置时,t...
    99+
    2024-04-02
  • css怎么实现滚动吸顶
    小编给大家分享一下css怎么实现滚动吸顶,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!修改版预览这篇文章是三天前写就的,有大佬给我提了一些修改意见,我觉得这个意见...
    99+
    2023-06-08
  • 怎么在HTML5中实现签到 功能
    本篇文章给大家分享的是有关怎么在HTML5中实现签到 功能 ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。//生成日期数据    fun...
    99+
    2023-06-09
  • Vue电商网站首页内容吸顶功能实现过程
    目录交互要求实现思路核心代码交互要求 滚动距离大于等于78个px的时候,组件会在顶部固定定位滚动距离小于78个px的时候,组件消失隐藏 实现思路 准备一个吸顶组件,准备一个类名,控制...
    99+
    2023-05-16
    Vue电商网站吸顶 Vue网站吸顶功能
  • 怎么在Html5中实现微信分享功能
    这期内容当中小编将会给大家带来有关怎么在Html5中实现微信分享功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、安装 weixin-js-sdknpm install weixin-js-...
    99+
    2023-06-09
  • 怎么在html5中实现一个时钟功能
    这期内容当中小编将会给大家带来有关怎么在html5中实现一个时钟功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。<!DOCTYPE HTML><html><hea...
    99+
    2023-06-09
  • 怎么在android应用中实现一个RecyclerView悬浮吸顶效果
    本篇文章为大家展示了怎么在android应用中实现一个RecyclerView悬浮吸顶效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MultiType-Adapter打造悬浮吸顶效果注:当前版本...
    99+
    2023-05-31
    android recyclerview recycle
  • HTML5中怎么实现拖放功能
    小编给大家分享一下HTML5中怎么实现拖放功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!关于HTML5中的拖放拖放(Drag...
    99+
    2024-04-02
  • HTML5 中怎么实现拖放功能
    本篇文章给大家分享的是有关HTML5 中怎么实现拖放功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、拖放 <!DOCTY...
    99+
    2024-04-02
  • 怎么在HTML5中使用websocket实现直播功能
    这篇文章给大家介绍怎么在HTML5中使用websocket实现直播功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。录像页面HTML结构<video autoplay id="sou...
    99+
    2023-06-09
  • 怎么在HTML5中实现移动端复制功能
    本篇文章为大家展示了怎么在HTML5中实现移动端复制功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用clipboard.js实现移动端粘贴复制 clipboard.js是一款很强大的粘贴复制的...
    99+
    2023-06-09
  • 怎么在Html5中实现一个剪切板功能
    这期内容当中小编将会给大家带来有关怎么在Html5中实现一个剪切板功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.不带input输入框的原生js方法这种情况适用于复制非输入框中的文本到剪切板&nbs...
    99+
    2023-06-09
  • PH怎么实现帖子置顶功能
    这篇文章主要介绍“PH怎么实现帖子置顶功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PH怎么实现帖子置顶功能”文章能帮助大家解决问题。在开始之前,让我们先熟悉一下帖子置顶功能的一些基础知识。通常...
    99+
    2023-07-05
  • 怎么在HTML5中实现一个视频弹幕功能
    这篇文章给大家介绍怎么在HTML5中实现一个视频弹幕功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1>html代码展示<div class="barrage">&nb...
    99+
    2023-06-09
  • 怎么 在HTML5中实现一个语音合成功能
    怎么 在HTML5中实现一个语音合成功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 Speech Synthesis API通过上面的例子我们可以猜测到上面调用的...
    99+
    2023-06-09
  • 怎么在html5项目中实现一个录音功能
    这篇文章给大家介绍怎么在html5项目中实现一个录音功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。步骤1由于新的api是通过navigator.mediaDevices.getUserMedia,且返回一个prom...
    99+
    2023-06-09
  • 怎么在HTML5中实现拍照和摄像机功能
    本篇文章为大家展示了怎么在HTML5中实现拍照和摄像机功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。拍照HTML5的getUserMedia API为用户提供访问硬件设备媒体(摄像头、视频、音频...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作