首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

导航

导航这种功能应该很常见,早之前就分享过移动端移动端导航简单实现,配合起来就很容易实现可移动的导航,而且不是用hash模式。当然,PC端也能直接用。 先上效果: ?...key][0].offsetTop - this.firstOffsetTop; this.animationScrollTo(document.documentElement, to); }, //点定位动画滚动...如果滑动距离为0的情况下是要处理的,否则滚动条会卡住,之前就是一个变量判断是否大于0,结果滚动条卡住了。...滚动加点动画效果直接用requestAnimationFrame ,一般都兼容,如果不兼容就用定时器,定时器会比较不顺滑。...监听滚动计算滚动的距离是否大于记录的距离,且超过一半就算下一个,菜单上面定位到下一个。

2.7K10

导航滚动吸顶并自动高亮和点击跳转

2021-01-16 07:37:33 在阿里云的云市场页面上有一个效果,就是api导航栏当滚动滚动到其所在位置时,自动吸顶,当滚动到下方所在导航栏指定的介绍时,自动高亮其导航栏。...实现方法 正常情况下我们点击自动定位到其所在位置一般用id的方式,但是这种方式有一个缺陷就是无法实现滚动条缓动效果,而且带url上还会通过hash的方式显示出ID,另外也无法实现滚动到内容所在位置自动高亮导航栏...这样我们就实现了通过滚动条来控制导航栏高亮的效果了,接下了我们要实现的便是点击导航栏自动定位到其所在内容。...无法定位到最下方,结果导致程序无限循环的bug, 通过下面的代码应该可以明白此变量的意义*/ let prevScrollTop = null; let isToTop = false;//点击滚动条是向上还是向下...,并超过导航栏位置自动吸顶效果,同时点击导航滚动条缓动至位置,实现的最终效果可以看阿里云市场详情页中的效果,比他显示的效果多了滚动条缓动效果

