html button跳转页面_HTML跳转到页面指定位置的几种方法

前言

有时候,我们想阅读页面中某段精彩的内容,但由于页面太长,用户需要自己滚动页面,查找起来非常麻烦 ,很容易让人失去继续往下阅读的兴趣。这样体验非常不好,所以我们可以想办法 实现点击某段文字或者图片跳转到页面指定位置,方便用户的阅读。

一、 纯 html 实现

1. 利用 id 为标记的锚点

这里作为锚点的标签可以是任意元素。

  跳转到 id 为 aa 标记的锚点  

-------------分隔线-------------

  
a

2. 利用 a 标签的 name 属性作为锚点

这里作为锚点的标签只能是 a 标签。

  跳转到 name 为 bb 的 a 标签锚点  

-------------分隔线-------------

  name 为 bb 的 a 标签的锚点  
bbb

注意:当以 ' a 标签 name 属性作为锚点 ' 和 ' 利用 id 为标记的锚点 ' 同时出现(即以 name 为锚点和以 id 为锚点名字相同时),会将后者作为锚点。

二、 js 实现

1. 利用 scrollTo()

window.scrollTo 滚动到文档中的某个坐标。可提供滑动效果,想具体了解 scrollTo() 可以看看 MDN 中的介绍。

话不多说,看下面代码

「html 部分」:

  平滑滚动到 c  

-------------分隔线-------------

  
c

