页面添加锚点后如何点击不改变URL?
直接奔主题,前端简单地锚点实现方法大家都会,无非就是在把 a 标签的 href 写成想要跳到的元素的id ,比如点击 <a href="#box"></a> 页面就会自动滚动到 <div id="box"></div> 元素的位置。
那么这样使用会产生一个现象,那就是 url 会被改变,浏览器默认的行为会将 id 放在 url 后面。比如:http://www.xxx.com#box
有的时候可能不会产生任何问题,直接跳转过去立马完成产品的需求,但是当存在多个锚点的时候,我们会突然发现用户点击浏览器后退按钮并不会跳转太之前的页面,而是放回上一个带有锚点的链接比如:
http://www.xxx.com#box2 点击后退时 变成了 http://www.xxx.com#box1 其实还在原来的页面只是改变了 hash 值 ????那用户体验是极差的,甚至不注意观察的用户会以为浏览器出了问题,后退按钮不管用了????
现在就记录一下解决的方法。
把a标签替换掉,或者不加href,我们把要点击的按钮绑定一个点击事件,那么这个点击事件需要做什么的?看下面的代码!
//给想要点击的元素绑定事件并传入要跳到元素的id//因为项目使用Vue就直接写@click<a @click="changeHash('#box2')"></a>
//使用document.querySelector实现锚点的效果
changeHash(idName) {
document.querySelector(idName).scrollIntoView(true);
}
案例:http://www.kaochong.com/course/detail-2264.html
以上就是实现点击锚点后不改变url的方法。
更多专业前端知识,请上 【猿2048】www.mk2048.com
页面添加锚点后如何点击不改变URL?相关推荐
- python123练习题文库_python模拟登录百度文库后如何点击马上签到
这是登录的代码: #-*- coding: UTF-8 -*- import HTMLParser import urlparse import urllib import urllib2 impor ...
- html+a+不刷新页面,前端路由实现:通过pushState()改变URL,同时不刷新页面
本博客不欢迎:各种镜像采集行为,请尊重知识产权法律法规.大家都是程序员,不要闹得不开心. 在前端框架层出不穷的当今时代,页面的变化变得更加具有迷惑性.页面地址变了的话,是否就意味着一定请求了新的页面么 ...
- 如何点击按钮弹出新窗口,输入数据后返回并刷新页面
如何点击按钮弹出新窗口,输入数据后返回并刷新页面? 作者:孟宪会 出自:[孟宪会之精彩世界] 发布日期:2003年7月8日 4点0分13秒 在一些.NET论坛中有人经常会问:如何在页面中点击按钮打开新 ...
- Php点击更换封面,JavaScript_js实现点击图片改变页面背景图的方法,本文实例讲述了js实现点击图 - phpStudy...
js实现点击图片改变页面背景图的方法 本文实例讲述了js实现点击图片改变页面背景图的方法.分享给大家供大家参考.具体实现方法如下: 点击图片即改变页面的背景图片 希望本文所述对大家的javascrip ...
- 刷新浏览器后不进行任何点击操作时,不播放声音 | 解决方案(VUE-Element)
以下代码可能过长,请耐心查阅 前言 最近项目中有播放背景声音的一个功能,后面发现刷新浏览器后,不对页面进行任何点击操作,浏览器不播放声音.作为一个后端开发,突然搞这么一个前端解决方案是有点懵逼的,下面 ...
- php实现删除功能,点击删除弹出确认框,点确定删除数据,点取消返回。删除了商品后总价要相应的改变
1.连接数据库: 2. 订单信息从product数据库下computers表调出不分页显示在网页product.php; 实现删除功能,点击删除弹出确认框,点确定删除数据,点取消返回.删除了商品后总价 ...
- 案例:文件下载需求:1. 页面显示超链接 2. 点击超链接后弹出下载提示框 3. 完成图片文件下载||中文文件问题
文件下载需求: 1. 页面显示超链接 2. 点击超链接后弹出下载提示框 3. 完成图片文件下载 * 分析: 1. 超链接指向的资源如果能够被浏览器解析,则在浏览器中展示 ...
- class h5 点击后样式变化_【php】JQuery怎么实现页面刷新后保留鼠标点击addclass的样式?...
刚开始是这个效果 鼠标点击之后变成了这个效果 要保证实现 a 标签点击链接一个新的网址 同时也要保证效果达到 我目前写的网站代码 可以下载 http://115.com/file/c2zlhblv 看 ...
- 关于微信JSAPI支付成功后,点击完成后没有返回值并且页面被自动关闭问题
微信JSAPI支付成功后,点击完成后没有返回值并且页面被自动关闭 简介 解决方式 错误的处理方式 总结 简介 最近很多人可能都遇到一个问题,在使用微信JSAPI支付成功后,不走成功的回调方法,只有支付 ...
最新文章
- SpringCloud(若依微服务版)读取Nacos中的配置以及多个服务共享Nacos配置的使用
- PHP二维数组排序函数
- 在.NetCore中使用Myrmec检测文件真实格式
- 数据结构和数据类型之间的关系
- sql 超时时间已到.在操作完成之前超时时间已过或服务器未响应.,sqlserver Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应...
- Python基础语法和数据类型最全总结
- FileProvider N 7.0 升级 安装APK 选择文件 拍照 临时权限 MD
- [article]回忆录的开始
- a和a的区别、二维数组的本质及多维数组
- bresenham算法画圆mfc实现_kd-tree理论以及在PCL 中的代码的实现
- 软件测试类型方法步骤英语,软件测试类英文面试题
- 活动验证码/兑换码生成
- 基于Matpower的电力系统潮流计算设计原理
- vs13配置matlab,VS配置电脑系统变量(VS2013+matlab2018a)
- GHOSTXP_SP3电脑公司装机特别版 V30.0[NTFS]
- 前馈pid系数_前馈PID控制
- 1 - 整洁代码 - 代码整洁之道
- fits文件的读取与查看
- 使用第三方GitLab进行登录认证
- unity跑酷怎么添加金币_【Unity3D实战】零基础一步一步教你制作跑酷类游戏(填坑完整版)...
热门文章
- c语言程序设计常用语句格式,全国计算机考试二级C语言程序设计要求
- 得到指定进程所有窗口。显示 影藏 置顶。
- [Sdoi2010] 地精部落
- Error:The supplied javaHome seems to be invalid. I cannot find the java executable
- python全栈-Day 1
- ES6 各浏览器支持情况
- Servlet - cookie、session、servletContext概述
- dos命令查看oracle_home,Oracle - OraDb10g_home1配置方法+DOS命令
- timespan怎么比较大小_钻石吊坠回收怎么选择大小?
- 线程同步机制:互斥量、信号量、读写锁、条件变量