iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Html5页面中如何实现返回
  • 622
分享到

Html5页面中如何实现返回

2023-06-09 14:06:31 622人浏览 八月长安
摘要

小编给大家分享一下HTML5页面中如何实现返回,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!看到这个题目你可能觉得这是什么鬼? 其实我想说的是这种,看下面的录制:这种交互在H5页面中比比皆是,点击城市->弹出城市选择

小编给大家分享一下HTML5页面中如何实现返回,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

看到这个题目你可能觉得这是什么鬼? 其实我想说的是这种,看下面的录制:

Html5页面中如何实现返回

这种交互在H5页面中比比皆是,点击城市->弹出城市选择浮层->按返回按钮关闭浮层。

这些操作都是不要点击左上角/右上角的关闭按钮就可以进行的,飞猪的H5是前进出现弹层,返回时弹层关闭,其他家都不行(去哪儿网H5飞机票,美团H5酒店)。

为什么要这么设计?

因为H5是在手机上操作的,手机上的手指可操作区域的覆盖范围很小,更别说左上角/右上角这些死角(取消/关闭)区域了。你肯定听过这个操作:轻触返回。这个在用户操作的时候非常方便友好,选择完城市后,不需要点击取消,直接在大拇指可以操作的地方点击返回就关闭了弹层。

如何实现

既然有这种非常好的需求,那作为开发肯定就会想法设法的实现这个功能了。 你甚至都不用Google,你就应该会想到类似的history.back(),history.go()这些方法了。 然而想到这些依旧没用,理论上 浏览器/WEBview 的返回/前进的是要重新加载页面的,因为URL发生了变化。 如果你真的知道单页面应用(SPA),或者使用React/Vue你就应该知道有个东西叫:路由。 这些通过改变hash且无法刷新的url变化是html5时加入的history功能

the-history-interface

interface History {  readonly attribute unsigned long length;  attribute ScrollRestoration scrollRestoration;  readonly attribute any state;  void go(optional long delta = 0);  void back();  void forward();  void pushState(any data, DOMString title, optional DOMString? url = null);  void replaceState(any data, DOMString title, optional DOMString? url = null);};
  1. pushState

  2. replaceState

还有一个事件

  1. onpopstate

pushState,replaceState 用来改变histroy堆栈顺序,onpopstate 在返回,前进的时候触发

vue-router中的实现也是如此(第1694行)

具体实现

既然说了这么多,那我们来看下怎么实现这种功能。

来看下 pushState 和 replaceState 的兼容性

Html5页面中如何实现返回

全绿,用起来放心多了。

思路:

  1. 点击弹层时 pushState 添加 hash

  2. "轻触返回"的时候触发 onpopstate 事件时候隐藏弹层并修改 hash

