·

Vue - Go to anchor smoothly without changing url

发布时间:2024-04-30 16:52:12阅读量:401
专业文章
转载请注明来源

In Vue.js, we can define an anchor by RouterLink or HTML tag <a> , while in Nuxt.js, we can additionally use NuxtLink which is similar to RouterLink .

<a href="#content">My Link</a>
<RouterLink to="#content">My Link</RouterLink>
<NuxtLink to="#content">My Link</NuxtLink>

However, on loading a page, the above ways would change the url which makes it slow to go to #content . To speed up anchor link and not change the url, there are two ways.

The first way is to use pure javascript method scrollIntoView to scroll to the specified div id, which is fast and would not change url.

function scrollSmoothTo(Id) {
  var node = document.getElementById(Id);
  node.scrollIntoView({

    behavior: 'smooth'
  });
}

<a @click="scrollSmoothTo('content')">
  Scroll to userdiv
</a>
<RouterLink @click="scrollSmoothTo('content')">
  Scroll to userdiv
</RouterLink>
<NuxtLink @click="scrollSmoothTo('content')">
  Scroll to userdiv
</NuxtLink>
<div id="content">
   example
</div>

Note that adding behavior: 'smooth' can add animation when scrolling. However, using this way, a could not have attribute href, i.e.

<a href="#content" @click="scrollSmoothTo('content')" />
<RouterLink  href="#content" @click="scrollSmoothTo('content')" />
<NuxtLink href="#content" @click="scrollSmoothTo('content')" />

would not perform the click event. This is not SEO friendly.

Therefore, the second way is the improvement of the first that is SEO friendly, which can smoothly go to #content without changing the url. We should use Vue's event modifiers for v-on.

<a href="#content" @click.native.prevent="scrollSmoothTo('content')">
  Scroll to userdiv
</a>
<div id="content">
   example
</div>

This way, we could prevent the default href action when clicking and perform the scrollSmoothTo function. However, It seems that using RouterLink or NuxtLink in the same way could not prevent the default action, i.e.

<RouterLink href="#content" @click.native.prevent="scrollSmoothTo('content')">
  Scroll to userdiv
</RouterLink>
<NuxtLink href="#content" @click.native.prevent="scrollSmoothTo('content')">
  Scroll to userdiv
</NuxtLink>

not work.

0 人喜欢

评论区

暂无评论,来发布第一条评论吧!

弦圈热门内容

GTM023 W.H.Greub线性代数经典教材:Linear Algebra

这本教材是我高中时期入门线性代数的主要教材,我的很多基础知识都来源于这本书,如今看回这本书可以说满满的回忆。这本书可以说,是我读过的内容最为全面且完备的线性代数教材了。而且它的语言风格非常的代数化,没有什么直观可言,以抽象为主,表述简练、知识密度高。总之,真的太对我的胃口了,我当时是挺喜欢看这本书。这本教材跟其他线性代数教材一样,先从最基本的向量空间开始讲起,但不同的是,它这里还应用了群论的知识。紧接着这本书以代数抽象的形式讲矩阵和行列式,尤其是行列式,书中的描述直达其代数本质,这是我当时印象挺深刻的。接着书本还继续往外拓展,讲到与向量空间相关的一些概念,如泛函分析中的内积空间,同调代数中的代数和同调。总之,这本书对初学者有一点小门槛,适合喜欢挑战难度、喜欢看高水平读物的初学者看。

QQ频道AI视频泛滥?未来互联网上会充斥着AI生成的垃圾视频吗?

QQ这段时间感觉AI视频比以前多了,而且更主要是现在QQ还给AI视频推流了,可以说举措完全跟其他平台不同。以往QQ上的AI视频,基本上都是没流量的,现在给流量扶持,势必会导致AI视频进一步泛滥。其他平台像知乎、公众号、推特,发AI生成的内容,其实是会直接限流的。昨天我在知乎上发一篇AI生成的小说,创作声明了AI写的,结果直接零流量,阅读量1应该就是我自己吧。而在推特上发东西,如果用Gemini修改你自己写的语句,发上去也会被限流。小红书我没试过,之前看那种AI美女的笔记也挺泛滥的,不过后来我举报过以后就基本没看到了,也不知道是不是算法问题,还是小红书算法更新了。总之,小红书也是不鼓励AI生成的。说实话就没几个平台真的会鼓励AI生成的内容,只有极少数幸运儿会得到流量,毕竟说实话绝大多数AI内容都惨不忍睹,我其中最讨厌的就是那种AI美女图片,现在还多了视频,真的恶心,关键是居然还有人会看?尤其是QQ视频,之前还不给AI内容推流,现在直接开始推流了,更加惨不忍睹,关键是还不少人评论互动。如果是我,肯定直接不点,流量都懒得给它。AI视频如果仅仅只是整活那种,那还勉强能接受,但是我更喜欢那种混剪 ...

