我可以通过异步内容恢复正常的滚动到目标行为吗?

发布于 2024-12-08 05:46:04 字数 308 浏览 1 评论 0原文

我正在我正在处理的网页上按需加载内容。由于各种原因,我还使用滚动到 :target 片段的默认浏览器行为。您知道,您单击类似 #abc 的链接,浏览器会滚动到页面中的 id="abc"

但当内容异步提供时,情况并非如此。根据我的测试页面,您必须单击链接两次才能让浏览器滚动到异步添加的元素或 CSS3 :target 选择器选择它。那么我能做些什么才能让我的用户不必点击两次呢?

I'm loading content on demand on a webpage I'm working on. For various reasons, I'm also using the default browser behavior of scrolling to the :target fragment. You know, you click on a link that looks like #abc and the browser scrolls to id="abc" in your page.

Except that's not exactly what happens when the content is made available asynchronously. According to my test page, you have to click the link twice in order to have the the browser scroll to the asynchronously-added element or the CSS3 :target selector select it. So what I can do about it so that my users don't have to click twice?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ぃ弥猫深巷。 2024-12-15 05:46:04

.load 添加回调函数,该函数滚动到刚刚添加的元素。

$(document).ready(function () {
   "use strict";
   $("a[href=#loadme]").click(function () {
       if ("testcomplete" in window && window.testcomplete) {
            return;
       }
       $("#loadhere").load("loadme.inc", function(){
            location.href = this.href;
            //Your method to scroll "for various reasons"
       });
       window.testcomplete = true;
       return true; //Prevent default behaviour, ie following the `href` target
   })
})

Add a callback function to .load, which scrolls to the just-added element.

$(document).ready(function () {
   "use strict";
   $("a[href=#loadme]").click(function () {
       if ("testcomplete" in window && window.testcomplete) {
            return;
       }
       $("#loadhere").load("loadme.inc", function(){
            location.href = this.href;
            //Your method to scroll "for various reasons"
       });
       window.testcomplete = true;
       return true; //Prevent default behaviour, ie following the `href` target
   })
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文