<button onclick="city()">        城市    </button><br>    <button onclick="calendar()">        日历    </button><br>    <button onclick="description()">        说明    </button>    <div id="city" class="com" style="display: none;">      模拟城市弹框层    </div>    <div id="calendar" class="com" style="display: none;">      模拟日历弹框层    </div>     <div id="description" class="com" style="display: none;">      模拟说明弹框层    </div>
  button {          border: #0000;          background-color: #f90;      }      .com {        position: absolute ;        top: 0;        bottom: 0;        left: 0;        right: 0;        background-color: #888589;      }
var citynode = document.getElementById('city');    var calendarNode = document.getElementById('calendar');    var descriptionNode = document.getElementById('description');      function city() {        cityNode.style.display = 'block';        window.history.pushState({'id':'city'},'','#city')      }      function calendar() {        calendarNode.style.display = 'block';        window.history.pushState({'id':'calendar'},'','#calendar')      }      function description() {        descriptionNode.style.display = 'block';        window.history.pushState({'id':'description'},'','#description')      }      window.addEventListener('popstate', function(e){        // alert('state:' + e.state + ', historyLength:' + history.length);        if (e.state && e.state.id === 'city') {            history.replaceState('','','#');            cityNode.style.display = 'block';        } else if (e.state && e.state.id === 'calendar') {            history.replaceState('','','#');            calendarNode.style.display = 'block';        } else if (e.state && e.state.id === 'description') {            history.replaceState('','','#');            descriptionNode.style.display = 'block';        } else {            cityNode.style.display = 'none';            calendarNode.style.display = 'none';            descriptionNode.style.display = 'none';        }      })

主要看 js 代码,监听页面的前进和后退事件来控制history。

Html5页面中如何实现返回

看完了这篇文章,相信你对“Html5页面中如何实现返回”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: Html5页面中如何实现返回

本文链接: https://www.lsjlt.com/news/256434.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Html5页面中如何实现返回
    小编给大家分享一下Html5页面中如何实现返回,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!看到这个题目你可能觉得这是什么鬼? 其实我想说的是这种,看下面的录制:这种交互在H5页面中比比皆是,点击城市->弹出城市选择...
    99+
    2023-06-09
  • php如何实现返回不刷新页面
    这篇文章主要讲解了“php如何实现返回不刷新页面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何实现返回不刷新页面”吧!php实现返回不刷新页面的方法:1、打开相应的PHP代码文件;...
    99+
    2023-06-25
  • SpringBoot如何返回页面的实现方法
    SpringBoot中使用Controller和页面的结合能够很好地实现用户的功能及页面数据的传递。但是在返回页面的时候竟然会出现404或者500的错误,我总结了一下如何实现页面的返...
    99+
    2024-04-02
  • 如何使用PHP实现页面返回功能
    标题:PHP实现页面返回功能的方法及代码示例 在Web开发中,经常会遇到需要实现页面返回功能的情况,也就是用户点击返回按钮时能够返回到上一个页面。在PHP中,通过使用header函数结...
    99+
    2024-03-08
    页面 php 返回
  • AngularJs如何实现返回前一页面时刷新一次前面页面
    小编给大家分享一下AngularJs如何实现返回前一页面时刷新一次前面页面,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!要求:页...
    99+
    2024-04-02
  • vue使用elementUI分页如何实现切换页面时返回页面顶部
    目录使用elementUI分页实现切换页面时返回页面顶部原理实现element-ui分页el-pagination的坑1.所有的信息都必须的动态的2.数据在data里面3.这是重中之...
    99+
    2022-11-13
    vue使用elementUI分页 elementUI切换页面 elementUI返回页面顶部
  • 微信小程序中如何实现返回tabBar不刷新页面
    这篇文章主要介绍微信小程序中如何实现返回tabBar不刷新页面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、在一个项目中,遇到了这个场景:返回tabBar中的某个页面是需要保存数...
    99+
    2024-04-02
  • js如何实现点击返回跳转到指定页面
    这篇文章主要介绍了js如何实现点击返回跳转到指定页面的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇js如何实现点击返回跳转到指定页面文章都会有所收获,下面我们一起来看看吧。功能描述:在浏览器中新建标签页并指定一...
    99+
    2023-07-04
  • angular+ionic实现返回上一页并刷新页面
    这篇文章主要讲解了“angular+ionic实现返回上一页并刷新页面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“angular+ionic实现返回上一页...
    99+
    2024-04-02
  • SpringBoot中怎么返回页面
    本篇文章为大家展示了SpringBoot中怎么返回页面,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。SpringBoot中使用Controller和页面的结合能够很好地实现用户的功能及页面数据的传递...
    99+
    2023-06-20
  • Html5如何实现页面适配iPhoneX
    这篇文章主要介绍了Html5如何实现页面适配iPhoneX,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前后效果图:几个新概念安全区域安全区...
    99+
    2024-04-02
  • 如何实现微信小程序页面返回顶部效果
    这篇文章主要为大家展示了“如何实现微信小程序页面返回顶部效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现微信小程序页面返回顶部效果”这篇文章吧。效果预...
    99+
    2024-04-02
  • jQuery如何返回页面顶部功能
    这篇文章主要介绍了jQuery如何返回页面顶部功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。返回页面顶部功能For a smooth(a...
    99+
    2024-04-02
  • Html5页面如何实现下载文件
    这篇文章将为大家详细讲解有关Html5页面如何实现下载文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需求描述接到的原始需求是这样的,有一个H5页面,页面中有个“点击下载”的按钮,点击之后,完成下载特定...
    99+
    2023-06-09
  • 怎么解决HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
    这篇文章主要介绍怎么解决HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!项目背景之前也没写过小程序但是看过之后都是现成的api 简单易懂 唯一就是会有很多坑要去踩...
    99+
    2023-06-09
  • js中document.referrer如何实现移动端返回上一页
    这篇文章主要介绍js中document.referrer如何实现移动端返回上一页,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!返回上一页,在PC端我们可以使用:history.go(...
    99+
    2024-04-02
  • vue如何实现返回上一页面时回到原先滚动的位置
    这篇文章主要为大家展示了“vue如何实现返回上一页面时回到原先滚动的位置”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何实现返回上一页面时回到原先滚动的...
    99+
    2024-04-02
  • html5页面中如何实现鼠标悬停效果
    这篇文章主要介绍了html5页面中如何实现鼠标悬停效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   这样的效果在实际开发中是非常有用...
    99+
    2024-04-02
  • 小程序如何关闭当前页面返回上一页面
    这篇“小程序如何关闭当前页面返回上一页面”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“小程序如何关闭当前页面返回上一页面”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来...
    99+
    2023-06-26
  • 如何在Html5中监听返回事件
    本篇文章为大家展示了如何在Html5中监听返回事件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在使用MUI框架的时候,我们经常会用到一个头部带有.mui-action-back的class<...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作