我开发的宇宙级APP竟然成为了其他世界的系统

陈木是弦圈一名默默无闻的全栈程序员,他每天身兼多职,任劳任怨地工作,既负责网站前端的开发与维护,又得兼顾后端的开发与维护。前段时间,陈木又接到了新的任务,要求他负责弦圈APP相关的开发工作 计划开发弦圈的桌面端版和APP版。于是,陈木在挑选了众多技术与框架后,选择了使用Universal React Native Pro Max进行APP的开发,这是一个近期在全世界都很火的框架。Universal React Native是基于传统的React Native通过最新的universal技术[1]进一步迭代升级,从而能达到用React Native语言开发任何东西原生的一个技术框架,而Pro Max则是它的超级升级版,你甚至能用它编程纳米机器人和可控核聚变引擎。开发的日子时间总是过得飞快,眨眼间就过了几万年,陈木头发都秃了,才终于从工作中缓过来。这时陈木也收到放假的通知 弦圈APP先开发到这里......,他松了口气,终于可以放松一下,并开始着手考虑自己一直以来的设想——开发一个宇宙级APP。所谓的宇宙级APP数亿年以来,一直都是各大星域争相竞争的研究对象,指的是通过开发宇宙级API接口 ...

如何激怒一位数学爱好者?

知乎提问:如何激怒一位数学爱好者?我的回答:我初三乃至高中想要自学高等数学的时候,像“学数学有什么用?”、“纯数学有什么实际应用吗?”、“你一个做数学的连这么简单的计算都不会?”这些话及其变式,确实有可能让我非常不爽。到了高三乃至本科这个阶段,像“名词党”、“你知道什么相关的例子吗?”、“你需要知道更多具体的数学”、“你问的问题太trivial”、“你看这个内容需要要看这么久?”、“你不是做数学的”等等这些话及其变式,都会让我觉得非常不爽。当然这是之前会感到不爽,直到我开始独立做研究、写论文,真正开始做数学后,才发现这些话要么都是单纯的p话、要么是正确的废话,总是如今是完全不在意。说这些话的人,本身水平如何也要画个大大的问号,有些人连学术产出都没有就喜欢到处指点江山、误人子弟。这时到了做数学阶段,记忆中曾经让我不爽的话,包括“你的论文好像notes啊”,然后就是投稿时审稿人的冷淡回应,如“你的论文不适合本期刊”、“你的论文in general non sense”。直到后来我的论文也得到某些人认可后,我也明白在纯数学什么东西是对的、什么理论是重要的有时候是一件非常主观的事情。最近能让我 ...

世界婴儿危机,我们要被婴儿淹没了吗?(故事线)

我打算补全一下之前写的 世界婴儿危机,我们要被婴儿淹没了吗?的故事线,这个故事的灵感源于一次在微信上跟朋友聊天,我突发奇想下说出来的。当时记得是在讨论泡菜国的一则新闻,水里检测出伟哥的成分超标😅。然后我直接展开想象,原本我很想把故事像小说那样一章一章的全写出来,但奈何我的文笔真的有限,我语文一向不太好,每写一点就像挤牙膏一样特别难受。不过这么有趣的故事就这么荒废在那了,我觉得很是心疼,即便自己文采不行,不能把细节刻画好,还是把故事线理一理吧。第一章 危机开始泡菜国H市,有一条河名为“生命之河”,它原本清澈见底,但如今因为泛滥的伟哥成分,而变得“浑浊”,晚上河面上散发着“诡异”的光芒。这本是一个平常的晚上,但是泡菜国的年轻人像打了鸡血一样,免疫了伟哥的副作用开始以一天七次的频率疯狂造娃。由于每次都一发入魂,泡菜国的新生人口直接开始暴增,出生率轻松超过了人类历史最高记录。很快这也引起了政府的注意,然而政府不仅对此十分冷淡,直接打算坐视不管,他们认为这次婴儿潮危机会很快过去,泡菜国总统还忙着处理他的弹劾案件呢。泡菜国也因为这次史无前例的婴儿潮事件,沦为全世界的笑柄,其他国家的人纷纷落井下石, ...

