使用锚点定位不改变url同时平滑的滑动到锚点位置,不会生硬的直接到锚点位置

对前端来说锚点是一个很好用的技术,它能快速定位到预先埋好的位置。

但是美中不足的是它会改变请求地址url,当用户使用了锚点的时候锚点的名称会被添加到url的最后面。

就像这样:

此时如果用户刷新页面便会报错或者显示不出来刷新前的页面,

同时点击锚点时是非常生硬的直接跳转到锚点位置,没有任何过渡效果

我今天做项目的时候也算是钻研出来了!!!

使用锚点时不会改变url请求地址,同时还很平滑的滑动到锚点的位置

话不多说,直接上代码

<!-- 先定好几个用于点击的锚点 -->
<a @click="clickanchor('#item0')"></a>
<a @click="clickanchor('#item1')"></a>
<a @click="clickanchor('#item2')"></a>
<a @click="clickanchor('#item3')"></a>
<a @click="clickanchor('#item4')"></a>
<a @click="clickanchor('#item5')"></a> <div id="item0"></div>
网上的方法JS为
clickanchor(idName) {
document.querySelector(idName).scrollIntoView(true);
}

querySelector用于选择元素,具体可看文档  HTML DOM querySelector() 方法

element.scrollIntoView()方法让当前的元素滚动到浏览器窗口的可视区域内

这样的确是可以使用锚点定位而且也不会改变url,

但是还是没有过渡效果,非常的生硬

介绍CSS的新属性   behavior: "smooth"  用于平滑滚动

同时这个新属性还有其他几个属性  behavior : " smooth "

当在JS里面使用了这个元素时,便可以非常平滑的过渡到锚点位置

方法为:

clickanchor(idName) {
document.querySelector(idName).scrollIntoView({ behavior: "smooth" });
}

这样使用锚点真的太舒服了,是不是对锚点的喜欢又更上一层楼了【奸笑】

完~

使用锚点定位不改变url同时平滑的滑动到锚点位置,不会生硬的直接到锚点位置的更多相关文章

  1. 锚点定位且不改变url地址

    锚点定位且不改变url html 事件触发<li v-for="(item,index) in couponsList.swaps" :key="index&quo ...

  2. 通过history.pushState无刷新改变url

    通过history.pushState无刷新改变url 背景 在浏览器中改变地址栏url,将会触发页面资源的重新加载,这使得我们可以在不同的页面间进行跳转,得以浏览不同的内容.但随着单页应用的增多,越 ...

  3. 页面添加锚点后如何点击不改变URL?

    直接奔主题,前端简单地锚点实现方法大家都会,无非就是在把 a 标签的 href 写成想要跳到的元素的id ,比如点击 <a href="#box"></a> ...

  4. history.pushState无刷新改变url

    通过history.pushState无刷新改变url 背景 在浏览器中改变地址栏url,将会触发页面资源的重新加载,这使得我们可以在不同的页面间进行跳转,得以浏览不同的内容.但随着单页应用的增多,越 ...

  5. 不刷新改变URL: pushState + Ajax

    如果你玩过Google+,看到过YouTube的新界面,便会体验到这个HTML5的新功能.使用pushState + Ajax(pjax),可以实现网页的ajax加载,同时又能完成URL的改变而没有网 ...

  6. html中设置锚点定位的几种常见方法(#号定位)

    在html中设置锚点定位我知道的有几种方法,在此和大家分享一下: 1.使用id定位: <a href="#1F">锚点1</a> <div id=&q ...

  7. 【TRICK】解决锚点定位向下浮动Xpx问题

    1. 问题描述 页面滚动后,菜单栏会固定在页头,当锚点定位时,菜单会遮盖部分定位后的内容,所以需要在锚点定位后自动向下漂移Xpx. 2. 解决办法 a. 利用空div 占位,如下: <a hre ...

  8. 当锚点定位遇上position: fixed

    <!DOCTYPE html><html> <head> <title>当锚点定位遇上position: fixed</title> < ...

  9. Android tabLayout+recyclerView实现锚点定位

    原文链接:https://mp.weixin.qq.com/s/L3o2i3WTmg1ScXEYDS8YCg 在上一篇文章 Android 实现锚点定位中,我们介绍了tablayout+scrollV ...

随机推荐

  1. Coursera课程笔记----计算导论与C语言基础----Week 7

    C语言中的数据成分(Week7) 内存 把内存想象成长带,带子上有许多方格,每个方格有8位(8bit) 2^10 = 1024 1B = 8 b 1KB = 1024Byte MB.GB.TB.PB- ...

  2. Qt 视频播放器

    #include <phonon/VideoPlayer> #include <phonon/SeekSlider> #include <phonon/MediaObje ...

  3. JS字符串截取 “指定字符” 前面和后面的内容!

    JS字符串截取 “指定字符” 前面和后面的内容! var string= "07/12" var before = string.split('/')[0] var after = ...

  4. search(13)- elastic4s-histograms:聚合直方图

    在聚合的分组统计中我们会面临两种分组元素类型:连续型如时间,自然数等.离散型如地点.产品等.离散型数据本身就代表不同的组别,但连续型数据则需要手工按等长间隔进行切分了.下面是一个按价钱段聚合的例子: ...

  5. java ->Servlet接口

    JavaWeb核心之Servlet Servlet简介 什么是Servlet(控制器的作用) Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求.响应给 ...

  6. 前端面试题-WebSocket的实现和应用

    (1)什么是WebSocket? WebSocket是HTML5中的协议,支持持久连续,http协议不支持持久性连接.Http1.0和HTTP1.1都不支持持久性的链接,HTTP1.1中的keep-a ...

  7. Winform GDI+ 绘图一:绘制2D电池

    winform桌面软件开发,在工业控制领域的使用还是很广泛的,打算好好学习一下GDI+绘图.以前都是用别人的轮子,自己也打算封装一些工业控制领域常用的控件. 今天要将的是,利用缓动函数动态绘制电池. ...

  8. 开始写博客的第一天,如何用c实现“hello wolrd”

    “hello world” 应该是大多数人学习的第一个代码 那也就作为我第一篇博客的开端吧 实现的代码如下 #include <stdio.h> int main() { printf(& ...

  9. noi7219 复杂的整数划分问题

    noi7219 复杂的整数划分问题 #include <bits/stdc++.h> using namespace std; ; int dp1[maxn][maxn], dp2[max ...

  10. ES6---面向对象上的简化

    一.ES6---面向对象上的简化 1.单个对象提供了2处简化: 1.1 如果对象的属性来自于对象外的变量,且变量名刚好和属性名相同.则不用写两遍相同的名字, 只要写一遍即可. 1.2 所有对象的方法, ...