「js 部分」:

  var linkc = document.querySelector('#linkc')  var cc = document.querySelector('#cc')  function to(toEl) {    // toEl 为指定跳转到该位置的DOM节点    let bridge = toEl;    let body = document.body;    let height = 0;        // 计算该 DOM 节点到 body 顶部距离    do {      height += bridge.offsetTop;      bridge = bridge.offsetParent;    } while (bridge !== body)        // 滚动到指定位置    window.scrollTo({      top: height,      behavior: 'smooth'    })  }  linkc.addEventListener('click', function () {    to(cc)  });

2. 利用 scrollIntoView()

Element.scrollIntoView() 方法让当前的元素滚动到浏览器窗口的可视区域内。想具体了解 scrollIntoView() 可以看看 MDN 中的介绍。

下面也直接上代码

「html 部分」:

  利用 scrollIntoView 跳转到 d  

-------------分隔线-------------

  
ddd

「js 部分」:

  var dd = document.querySelector('#dd')  function goTo(){    dd.scrollIntoView()  }

注意:此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

下面为了方便看效果,把上面的代码整理在一起。

html>      Document    跳转到以 id 为 aa 标记的锚点 a  

-------------分隔线-------------

  hhh  
aa
  跳转到 name 为 bb 的 a 标签锚点  

-------------分隔线-------------

  name 为 bb 的 a 标签的锚点  

-------------分隔线-------------

  
bb
  平滑滚动到 c  

-------------分隔线-------------

  
cc
  利用 scrollIntoView 跳转到 d  

-------------分隔线-------------

  
dd
  

-------------分隔线-------------

  

效果图:

a25a319526f054f4cf185b18dea62d02.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用计算机新字库打出的文字,为什么用五笔打字有很多字打不出来(GBK和GB2312字库的区别)...

五笔输入法有很多版本,有的版本只能输入GB2312字库中的字(6763个字),大部分版本的五笔输入法能输入GBK字库中的字(21003个字)。所以只要你选用支持GBK字库的五笔输入法,一般的繁体字和偏僻字就能输入了。简单一点的说:两个原因&am…

c语言exit_看了这几个C语言例子,你一定会说5个哇塞,声音一次比一次大

曾经我一直以为自己C语言学的还挺好的,直到看到这几个例子。例1首先来看一下,大师是如何求圆周率的,一口君实在词穷,first哇塞。#include long a10000,b0,c10000,d,e,f[10001],g; void main() { for(;b ! c; f[b] a…

webis个人主页设计_个人网站设计及实现毕业设计论文

知识不仅是指课本的内容,还包括社会经验、文明文化、时代精神等整体要素,才有竞争力,知识是新时代的资本,五六十年代人靠勤劳可以成事;今天的香港要抢知识,要以知识取胜个人网站设计及实现作者:张铎指导教师:刘向娇摘要:网络发展到…

html整合vue elementui,vue2.0结合Element-ui实战案例

前言我们将会选择使用一些 vue 周边的库vue-cli, vue-router,axios,moment,Element-ui搭建一个前端项目案例,后端数据接口,会使用json-server快速搭建一个本地的服务,方便对数据的增删改查,利用以上技术我们会搭建一个vue案例&…

python基本判断语句_python基础4 - 判断(if)语句

6. 判断(if)语句 6.1 if 判断语句基本语法 在 Python 中,if语句 就是用来进行判断的,格式如下: if 要判断的条件: 条件成立时,要做的事情 …… 注意:代码的缩进为一个 tab 键,或者 4…

nginx nodejs环境配置_服务器环境配置安装(mysql+redis+nodejs+nginx)

公司用来测试的服务器挂了,最后重装了系统,需要重新配置程序运行环境,linux上安装不是很熟悉,特此记录一下。首先获取系统版本信息:一、mysql1. 安装安装命令:sudo apt-get install mysql-server在安装过程…

计算机二级考试模拟表单答题,2016年计算机二级考试《VFP》模拟简答试题

1[简答题]1.建立一个表单文件myform,将employee表添加到表单的数据环境中,然后在表单中添加表格控件gridl,指定其记录源类型为“别名”、记录源为employee表文件,最后添加一个“退出”命令按钮控件Commandl,程序运行时…

中兴新支点操作系统_中兴新支点国产操作系统体验报告:使用流畅,性能稳定!...

笔者早就有听闻中兴新支点国产操作系统挺好用的,对配置要求不高,软件不少又没广告,一直想安装尝尝鲜,看看国产操作系统现在发展得怎样了。但是我又怕用不习惯要重装系统太麻烦,最后在朋友的建议下,我在虚拟…

tensorflowgpu利用率为0_直流电压利用率的提高方法-梯形波调制法

接上篇(直流(母线)电压利用率的提高方式-三次谐波注入法):Payton Sun:直流电压利用率的提高方法-三次谐波注入法​zhuanlan.zhihu.com,本篇介绍下另一种经典的提高方式-梯形波调制法 &#xff0…

不同计算机的操作码完全相同,2012年计算机一级考试B试题及答案二

第一部分[13]。 MOS型半导体存储器芯片可以分为DRAM和SRAM两种,其中SRAM芯片的电路简单,集成度高,成本较低,一般用于构成主存储器。[14]。 二进制数10111000和11001010进行逻辑“与”…

python开发信息系统权限设置_利用Python实现权限设置的详细教程

一、私有化的实现 在Python中想定义一个类是比较简单的,比如要定义一个Person类,如下代码即可:当然我们也可以给类添加相应的属性,比如Person的姓名,年龄,性别等,并且在new一个Person对象后可以…

ifamre 大小随页面变_SEO优化中如何让你的页面访问速度更快

页面访问速度对于SEO优化来说是极为关键的一环。我们试想一下,如果某个访客花了几十秒才能打开你网站的首页,先不说这个访客抱着什么访问目的和什么渠道来的,一般正常的访客大概率都会放弃访问这个页面。由此可见,页面的访问速度是…

虚存的用法计算机组成原理,5.5虚拟存储器计算机组成原理.pdf

计算机组 成 原 理在线开放课程01虚拟存储器目录CATALOG01 0302虚拟存储器 虚拟存储器虚 替换算法的基本概念 实地址变换虚拟存储器的基本概念 明德 博学 日新 笃行1、什么是虚拟存储器虚拟存储器只是一个容量非常大的存储器的逻辑模型 ,不是任何实际的物理存储器。…

python报错defined_python问卷星报错NameError: name 'filename' is not defined

[Python] 纯文本查看 复制代码import sys import getopt from fake_useragent import UserAgent from fake_useragent import FakeUserAgentError import requests from bs4 import BeautifulSoup import re import random import time import datetime import os import fake_…

do matlab的 while循环_除了Matlab,基本上所有的语言都有do-while语句吧?的相关推荐_ChinaUnix论坛...

相关讨论有谁在精通c的同时,又对matlab得心应手,问个问题:在matlab中读文件需要注意什么?比如:从一个文件中循环1万次,每次读9个浮点型的数,该如何写代码?我用了fidfopen(u.txt r);for i1:10000;Afscanf(fid,%f,9); %将9个数保存到向量A中............ %进行一些计算;endfclo…

计算机三级数据库上机怎么考,最新计算机三级数据库上机考试试题

最新计算机三级数据库上机考试试题数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。下文为大家搜集整理的是计算机三级数据库技术考试题,希望能帮助大家好好复习,早日通过考试!第一题…

用户表如何区分普通用户和管理员_Gate.io 比特百科:什么是ETH 2.0及普通用户如何参与ETH 2.0质押挖矿...

ETH 2.0是什么ETH 2.0是ETH发展四阶段(1、前沿Frontier 2、家园Homestead 3、大都会Homestead 4、宁静Serenity)中的最后一个阶段。前三个阶段是ETH 1.0时期,而第四阶段ETH1.0正式升级为ETH 2.0,将从PoW工作量证明共识机制升级为P…

swift 原生给h5发消息_Swift - 使用HTML5进行iOS开发(将HTML5打包成iOS应用)

下面简单介绍下如何把HTML5编写的页面编译成iOS应用,以及如何让页面与Swift代码进行交互。(本文代码已升级至Swift3)1,使用UIWebView还是WKWebView来加载html页面原来我们一直使用UIWebView来加载web页面。从iOS8起,苹果提供了WKWebView用来代…

南充一中计算机机房被盗,成都理工大学与南充市第一中学共建优质生源基地

春秋代序立冬过,西河欢歌扬碧波;魅力一中呈诗韵,银杏绽黄迎嘉客。2019年11月14日上午10时,成都理工大学与南充市第一中学共建优质生涯基地的签约授牌仪式在南充一中新区隆重举行。南充一中副校长王洪秀在致辞中对关注南充一中发展…

list循环赋值_Python基础 | 0xd 条件判断与循环

条件判断所谓的条件判断就是根据一条或多条语句的执行结果(True/False)来决定执行那一块的代码。// 条件判断的三个关键字 //Python 使用if、else、elif 三个关键字的搭配来实现判断语句,使用示例如下:# 单分支(只有一个if),如果代码块只有一…