用java实现楼层导航_JS实现网站楼层导航效果

news/2024/5/9 2:19:45/文章来源:https://blog.csdn.net/weixin_32920055/article/details/114837427

壹 ❀ 引

我在angularjs中使用锚点这篇文章中,踩坑并简单实现了楼层导航中点击小图标跳转到对应楼层的功能;但对于楼层导航而言,还有个重要的功能就是,随着滚动条滚动,达到某层时得同步点亮楼层导航的小图片。

由于我前面也说了不打算使用JQ,所以想着用JS去实现它,实现并不难,主要得弄清滚动满足怎样的条件才应该点亮对应楼层,我们先看看实现效果:

c6985e57ca210b7933f1dbfb2de99a97.gif

贰 ❀ 实现思路

第一点,因为是由滚动触发的楼层判断,所以肯定离不开onscroll事件。

第二点,我们貌似要获取每个楼层顶端距离视窗顶部的距离,随着滚动条往下滚动,此距离会不断缩小,当接近到某个距离时我们判定此楼层入画,当然其它楼层都满足此判定。

而JQ提供了一个offset().top方法能获取这个值,js中只有一个offsetTop属性,获取的是距离自己最近position属性为非static的祖先元素的距离,此距离不随滚动条滚动而缩小。

当然我们有方法模拟计算出offset().top的值,但没必要,如果你对JQ的offset().top与js的offsetTop有什么区别,以及对如何模拟出JQ的offset().top的值有兴趣,可以参照博主这篇文章 JQ的offset().top与js的offsetTop区别详解。

这里我直接引用了我之前博客得到的结论:offset().top = offsetTop - scrollTop(offsetTop 参考对象为根元素)。

为了方便理解,我们假设楼层壹顶端距离视窗顶端为0时,此时判定楼层壹入画,即楼层导航中第一个按钮应该被点亮。

3457eebc1b56713cf25153ec70f61409.png

由于offset().top = offsetTop - scrollTop,此时楼层壹距离顶端已经为0,我们可以得出当楼层壹的offsetTop = scrollTop时,我们认定楼层壹入画。

而当楼层贰入画时,楼层贰的offsetTop也等于滚动条的距离,此时楼层壹自然会出画:

b3ea98ed9abc53ad324a52ca5627b1fa.png

那么现在我们得到了判断楼层入画的条件,如果某个楼层的offsetTop属性的值小于等于滚动条距离时(如果用等于条件过于苛刻,很难刚好滚动到这个距离点上),我们点亮对应楼层的导航logo。

为了让效果更加自然,我们肯定不会真的让某个楼层紧贴顶部时才判定它满足条件,肯定是提前某个距离就判定满足,所以真正的条件应该是offsetTop - 100(这个数字看自己感觉) <= scrollTop

你是否会有,楼层贰入画时楼层壹依然满足offsetTop<=scrollTop条件的疑惑?在JQ里面,我们给某个元素添加点亮class的同时,还会清除掉兄弟元素的该class。

所以在JS里面也是如此,我们利用满足楼层的索引来控制样式,而后者满足条件的索引始终会覆盖前面的索引,所以被点亮的永远只有一个。

现在弄懂了思路,代码就好些了,下面直接贴上了实现代码:

叁 ❀ 实现代码

HTML部分:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_781866.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html+浏览器自动全屏,web 使网站在浏览器中全屏显示 fullscreen=yes

