Angularjs - 使用后$anchorScroll后需要单击两次后退按钮
Angularjs - Back button needs to be clicked twice after using $anchorScroll
我正在使用$anchorScroll将页面上的滚动条移动到特定位置。就我而言,当我从搜索结果页面单击指向剧集的链接时,我想打开包含该剧集的播客页面并向下滚动到该特定剧集的位置并播放它。播客页面也可以正常加载,不需要任何滚动或播放剧集。
进行定位的代码是:
$anchorScroll.yOffset = 70;
$location.hash("episode12345");
$anchorScroll();
我也使用 $routeProvider 移动到播客页面,如下所示:
.when("/podcasts/:podcast_name", {
templateUrl: "podcast.html",
controller: "PodcastController"
})
当加载播客页面并滚动到所需的剧集位置后,我想通过点击浏览器后退按钮返回搜索结果时,就会出现问题。不幸的是,它需要被点击两次,因为第一次后退点击只会把我带到我所在的页面的顶部。
例如。这是分集位置的页面网址:
http://localhost:8080/podcasts/Podcast1#16
这是首次点击后的页面网址:
http://localhost:8080/podcasts/Podcast1#16
第二次点击后,我可以回到我最初来自的搜索页面,例如:
http://localhost:8080/results
当页面最初加载时,它似乎首先加载而不显示位置,然后移动到该位置。我想这就是为什么我们必须点击两次。有没有办法先在位置加载页面?
我的做法有明显的问题吗?我对所有这些东西都很陌生...明信片上的答案...
解决此问题的方法不是使用位置哈希,而是像这样将哈希直接放入$anchorScroll中:
$anchorScroll("episode12345");
这不会更新位置,因此当您点击后退按钮时,它不需要转到页面顶部 - 它只是直接返回到上一个位置。
相关文章:
- button.单击两次删除附加操作后不工作
- 为什么jQuery下拉列表需要单击两次
- Rails-jQuery 为什么我必须单击两次才能显示 jQuery 效果
- 必须单击两次才能得到一个响应
- isHidden函数要求我在应用响应显示时单击两次
- 元素必须单击两次才能添加Class(自定义指令)
- 页面加载后的第一个锚定链接需要单击两次
- 单击两次后切换
- 必须在jQuery上单击两次
- 避免单击两次以开始编辑Backgrid中的布尔(复选框)单元格
- 单击两次提交按钮以发布表单
- 带有 OnClick 的 jQuery 链接标记 href 需要单击两次才能加载 AJAX
- Ionic:单击两次时显示活动/非活动按钮
- 事件仅在单击两次时激活
- jQuery 函数 - 单击两次返回一个值
- 必须单击两次才能触发
- 切换打开关闭必须在手机上单击两次
- 单击两次图标不会关闭下拉列表
- 平滑滚动并使用 Firefox 上的 popState 返回按钮 - 需要单击两次
- 在同一元素上单击两次,然后在另一个元素上单击两次,使第一个元素进入“单击”状态