实现锚点跳转要使用: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.location
和document.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 点击加入