关需朋者说上事是础一发一开程和开数的目前间于全屏(FullScr新直能分支调二浏页器朋代说&#xff0c;事刚een)很久以前它不曾明机式近扯多相显端幻近扯多相显端幻&#xff0c;浏览器就已经有全屏的概念的了。IE的open方法中可以配置上FullScreen参数来让打开的页面全屏化。但是…

网站建设教程:虚拟主机如何安装PageAdmin建站系统

想要做一个网站&#xff0c;可以选择的建站程序有很多种&#xff0c;如PageAdmin、Discuz、zblog等等。每个建站程序都有它独特的优势&#xff0c;如discuz适合一般的论坛社区&#xff0c;zblog则适用于博客类网站&#xff0c;而PageAdmin就是通用性网站系统。 PageAdmin是一套…

美术 建模3D模型网站推荐

免费游戏引擎专用商店 Unity 商店&#xff1a;Unity Asset Store - The Best Assets for Game Making Unreal 商城&#xff1a;Marketplace - UE Marketplace 以上商店资源只能用在自有引擎中&#xff08;不能把Unity商店资源用在UE4商业项目中&#xff09; 以下网站排名不…

CSDN盗版网站https://www.twblogs.net/

https://www.twblogs.net/这个盗用连接网站&#xff0c;把所有CSDN的博客全都复制了一遍。把文字转成了繁体,估计是应该不是大陆地区.... 各位可以搜索任意博客名字。 压根就没注册过...平白无故上了盗版网站 问了下CSDN的客服&#xff0c;他们不管这事》。。。。 广电总局侵…

美术-常用免费贴图网站分享

https://ambientcg.com/ 免费材质下载&#xff0c;无限制&#xff0c;资源较多 ambientCG - Free Public Domain PBR Materialshttps://ambientcg.com/ https://www.poliigon.com/ 部分免费&#xff0c;无限制&#xff0c;免费资源 Poliigon - Library of textures, model…

一些收藏默认网站后缀

菜刀链接密码默认 /plus/90sec.php||||尝试用菜刀连接--密码 guige /plus/spider.php||||spider菜刀连接 /plus/x.php||||m菜刀密码m /plus/service.php||||尝试用菜刀连接--密码 fuwu /plus/av.php||||尝试用菜刀连接--密码 110 /plus/bakup.hp||||尝试用菜刀连接--密码 mb /p…

SEO优化技术的简介

严格来讲&#xff0c;seo技术没有所谓的严格的黑帽与白帽之分。即使是正常的301重定向&#xff0c;在某些情况下也能作用于黑帽seo技术。我们能判定一个人是真正的好人还是坏人么&#xff1f;答案是否定的。之所以解密所谓的黑帽seo&#xff0c;是想满足很多朋友的遐想。 一说到…

html登录页面源码_今日头条新闻资讯网站源码模板 带手机版,无采集规则失效...

此火车头采集规则已经失效 需要火车头采集规则的请自己重新编写源码名称&#xff1a; 仿《今日头条》网站程序开发环境&#xff1a;PHP帝国cms 7.2 GBK空间支持&#xff1a;PHP MySQL使用帝国7.2 GBK版二次开发&#xff0c;程序具有极好的稳定&#xff0c;安全&#xff0c;高性…

免费python培训网站_免费学习Python编程的3个优秀的网站资源

用Python编写代码一点都不难&#xff0c;事实上它一直被赞誉为最容易学的编程语言。如果你准备学习web开发&#xff0c; Python是一个不错的开始&#xff0c;甚至想做游戏的话&#xff0c;用Python来开发游戏的资源也有很多。这是快速学习这门语言的途径之一。 本人对于Python学…

python combinations_「combinations」itertools.combinations()结构及上下文||组合 - seo实验室...

combinations itertools 官方文档 itertools是2.3版本加入的用于创建循环用迭代器的函数模块。 itertools 模块提供的迭代器函数有以下几种类型&#xff1a;无限迭代器&#xff1a;生成一个无限序列&#xff0c;比如自然数序列 1, 2, 3, 4, ...&#xff1b; 有限迭代器&#xf…

利用其他网站的搜索结果_社交媒体在线上旅游信息搜索中的作用

互联网和即时通讯技术的飞速发展使得社交媒体成为热点&#xff0c;改变了用户的社交网络并突出了用户的核心地位。小红书等社交媒体也成为旅行者获取信息的重要来源。Zheng Xiang和Ulrike Gretzel两位学者在这一背景下探究了社交媒体出现在搜索引擎中的程度&#xff0c;证实了社…

scrapy 搜索关键字_解析搜索引擎抓取网站目标关键词原理

一个网站有几百甚至几千个关键词&#xff0c;怎么让搜索引擎知道网站的目标关键词是什么呢&#xff1f;解析搜索引擎抓取网站目标关键词原理一、网站标题(Title)&#xff0c;网站标题是搜索引擎最重视的部分&#xff0c;通常情况下&#xff0c;无论网站是否存在keywords标签和d…

php 开源产品,PHP免费开源企业产品建站系统含手机站

本系统采用PHPmysql/access/sqlite免费建站整站系统&#xff0c;所有源码开源完整&#xff0c;支持手机自动同步。zzzphp功能1.支持mysql&#xff0c;sqlite&#xff0c;access三种数据库。2.模板和标签与asp版的zzzcms通用。3.asp版的zzzcms的access数据库可直接使用。4.支持手…

go-micro examples 中web form 代码学习(web类 网站的微服务架构:micro api + micro web + web service + api service)

以下对应 example/web 例子&#xff1a; main.go 代码如下&#xff1a; package mainimport ("fmt""log""net/http""github.com/micro/go-micro/web" )func helloWorldHandler(w http.ResponseWriter, r *http.Request) {fmt.Fprint…

css网页favicon_设置网站图标(favicon)

每个网站都有自己的图标(favicon)&#xff0c;除了便于识别与书签收藏&#xff0c;也是一个厂牌吧。浏览器可以将favicon显示于浏览器的地址栏中&#xff0c;也可置于书签列表的网站名前&#xff0c;还可以放在标签式浏览界面中的页标题前。但是我们自己的网站&#xff0c;例如…

百度统计ajax,web网站统计工具之“百度统计”

百度统计是什么&#xff1f;百度统计是百度推出的一款免费的专业网站流量分析工具&#xff0c;能够告诉用户访客是如何找到并浏览用户的网站&#xff0c;在网站上做了些什么&#xff0c;有了这些信息&#xff0c;可以帮助用户改善访客在用户的网站上的使用体验。百度统计有什么…

修改网站首页批处理_天门关键词优化_推荐实用的关键词拓展工具弥补网站排名少的缺憾...

发布时间:2020-11-15 21:11:31SEO优化师将工作核心放在高质量的内容建设&#xff0c;为网站创建更多的信息内容&#xff0c;但是网站关键词排名仍然是少数。有哪些方法或者工作可以拓展关键词呢&#xff1f;接下来&#xff0c;优帮云小编将为您介绍关键词扩展工具和方法&#x…

先用knn对数据集进行预处理再利用神经网络对数据集进行分类_网站数据分析— 常用商品运营分析模型分享...

点击上方蓝色字关注我们~来源&#xff1a;掘金本节将介绍几个常用的商品分析模型&#xff0c;包括商品价格敏感度模型、新产品市场定位模型、销售预测模型、商品关联销售模型、异常订单检测模型、商品规划的最优组合。1商品价格敏感度模型商品价格敏感度模型是指通过研究找到用…

景安vps网站上传后前台能打开后台不能打开_一次某系统的后台拿shell过程

0x01 前言这个后台是一个表哥给我的&#xff0c;然后作为菜鸡的我去试着弄了一下&#xff0c;搞下了&#xff0c;就分享一下思路&#xff0c;文章很菜&#xff0c;希望各位大表哥手下留情&#xff0c;别喷~(菜鸡第一次在春秋写文章....)0x02 测试开始首先&#xff0c;后台界面是…

网站访问量怎么刷_基于爬虫刷新某网站访问量!我说怎么上千万呢!

前言&#xff1a;前一段时间看到有博友写了爬虫去刷新博客访问量一篇文章&#xff0c;当时还觉得蛮有意思的&#xff0c;就保存了一下&#xff0c;但是当我昨天准备复现的时候居然发现文章404了。所以本篇文章仅供学习交流&#xff0c;严禁用于商业用途当我在写文章的同时&…