滚动位置错误在一个页面的网站
Scroll position bug on one page website
我遇到了一个问题,即滚动位置在作为外部链接引用时不会到页面的相应部分。
例如,当尝试访问这个原始URL http://wp.themechills.com/eternity/#rsvp时,我们的想法是将页面加载到该部分。但是,它向上滚动到伴郎和礼物部分之间。
同样的链接,当从网站侧导航中使用时,效果完美。例如,转到http://wp.themechills.com/eternity/,然后单击RSVP菜单项,您将看到它实际上转到相应的部分。
我已经检查了,看看是否有任何JS或其他错误在页面上,但似乎没有任何。
有人能帮忙吗?
提前感谢。
狮子座=============================================================================
<标题> 代码范例jQuery(文档)。Ready (function ($) {
function onePageNav(){
/*-----------------------------------------------------------------------------------*/
/* Smooth Scroll
/* Thanks to: https://github.com/davist11/jQuery-One-Page-Nav
/*-----------------------------------------------------------------------------------*/
$(".nav").onePageNav({
filter: ':not(.external)',
changeHash: false,
scrollSpeed: 1500,
});
}
onePageNav();
function smoothScroll(){
// Scrolls to RSVP section
$(".js-scroll").click(function() {
$('html, body').animate({
scrollTop: $("#rsvp").offset().top
}, 2000);
return false;
});
return false;
}
smoothScroll();
});
jQuery(window).load(function(){
if(window.location.hash) {
var hash = window.location.hash.substring(1);
if(jQuery('a[href="#'+hash+'"]','#menu-primary').length>0){
jQuery('html, body').animate({
scrollTop: jQuery("#"+hash).offset().top
}, 1000);
}
}
});
标题>为了实现与菜单单击相同的功能,您可以在jQuery事件page load
或document ready
之后触发菜单单击事件,因此当页面得到时,您可以在URL
中检查hash
,并可以触发具有相同href
的菜单:
jQuery(document).ready(function(){
if(window.location.hash) {
var hash = window.location.hash.substring(1);
if(jQuery('a[href="#'+hash+'"]','#menu-primary').length>0){
jQuery('a[href="#'+hash+'"]','#menu-primary').trigger('click');
}
}
});
或者你可以试试这个来找到正确的元素位置,然后滚动到同一部分:
jQuery(document).ready(function(){
if(window.location.hash) {
var hash = window.location.hash.substring(1);
if(jQuery('a[href="#'+hash+'"]','#menu-primary').length>0){
jQuery('html, body').animate({
scrollTop: jQuery("#"+hash).offset().top
}, 1000);
}
}
});
on window load:
jQuery(window).load(function(){
if(window.location.hash) {
var hash = window.location.hash.substring(1);
if(jQuery('a[href="#'+hash+'"]','#menu-primary').length>0){
jQuery('html, body').animate({
scrollTop: jQuery("#"+hash).offset().top
}, 1000);
}
}
});
当页面加载时,它会在RSVP部分所在的位置定位。问题是,这并不会影响所有图像的高度。在加载图像之前,我们会说,RSVP部分位于页面下方500px处。图片加载后,总图片高度等于1000px,现在RSVP部分在1500px左右。要查看页面加载,请在这里播放视频。正如你所看到的,它做了它应该做的然后剩下的载荷。有几种方法可以解决这个问题。
1)滚动到该部分的脚本,确保它在文档准备就绪时执行。如果有一个延迟加载器,或者图像是由脚本加载的,或者文档准备好后,这可能无法工作。如果图像是通过脚本加载的,那么单页导航必须是文档中准备好正常工作的最后调用之一。
2)使用jQuery(window).load(function(){}) -这等待所有的图像,帧和对象加载。如果在文档完全加载后增加任何图像或元素的大小,这仍然可能会产生影响,可能无法正常工作。
3)确保所有的图像/div/span/sections等…都装了一个高度。这将起到占位符的作用,并将RSVP推送到正确的位置。快速查看显示至少有5张图片没有设置高度。这不会影响任何由JS加载的图片
使用此功能,它将滚动到id为rsvp的元素的任何滚动位置。
$(document).ready(function(){
var offset = $("#rsvp").offset();
$("body, html").animate({scrollTop:offset.top-10});
})
- 有任何可能将facebook实时信使整合到一个网站中
- 如何使用JS/jQuery在另一个网站上显示iframe中的特定内容
- Javascript.如何用javascript将信息发送到另一个网站
- 如何从特定类别重定向到另一个网站
- jquery点击另一个网站上的按钮
- Firefox将我转发到另一个网站,而不是在Drag&滴
- 代理一个网站能够在iframe中进行所见即所得编辑-它是如何工作的
- window.onclick在一个网站中使用两次
- 用PHP读取另一个网站的源代码,并将其作为字符串提供给JavaScript
- 在我的浏览器中用类似ctrl+s的PhantomJS保存一个网站
- 下载网站'的内容并在另一个网站中显示(部分)
- 有没有一个网站可以生成所有可能的显示单词的方式
- 将登录链接到另一个网站而不提供密码
- 在一个网站上包含多个声音文件
- Javascript对一个网站起到了反作用
- 如何在我的服务器上创建javascript,该服务器使用该服务器上的后端,并将在另一个网站上使用
- 通过javascript将RSS提要广播到另一个网站
- 我正在尝试为一个网站创建一个文本框,可以将文本更改为用户希望的任何格式
- 使用表单值在另一个网站上创建帐户
- 一个网站有什么方法可以区分微软边缘和谷歌Chrome吗;的渲染引擎