10.5K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    vue+element跳转+自动感应导航

    最近来个需求,要做一个页面,每个模块都是百分百全屏且右侧有个导航栏能自动感应在哪个模块,点击也能直接跳转到该。 其实难点也就那几个,慢慢捋一下就好,话不多说上代码!!...1、跳转且点击哪个会模块右侧导航栏就会高亮 我这个导航栏是因为未来增加模块以免还要自己手动加了就直接调接口循环了,如果是固定的直接写死也行,看见那个:key=“key”了没,对,你想的没错,跟那个没关系...2、关于翻页自动感应 思路 前面说了,我们是使用index来控导航栏中哪个模块高亮的 当鼠标往下滚动时让整个页面往下滚动整个页面的高度且index加一反之减一 具体实现 <div @mousewheel...呃…想详细了解的朋友自行百度哈,这里不过多赘述 当鼠标向下滚动时我们使用 window.scrollTo(x,y); 来让页面进行滚动且让index加一反则减一 这样一来就能实现导航栏的自动感应了 但是要注重几个细节问题...第一、当你到达了顶部或者底部时需要重置你的index 第二、你加的高度变量要重置 第三、滚到底部或者顶部时需要取消终止滚动函数 以上就是自动感应导航栏的实现了,如果有不明白的朋友可以评论或者私信讨论

    2K50

    【组件篇】ionic3分组索引及滚动列表

    先前写过另一篇文章《ionic3开源组件》,里面有一个分类我其实没怎么用过: 滚动列表 ionic2-alpha-scroll ionic2-indexed-scroll ionic3-index-list...——群里有人发就补充上来了 其中有不少人私信我,说ionic3-index-list有问题,我没理,今天又有人和我说,于是我简单看了下源码,没发现什么问题(后来发现个原有组件不能动态刷新栏的Bug)...所以花了几分钟,在大部分沿用原来代码的基础下,简单改动了下: 移除多余的ion-index-cell; ion-index-section修改为index-group,并替换为官方list的相关组件; 修改滚动逻辑...; 修改原有组件不能动态刷新栏的bug; 代码为index-list(原来代码基本没动,只改动滚动逻辑)和index-group(重新实现)共两个组件,所以会发现两种不同的代码风格。..., templateUrl: 'index-list.html' }) export class IndexListComponent { _indexes: any[] = []; //右侧导航

    1.5K20

    JS魔法堂:通过marquee标签实现信息滚动效果

    根据信息滚动效果我们可以有很多的实现方式,但HTML自带的 marquee标签 是其中一个较简单的实现方式。下面记录一下,供日后查阅。...值alternate 表示在两端之间来回滚动; 值scroll 表示由一端重复滚动到另一端,为默认值; 值slide 表示由一端不重复地滚动到另一端。  direction , 滚动的方向。...loop ,滚动的次数。默认值-1表示一直滚动。 scrollAmount , 设置一次滚动的步长。默认值为6, 当设置为负数时将采用默认值进行滚动。..."> 滚动的消息 四、总结                                     当我们只需实现当条特别公告等简单信息滚动效果时,marquee标签是一个很不错的选择...(虽然HTML5中已经将其废除并建议使用CSS3动画效果代替)

    4K70

    React项目中如何实现一个简单的目录定位

    前言 目录定位功能在长页面和文档类网站中非常常见,它可以让用户快速定位到页面中的某个章节 如何在React中实现点定位和平滑滚动 目录自动高亮的实现思路 处理顶部导航遮挡的解决方案 服务端渲染下的实现方案...behavior:'smooth'可以启用平滑滚动效果点定位和目录联动 很多时候,我们会在页面中实现一个目录导航,可以快速定位到各个章节。...此时就需要实现点定位和目录的联动效果: 点击目录时,自动滚动到对应的章节 滚动页面时,自动高亮正在浏览的章节 目录导航组件 目录导航本身是一个静态组件,我们通过props传入章节数据: function...问题解析 遮挡问题 有时会被固定的Header遮挡,此时滚动会定位到元素上方,用户看不到对应的内容。...但是在Next.js的SSR环境下就会有问题: 点击目录链接时,页面不会滚动。 这是因为在服务端,我们无法获取组件的ref,所以元素不存在,自然无法定位。 滚动页面时,目录高亮也失效。

    1.1K20

    scroll-behavior & scrollIntoView 的使用,以及解决ios手机不兼容的问题

    前言 在平时的日常开发中,我们可能会遇到这样的需求,点击一个导航链接,页面会定位到一个元素或上去。如下图vue官网所示,我点击左侧导航栏链接,右边会定位到相应的位置。...但是这种定位效果过于生硬,没有平滑滚动效果,直接用的形式就能实现。如果我们需要有平滑滚动效果,就得自己去写滚动效果,不仅效率不高可能效果还不太理想。...一、scroll-behavior MDN上是这么介绍该css属性的:当用户手动导航或者 CSSOM scrolling API 触发滚动操作时,css属性 scroll-behavior 为一个滚动框指定滚动行为...但有的时候,我们就是想要ios手机也能兼容平滑滚动效果,对此,我们可以使用js中的scrollIntoView和smoothscroll-polyfill插件解决该问题。...二、scrollIntoView 它的作用跟scroll-behavior属性是一样的,只不过是用js去实现,并且实现的效果更多。

    3.2K10

    marquee一行代码实现滚动跑马灯效果无需js

    网站设计案例展示一般用幻灯片切换会比较高大上,但这需要用到js,第三方博客等网站不支持外嵌js,或者有些网友不知道怎么用,有一种方法可以解决,用标签,可以实现多种滚动效果...,无需js控制。...marquee标签不仅可以滚动文字,也可以滚动图片,表格等,而且使用起来方便快捷,节省了不少时间。实现效果可以看右侧栏。怎么用呢?...          2.behavior:滚动方式(包括3个值:scroll、slide、alternate)             说明:scroll:循环滚动,默认效果;slide...          4.scrolldelay:设定滚动两次之间的延迟时间,值大了会有一步一停顿的效果(设置滚动的时间间隔,单位是毫秒)             语法:<marquee

    5.9K50

    0行JS,30行css搞定导航栏下划线跟随效果

    在码代码之前了,我们可以尝试思考一下上面的效果或者动手尝试一下,不借助 JS ,能否巧妙的实现上述效果? 在这之前了,有一次需求就是实现这个效果,我是用js实现的。...解析 我们定义一下简单的规则,要求如下: 1、假设 HTML 结构如下: Web秀 CSS导航栏 今日头条...同理,当从导航的右侧 li 移向左侧 li,下划线从右往左移动。 看整个效果,我们不知道如何做起的时候,我们先一步一步来,先完成前2个效果。...额,这时候的效果并不对,好像缺少了过渡效果,很僵硬。于是添加过渡效果。 li::before { ......transition: 0.2s all linear; } 于是,就有了这个效果。细心的小伙伴是不是发现,效果还是不对了?如果看不出来的小伙伴,可以把过渡效果时间设置长一(0.5s)。

    3.3K20

    基于iframe的移动端嵌套

    外部的页面使用width=device-width,而引用的其中一个页面的width=640,这导致那个页面渲染的时候无法全屏缩小 3.ios下其中的一个页面莫名其妙的扩大 4.iframe的页面a标签的失效...1.嵌入的iframe页面无法滚动 在iframe外层包裹一个div,然后将其设置为可滚动 并且在禁止浏览器的默认行为,不然类似于微信滑动到底部的时候会和回弹的效果进行冲突 $('body').on('touchmove...我的解决办法是在原项目下页面html,body依旧设置为100%,而初始化的时候js获取屏幕的宽度再设置body的宽度。...4.iframe的页面a标签的失效 若iframe不涉及跨域,网上有兼容代码可以重新设置a标签,跨域解决不了,因为跨域的情况下,外部页面是无法获取到iframe下的元素的,最后这个导航做了外部跳转。

    3.7K60

    页面中元素的点定位

    这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情 >> [点定位] 点击相应的按钮,页面滚动到相应的位置,目前我知道实现该功能的方式有两种: 使用a标签定位 使用js模拟点定位...模拟点定位] 通过js获取元素的scrollTop值,使其滚动到指定的位置,就能实现点定位效果,这里的tab切换选项,用到是的element-ui的el-tabs组件,具体实现如下: <!...= parseInt(e.index); //给定一个标识,事件不触发滚动 this.isScroll = false; this.isChange = false;...,同时还支持动态效果,但是不支持配置滚动到距离顶部的距离,会出现遮罩现象,但是很适合做会到顶部的功能 [性能优化] 页面中读取属性会导致页面reflow(下次会对导致页面reflow和repaint 的操作做一个总结...如果产品可以接受效果有延迟,就可以使用节流函数控制在一定时间内只执行一次函数(节流函数可以使用lodash.js 封装好的 throttle 方法)

    2K70
    领券