当前位置:首页 > 日记 > 正文

利用JS hash制作单页Web应用的方法详解

利用JS hash制作单页Web应用的方法详解

前言

本文主要给大家介绍了关于利用JS hash制作单页Web应用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

一、何为hash

这里要讲的hash(也叫哈希),指的是JS中location对象的hash属性,它返回的是URL中#后所跟的零个或多个字符。通常,我们可以通过location.hash的方式获取哈希值或设置哈希值。当然,我们也可以通过设置a标签的href属性来设置哈希值,当用户点击该a标签时即可改变页面的哈希值。

例如:

/** JS方式 **/location.hash = 'hash'; //设置hash,该代码执行后URL后面增加“#hash”字符串console.log(location.hash); //获取hash
/** HTML方式 **/<a href="#hash" rel="external nofollow" >点击改变hash</a> <!-- 点击后URL后面增加“#hash”字符串 -->

值得注意的是,无论以何种方式改变哈希值,页面都不会刷新。

二、hash有何用处

1. 设置锚链接

通过设置锚链接(即为上述HTML方式),可使点击链接后页面根据元素id滑动到指定位置,即使页面跳转后也不例外。

2. 实现单页应用的制作

可以根据哈希值的变化来使相应元素显示或者隐藏,从而实现页面无刷新的单页切换。

三、何为单页Web应用

单页Web应用(single page web application,SPA),就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。

以上是百度百科对单页应用(SPA)的解释,而使用hash可以非常方便的实现“页面”间的切换。

四、如何使用hash制作SPA

简单来说,就是先只显示第一个page,然后通过改变hash值来切换显示不同的page,前一个page隐藏。
这里写个简单的Demo演示一下吧:

1. 首先写好HTML结构

<article class="container"> <section id="page1" class="page cur">第一页</section> <section id="page2" class="page">第二页</section> <section id="page3" class="page">第三页</section></article><nav id="nav" class="bottom-nav"> <ul>  <li>第一页</li>  <li>第二页</li>  <li>第三页</li> </ul></nav>

2. 然后为其设置CSS样式

.page{ display: none; /* 其他样式省略 *

相关文章

id怎么排版书籍?ID排版给书籍添加

id怎么排版书籍?ID排版给书籍添加

书籍,目录,电脑软件,id,ID,这篇教程是向的朋友分享ID排版给书籍添加目录方法,操作很简单的,大家学会了吗?希望能对大家有所帮助!步骤:1、打开InDesign新建合适大小的文档2、导入文章内容3、新建一个段落样式,命名为目录,4、新建一个段落样式,命名为…

js Date | 日期函数浏览器兼容问题

js Date | 日期函数浏览器兼容问题

浏览器兼容,问题解决方法,日期函数,电脑软件,js,一般 直接new Date() 是不会出现兼容性问题的,而 new Date(datetimeformatstring) 常常会出现浏览器兼容性问题,为什么,datetimeformatstring中的某些格式浏览器不兼容。1. 无参//无参 所有浏览…

微信小程序 action-sheet 反馈上拉

微信小程序 action-sheet 反馈上拉

上拉,简单实例,菜单,反馈,程序,微信小程序 action-sheet 反馈上拉菜单简单实例看下实现效果图:jsvar items = ['item1', 'item2', 'item3', 'item4'] var pageObject = { data: { actionSheetHidden: true, actionSheetItems: …

PPT2013合理应用配色方案的方法有

PPT2013合理应用配色方案的方法有

方案,方法,有哪些,电脑软件,  在PPT颜色搭配方面,苦于没有什么新意,不知道从何做起。为何不尝试一下PPT自带的配色功能呢?应用了模板配色,文字配色方案也会相应地改变。以下是小编为您带来的关于PPT2013合理应用配色方案,希望对您有所帮助。P…

ps怎么制作沙漠效果的?

ps怎么制作沙漠效果的?

沙漠,效果,电脑软件,ps,ps利用滤镜制作大漠效果。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、新建一个画布,参数如图。2、新建一个图层 大地1。3、使用菜单的滤镜的渲染的云彩。效果如图。4、使用…

js 数据存储和DOM编程

js 数据存储和DOM编程

编程,数据存储,电脑软件,js,DOM,数据存储·在javascript中,数据存储的位置会对代码整体性能产生重大的影响。·数据存储共有4种方式:字面量、变量、数组、对象成员。·要理解变量的访问速度,就要理解作用域。由于局部变量处于作用域的起始位置…

Excel中进行表格输入字数太多显示

Excel中进行表格输入字数太多显示

显示不全,输入,步骤,方法,太多,  excel表格中输入字数太多显示不全怎么办? 具体是怎么去进行的?今天,小编就教大家在Excel中进行表格输入字数太多显示不全的方法。Excel中进行表格输入字数太多显示不全的步骤打开excel表格。Excel中进行表…

JS检测数组类型的方法小结

JS检测数组类型的方法小结

检测,方法,数组类型,电脑软件,JS,1.instanceof  当只有一个全局执行环境时适用,如果包含多个框架,就存在两个以上不同版本的Array构造函数,如果从一个框架向另一个框架传递数组,传入的数组与在第二个框架中原生创建的数组分别具有不同的构造…

PS半调图案滤镜怎么处理?

PS半调图案滤镜怎么处理?

滤镜,怎么处理,图案,电脑软件,PS,PS的半调图案滤镜可以给图片换个风格,该怎么使用半调图案滤镜呢?下面我们就来看看详细的教程。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、打开一个PS的软件,然后打…

angularJS利用ng-repeat遍历二维数

angularJS利用ng-repeat遍历二维数

二维数组,实例代码,遍历,电脑软件,angularJS,最近在做报表的项目,有一种情况是后台返回给我的是一个二维数组,在前台将数据放入到表格中,因为我们用的是AngularJS的前台框架,所以利用ng-repeat来实现:首先在js中:复制代码 代码如下:$scope.Week =…

WPS演示怎样在同一页纸上打印多张

WPS演示怎样在同一页纸上打印多张

教程,方法,演示,幻灯片,纸上,  小编在这教大家用WPS演示在同一页纸上打印多张幻灯片,接下来由小编为大家推荐WPS演示在同一页纸上打印多张幻灯片的方法,希望对你有所帮助!WPS演示在同一页纸上打印多张幻灯片的教程1.打印预览&mdash;打印内…

PPT2013发光边缘文字特效如何制作

PPT2013发光边缘文字特效如何制作

边缘,文字特效,电脑软件,  PPT中文字处理的一些技巧,例如制作发光文字特效,比起干瘪瘪的文字未经处理来说,可谓增色不少。以下是小编为您带来的关于PPT2013发光边缘文字特效,希望对您有所帮助。PPT2013发光边缘文字特效1 启动PowerPoint2013,…