实现锚点跳转

实现锚点跳转要使用:a标签的href属性 + 其它某一个标签的id属性

  • 设置某个标签的id属性
  • a标签的href属性设置为:# + 想要跳转位置的标签的id属性
<a href="#abc">点击跳转</a>
......
<div id="abc">将要跳转到这里</div>

案例:下方的代码只需要关注h2标签和里边的a标签。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>22.location</title>
  <style>
    * {
     
     
      padding: 0;
      margin: 0;
    }

    .container {
     
     
      width: 70%;
      margin: 0 auto;
      border: 1px solid red;
      padding: 0 50px;
    }

    h2 {
     
     
      padding: 20px 0;
      border-bottom: 1px solid gray;
      margin-top: 50px;
    }

    a {
     
     
      text-decoration: none;
      color: black;
    }

    .header-link:hover {
     
     
      color: #007fff;
    }

    p {
     
     
      margin: 20px 0;
    }

    ul {
     
     
      margin: 0;
      padding: 0;
    }
  </style>
</head>
<body>

<div class="container">
  <button id="btn">滚动</button>
  <h2 id="Vue.js 是什么">
    <a href="#Vue.js 是什么" title="Vue.js 是什么" class="header-link">Vue.js 是什么</a>
  </h2>
  <p>Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue
    的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。</p>
  <p>如果你想在深入学习 Vue 之前对它有更多了解,我们制作了一个视频,带您了解其核心概念和一个示例工程。</p>
  <p>如果你已经是有经验的前端开发者,想知道 Vue 与其它库/框架有哪些区别,请查看对比其它框架。</p>

  <h2 id="起步">
    <a href="#起步" title="起步" class="header-link">起步</a>
  </h2>
  <p>官方指南假设你已了解关于 HTML、CSS 和 JavaScript 的中级知识。如果你刚开始学习前端开发,将框架作为你的第一步可能不是最好的主意——掌握好基础知识再来吧!之前有其它框架的使用经验会有帮助,但这不是必需的。</p>
  <p>尝试 Vue.js 最简单的方法是使用 Hello World 例子。你可以在浏览器新标签页中打开它,跟着例子学习一些基础用法。或者你也可以创建一个 .html 文件,然后通过如下方式引入 Vue:</p>
  <p>安装教程给出了更多安装 Vue 的方式。请注意我们不推荐新手直接使用 vue-cli,尤其是在你还不熟悉基于 Node.js 的构建工具时。 如果你喜欢交互式的东西,你也可以查阅这个 Scrimba
    上的系列教程,它揉合了录屏和代码试验田,并允许你随时暂停和播放。</p>

  <h2 id="声明式渲染">
    <a href="#声明式渲染" title="声明式渲染" class="header-link">声明式渲染</a>
  </h2>
  <p>Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统:</p>
  <p>我们已经成功创建了第一个 Vue 应用!看起来这跟渲染一个字符串模板非常类似,但是 Vue 在背后做了大量工作。现在数据和 DOM 已经被建立了关联,所有东西都是响应式的。我们要怎么确认呢?打开你的浏览器的 JavaScript
    控制台 (就在这个页面打开),并修改 app.message 的值,你将看到上例相应地更新。</p>
  <p>注意我们不再和 HTML 直接交互了。一个 Vue 应用会将其挂载到一个 DOM 元素上 (对于这个例子是 #app) 然后对其进行完全控制。那个 HTML 是我们的入口,但其余都会发生在新创建的 Vue 实例内部。</p>
  <p>这里我们遇到了一点新东西。你看到的 v-bind attribute 被称为指令。指令带有前缀 v-,以表示它们是 Vue 提供的特殊 attribute。可能你已经猜到了,它们会在渲染的 DOM 上应用特殊的响应式行为。在这里,该指令的意思是:“将这个元素节点的 title attribute 和 Vue 实例的 message property 保持一致”。</p>
  <p>如果你再次打开浏览器的 JavaScript 控制台,输入 app2.message = '新消息',就会再一次看到这个绑定了 title attribute 的 HTML 已经进行了更新。</p>

  <h2 id="条件与循环">
    <a href="#条件与循环" title="条件与循环" class="header-link">条件与循环</a>
  </h2>
  <p>这个例子演示了我们不仅可以把数据绑定到 DOM 文本或 attribute,还可以绑定到 DOM 结构。此外,Vue 也提供一个强大的过渡效果系统,可以在 Vue 插入/更新/移除元素时自动应用过渡效果。</p>
  <p>还有其它很多指令,每个都有特殊的功能。例如,v-for 指令可以绑定数组的数据来渲染一个项目列表</p>
  <p>在控制台里,输入 app4.todos.push({ text: '新项目' }),你会发现列表最后添加了一个新项目。</p>
  <ol>
    <li>学习JavaScript</li>
    <li>学习Vue</li>
    <li>学习Node</li>
  </ol>

  <h2 id="处理用户输入">
    <a href="#处理用户输入" title="处理用户输入" class="header-link">处理用户输入</a>
  </h2>
  <p>为了让用户和你的应用进行交互,我们可以用 v-on 指令添加一个事件监听器,通过它调用在 Vue 实例中定义的方法:</p>
  <p>注意在 reverseMessage 方法中,我们更新了应用的状态,但没有触碰 DOM——所有的 DOM 操作都由 Vue 来处理,你编写的代码只需要关注逻辑层面即可。</p>
  <p>Vue 还提供了 v-model 指令,它能轻松实现表单输入和应用状态之间的双向绑定。</p>
</div>
<div style="height: 200px"></div>
</body>
<script>
  let btn = document.getElementById('btn');
  btn.addEventListener('click',function () {
     
     
    location.href = '#处理用户输入';
  });
</script>
</html>

在这里插入图片描述
我们复制带有锚点的url到新的标签页时,页面会自动滚动到锚点对应的位置。

另外,我们可以使用location对象的href属性来动态跳转到锚点对应的位置

location对象是浏览器提供的原生对象,提供 URL 相关的信息和操作方法。通过window.locationdocument.location属性,可以拿到这个对象。Location 对象教程 - 网道

location.href = '#处理用户输入';

我们还可以根据锚点的跳转做一个页面内的导航栏:

<div class="slider-container">
  <ul class="slider">
    <li class="slider-item">
      <a href="#Vue.js 是什么" title="Vue.js 是什么" class="link">Vue.js 是什么</a>
    </li>
    <li class="slider-item">
      <a href="#起步" title="起步" class="link">起步</a>
    </li>
    <li class="slider-item">
      <a href="#声明式渲染" title="声明式渲染" class="link">声明式渲染</a>
    </li>
    <li class="slider-item">
      <a href="#条件与循环" title="条件与循环" class="link">条件与循环</a>
    </li>
    <li class="slider-item">
      <a href="#处理用户输入" title="处理用户输入" class="link">处理用户输入</a>
    </li>
  </ul>
</div>

在这里插入图片描述

前端学习交流QQ群,群内学习讨论的氛围很好,大佬云集,期待您的加入:862748629 点击加入

猜你喜欢

转载自blog.csdn.net/weixin_43974265/article/details/115672741