页面点击锚点后不改变URL的方法

2023-11-18

前端简单地锚点实现方法无非就是在把 a 标签的 href 写成想要跳到的元素的id ,比如点击<a href="#box"></a>页面就会自动滚动到 <div id="box"></div> 元素的位置。

这样会导致url会改变,浏览器默认的行为会将 id 放在 url 后面。比如:http://www.xxx.com#box

当存在多个锚点的时候,我们会突然发现用户点击浏览器后退按钮并不会跳转太之前的页面,而是放回上一个带有锚点的链接.

解决办法: 把a标签替换掉,或者不加href,把要点击的按钮绑定一个点击事件.

//给想要点击的元素绑定事件并传入要跳到元素的id
//因为项目使用Vue就直接写@click
<a @click="changeHash('#test')"></a>
//不是Vue时
<a onclick="changHash('#test')"></a>

//使用document.querySelector实现锚点的效果
changeHash(idname) {
    document.querySelector(idname).scrollIntoView(true);
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

页面点击锚点后不改变URL的方法 的相关文章

随机推荐

  • 静态路由及默认路由——基本配置

    拓扑图 原理简述 1 静态路由 是指用户或网络管理员手工配置的路由信息 当网络拓扑结构或链路状态发生改变时 需要网络管理员手工配置静态路由信息 相比较动态路由协议 静态路由无需频繁的交换各自的路由表 配置简单 比较适合小型 简单的网络环境
  • el-switch在按钮内加文字内嵌文字

    产品需求 在按钮内内嵌对应操作文字 原生展示效果 升级展示效果 解决方案 按钮
  • %d, %ld, %lld 区别, %s,%c区别

    相信下面几个表达方式 就能说明问题吧 d int ld long lld long long 在32位编译器上 int long 32bit long long 64bit c是单个字符 也就是用 的 s是字符串 用 的
  • 深入理解SSL VPN

    名词解析 SSL Secure Socket Layer 安全套接字层 TLS Transport Layer Security 传输层安全协议 TLS 1 0是IETF Internet Engineering Task Force In
  • docker-6-docker架构和MySQL容器化的优劣

    1 docker架构 1 开发环境 gt 测试环境 gt 生产环境 2 环境和代码一起放在容器中 解决软件跨环境迁移问题 3 Docker是一个开源的应用容器引擎 4 Docker于2013年基于Go语言实现 5 Docker从17 03版
  • vbox 安装linux64,CentOS 5.8 x64安装VirtualBox-5.0虚拟机

    CentOS 5 8 x64安装VirtualBox 5 0虚拟机 根据自己的环境下载相应的安装包 1 下载并安装for el5 virtualbox虚拟机安装包 安装过程如下 缺依赖包 root lvmtest rpm ivh Virtu
  • html中报错:xxx is not a function

    我今天遇到了一个奇怪的问题 在javascript中写好了一个function 而且之前是可以调用的 例如 在onclick事件中调用 可是新增了一部分代码 也用了onclick调用 但是报错了 不能执行 一直说是xxx is not a
  • JAVA动态生成excel模板;列自定义下拉框赋值

    哈喽 2023大家开工大吉啊 财源滚滚 业务需求 需要生成excel模板 且对部分列设置下拉框 进行动态赋值 效果如下 拿上图举例 针对省这一列 不是填写 而是选择数据 也就是说我们生成excel文件的时候需要把数据填充到下拉框的列中 大体
  • 基本模块的总结

    基本模块的总结 请求模块 urllib库 内置库 urllib request request urlopen 网址或者请求对象 向网址发起请求 request Requqest url 网址 headers 请求头 data 请求参数 创
  • 利用java完成图像文字识别和翻译,实现拍照翻译的功能

    需求 利用java完成图像文字识别和翻译 实现拍照翻译的功能 可拆分为以下两个小的功能逐一完成 1 实现图像文字识别 2 将识别出来的文字进行翻译 1 实现图像文字识别 利用Tess4J进行图像文字识别 1 1 为方便集成tess4j的ja
  • Discuz移动接口原理简介

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Discuz论坛内置提供针对移动端开发的json接口 下面根据源码进行一些分析 入口 api mobile index php 功能比较简单 指向source plugin
  • Open Source Game Clones

    Open Source Game Clones This site tries to gather open source reimplementations of great old games in one place If you t
  • 微信开发者工具重定向(请求接口307)问题

    问题描述 在项目中勾选不校验http请求 发起http请求 会出现http请求自动转成了https请求 如图所示请求失败 这是因为微信开发者工具重定向导致的 解决方法 将微信开发者工具账号的配置清空 删除C盘微信开发者工具User Data
  • 解决ElementUI table表格的边框隐藏

    解决ElementUI table表格的边框隐藏 发现问题 解决 写在最后 发现问题 我方产品将于五秒后到达战场 刚在对照原型做项目的时候突然发现了这样一个表格 产品说他的这个数据表表格不要周边的边框 但是中间要边框分隔 嗯 这是什么需求
  • python语言核心技术_python核心技术

    基本语法 Python的设计目标之一是让代码具备高度的可阅读性 它设计时尽量使用其它语言经常使用的标点符号和英文单字 让代码看起来整洁美观 它不像其他的静态语言如C Pascal那样需要重复书写声明语句 也不像它们的语法那样经常有特殊情况和
  • Socket 与 Webservice 的区别

    Socket 与 Webservice 的区别 socket是一种协议 采用tcp或udp协议通信 Tcp udp属于网络层 上边各层的应用都需要我们自己实现 例如端口的定义 数据包的定义 数据包的加密解密等 webservice是一种服务
  • JAVA超大量数据入库

    快速插入1000W万条数据 背景 步骤1 数据库连接 步骤2 插入数据方法 步骤3 调用他就完事了 背景 产品需求 生成一串不重复的号码0 19999999且不能有超过3位以上的豹子号连号 当消耗一半后需要多少秒才能插入一条数据 首先的问题
  • microsoft store 微软应用商店打不开?所有教程都尝试了一遍,居然是因为这个

    所有教程都尝试了一遍 居然是因为这个 此方法适用于 1 平时爱用梯子 2 下面这个浏览器已经不能上网了 3 网上其他教程均不管用的情况 弄了好久 没想到还能弄好 网上的教程我都试了一遍 真的哭笑不得 原理 微软的应用商店联网靠的就是inte
  • 以一个最简单的例子把OO的JavaScript说明白

    OO的JavaScript并不高深 麻烦就麻烦在google出来的国人介绍文章经常罗罗嗦嗦 而且之间的说法还各有不同 摆在一起就让人看了头大 这里重拾简单主义 以一个最简单的例子把OO Javascript说明白 1 一个颇为精简的例子 只
  • 页面点击锚点后不改变URL的方法

    前端简单地锚点实现方法无非就是在把 a 标签的 href 写成想要跳到的元素的id 比如点击 a href box a 页面就会自动滚动到 div div 元素的位置 这样会导致url会改变 浏览器默认的行为会将 id 放在 url 后面