前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序webview,a锚点跳转,回退时一直保留在原页面

微信小程序webview,a锚点跳转,回退时一直保留在原页面

作者头像
宣言言言
发布2020-08-02 16:33:59
2.1K0
发布2020-08-02 16:33:59
举报
文章被收录于专栏:宣言(Siam)博客宣言(Siam)博客

写在前面

公司业务,需要写一个页面导航,大概功能如下(APP排版,webview嵌套在小程序中)

当点击导航的时候,也可以自动跳转到相应的地方。使用的是a标签的锚点跳转

功能和效果都是在浏览器上测试正常的,但在小程序上遇到以下问题

点击回退按钮无法退出页面

当我们有点击过导航的时候,假设从One点击到Two

相当于url变动:index.html#One -> index.html#Two

当点击小程序右上角的回退按钮的时候,不会退出当前webview页面 返回到小程序的夫级页面

而是从index.html#Two -> index.html#One,页面也滑动到One区域。

如果在此页面上点击过10个导航,那么将需要点击11次回退才能退出当前页面。

不符合业务逻辑。所以需要更改实现方案。

解决方案

使用jq滑动跳转页面区域。

实现代码如下

.nav-one是一开始的a标签,现在改为div,但是class不改变

代码语言:javascript
复制
$(".nav-one").on("click", function(){
    // 高亮状态改变
    $(this).siblings().removeClass('nav-now');
    $(this).addClass('nav-now');
    // 区域名
    let clickStr = $(this).data("str");
    // 筛选到合适的html里的dom元素,获取高度,然后将浏览器向下滑动
    $.each($("h1"), function(index,item){
        if (item.innerText === clickStr){
            let htmlDom = $('html');
            htmlDom.scrollTop($(item).offset().top - 50);
            return false;
        }
    });
});
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
    • 点击回退按钮无法退出页面
      • 解决方案
      相关产品与服务
      云开发 CloudBase
      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档