jquery - 使用 jQuery/JavaScript 在 href 之后滚动到

标签 jquery html

我正在构建一个 html 网页,目前的主要问题是我不知道如何在单击新链接后滚动到页面的一部分。我所做的是使用 scrollTop jQuery 方法:

$("#klienti2").click(function(){
    $('.parallax').animate({ scrollTop: windowHeight }, 'slow');
});

它从屏幕顶部滚动了 windowHeight 的量。我选择这种方法而不是使用带有 id 的导航,因为在我需要滚动的地方没有内容。

所以我现在要找的是从不同的页面重定向到这个页面后做同样的事情。我试过的是:

$("#audio2").click(function(){
    window.location.href = "prew2.html";
    $('.parallax').animate({ scrollTop: windowHeight*2.6 }, 'slow');
});

但现在它只是在不滚动的情况下重定向到该页面。任何想法为什么?我认为,根据代码,它应该 href 到该位置,然后动画到指定位置,但它似乎忽略了动画。

最佳答案

来自评论:HTML 是无状态的。更改 href 后,随着代码被卸载,后面的任何内容都将被忽略。您需要将某些内容传递到接收页面(例如 prew2.html 上的查询字符串参数)并从 prew2.html 内部对此作出 react .

接收页面需要知道是否滚动到预期位置。是否滚动的决定由调用者做出。

显而易见的方法是在查询字符串中传递一个参数。由于这段代码就像书签 URL 一样,您也可以为任务使用书签 URL 并检查特定的书签值:

在您的第一页中,链接代码类似于:

$("#audio2").click(function(){
    window.location.href = "prew2.html#doitnow";
});

当然,如果那只是一个普通的 anchor ,这也会做同样的事情:

<a id="audio2" href="prew2.html#doitnow">Click me</a>

接收页面的代码是这样的:

$(function(){   // Shortcut for DOM ready handler
    if (location.href.indexOf("#doitnow") >=0 ){
        $('.parallax').animate({ scrollTop: windowHeight*2.6 }, 'slow');
    }
});

关于jquery - 使用 jQuery/JavaScript 在 href 之后滚动到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31116791/

相关文章:

javascript - 如何选中/取消选中具有值属性的复选框输入?

Javascript 框复制自身

java - HTML-Entity 转义以防止 XSS

html - 基于 div 的表格中的不同上边距

jquery - Fuelux 选项卡和向导表单验证

javascript - jQuery如何将事件绑定(bind)到被删除并再次添加的元素

php - 如何使用下一页帖子在 wordpress 中列出我的帖子

jquery - 文本不透明度在视口(viewport)边缘淡化

javascript - 如何在禁用的字段集中启用 div 元素?

jquery - Ruby on Rails : Delete confirmation pop-up dialog displaying twice