javascript - Jquery Smooth Scroll 仅在内部工作

标签 javascript jquery html

我最近问了一个问题,在处理了大约 5 个小时(不幸的是,很严重)之后,我能够平滑滚动到 anchor 。这是我放入的js。

$(document).ready(function(e) {
$(".scroll").click(function(event){
     event.preventDefault();
     //calculate destination place
     var dest=0;
     if($(this.hash).offset().top > $(document).height()-$(window).height()){
          dest=$(document).height()-$(window).height();
     }else{
          dest=$(this.hash).offset().top;
     }
     //go to destination
     $('html,body').animate({scrollTop:dest}, 1000,'swing');
 });
});

我目前使用 ID 作为 anchor ,但如果您愿意,我也可以切换到 NAME。

这就是我想要的:这只适用于同一页面。我希望它可以跨多个页面工作。

这是我的示例:This page ,应该加载this page然后滚动到 anchor 。

但相反,它会跳跃。我应该在这段代码中添加什么?作为一名图形和 html/css 设计师,javascript 对我来说就像火箭科学。因此,如果您保持沉默,我将不胜感激。

最佳答案

坚持使用 JS,并传递一个 hash 属性:

<a href="http://something.com/some.php#start"> Go to page 2 ( Start ) </a>
<a href="http://something.com/some.php#goats"> Go to page 2 ( Goats ) </a>

并在第2页上使用简单的JS进行检查

<script>
    $(document).one("ready",function(){
        if( window.location.hash.length > 0 ){
             $("body, html").animate({scrollTop:$(window.location.hash).position().top},1000);
        }
    });
</script>

该脚本将生成 ID 为“start”(或 ID 为“goats”)的对象 您可以在第 2 页上定义目标,并向您的部门添加 ID:

<div id="start"> Some content </div>
<div id="goats"> Goat content </div>

关于javascript - Jquery Smooth Scroll 仅在内部工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24774177/

相关文章:

javascript - React , leaflet ,将 map 转换或导出为图像或 byte64 格式

javascript - 将鼠标悬停在表格单元格上时更改主体背景颜色

javascript - sourceMapRootpath 使用 LESS 获得源映射

javascript - 用户可以有意或通过随机生成填充两个相关的 div — 如何将选定的值存储在本地存储中?

javascript - 移动浏览器上的 HTML5 输入日期默认值行为

html - 选择某种类型的最后一个 child

javascript - 重新加载页面时下拉字段不正确

javascript - 为什么我不能改变溢出父图像的宽度,而我可以改变高度?

jquery - 如何使用 jQuery 从数组中的元素中检索值?

html - Vinaora 等简单网站的访客柜台