在下22岁打算毕生献身于攻克黎曼猜想,可以给我一句忠告吗?

知乎提问:在下22岁打算毕生献身于攻克黎曼猜想,可以给我一句忠告吗?我的回答:在我看来数学研究者执着于攻克某个猜想、某个问题,除了名利外,毫无意义。比起关注某个著名的open question,还不如多些关注数学本身,解决问题也罢、构建理论也罢,所有这一切不过是为了数学的发展罢了。即便你对黎曼猜想真的很感兴趣,也没必要毕生都花费在这上面,得在合适的时机干合适的事情。怀尔斯很小的时候就被费马大定理所吸引,但他最后也是在代数几何领域有了突破性进展后,觉得是时候了才选择攻克费马大定理。有句话叫“站在巨人的肩膀上”,个人是渺小的,很多时候你总是夸大了个人的作用。想要攻克黎曼猜想这种级别的问题,需要好多代数学家们的努力。因此,与其执着于这个虚无缥缈的猜想,还不如着眼于当下,先解决当下的数学问题,发展当下的数学理论。只有这个做好了,你才有资格挑战黎曼猜想。

AI写小说:陈默重生(版本一+版本二)

这篇短文出于今年6月份,故事线是自己写的,内容是AI输出的,可以发现质量并不怎么好,AI总是get不到我的点,老是差么点,达不到我的要求和期望。经过几个月的改进,现在的AI应该好些了吧。版本一陈默坐在高三的课堂上,心中却是翻涌着前世的记忆。他曾是鸿蒙神,统领亿万星域,仅差半步就能踏入传说中的灭神境。然而,在突破的关键时刻,他意外陨落,重生回到了这个看似平凡的高三时期。这个世界与他前世的修仙界截然不同,这是一个属于职业者的世界。人们通过转职仪式来觉醒自己的职业天赋,从而决定未来的道路。陈默深知,他即将面临的转职仪式,对他来说不仅是一次重新选择的机会,更可能是他重拾前世力量,再次踏上巅峰的起点。随着校长慷慨激昂的演讲落幕,转职仪式正式开始。同学们怀着紧张与期待的心情,一个个走上转职阵法,去迎接他们命运的转折。然而,对于大多数人来说,转职结果都是普通的职业,虽然让他们有些失望,但也只能接受现实。终于轮到了陈默。他站起身,深吸一口气,稳步走向转职阵法。当他将手放在觉醒石上的那一刻,他感受到了一股前所未有的能量波动。紧接着,天地间突发异象,黑云笼罩了方圆数十万公里,仿佛要将整个世界都吞噬进去。老 ...

弦圈APP先开发到这里......

这段时间心血来潮,打算开发一下弦圈的手机端APP,这样网站和APP都齐全了。就像数学那种完美无缺的感觉一样,我一直都把弦圈当作做数学那样去做它。之前我在评论区也说过,一直以来都是我自己一个人搞,个人精力有限,因此很多事情进展会比较缓慢。这个APP也是真的难写,手机的环境和网站完全不同,我原先写的代码肯定也是用不上的了,因此也是重新写一套APP的代码。图五为弦圈APP的部分代码,用的是React native写的。我之前写弦圈用的是Vue+Nuxt写的,从零开始自学写的花了六个月时间。现在写这个APP估计也至少需要一个月的时间。写这代码比我当初敲LaTeX写论文还累,这种累主要是身体体力上的累(写代码真的是苦力活),而写论文更多是脑子比较累,因为烧脑,但是我更擅长应对脑力疲劳。毕竟十几岁开始高强度学数学,烧脑对我来说习以为常,真的没什么。除了写代码,我还得运营。这段时间一直专心写代码也没怎么运营网站和社媒了,现在得先放一放APP开发了,不然网站的人气都散了😅。