JQuery ScrollTop 适用于 chrome 但不适用于 firefox
JQuery ScrollTop works on chrome but not firefox
我有一个简单的 JS/Jquery 脚本,允许用户导航(通过哈希菜单链接和 ScrollTop)到页面部分的特定部分(在本例中为 /guides/ 部分)。该脚本在 Chrome 上运行良好。然而,在 Firefox 上,它似乎没有被触发。
在撰写本文时,我的 chrome 版本是:45.0.2454.85
我的 firefox 是 40.0.3
URL到有问题的站点:genesistutorials101.com
带有散列的链接可以在 MENU 下找到。
我的脚本 运行:
//HASH # NAV
$(function(){
if (window.location.hash) {
var target = $(window.location.hash);
navigateToTarget(target);
}
$('.nav-primary a[href*="#"]').on('click', function(event) {
//console.log("testing");
var href = $(this).attr("href");
var target = $(href.substr(href.indexOf("#")));
navigateToTarget(target);
});
});
function navigateToTarget(target) {
if( target.length ) {
event.preventDefault();
$('html, body').animate({
scrollTop: target.offset().top - 155
}, 1000);
}
}
我在另一个 Whosebug 线程上读到,当 function() 丢失时 firefox 不喜欢 'event' 但我也试过了,没有任何明显的变化。
因此,出于测试目的,请继续单击 chrome 和 firefox 导航菜单上的任何初学者链接,以了解其中的差异。
任何帮助或指向解决方案的指示都将不胜感激
此致
索克拉
问题是您在 navigateToTarget
函数中调用 event.preventDefault()
,但那里没有名为 event
的变量。
它适用于 Chrome(可能也适用于 IE),因为它们有一个全局的 属性 window.event
,但是 属性 不是跨浏览器的,而且它无法在没有此 属性.
的浏览器上运行
您应该删除 event.preventDefault()
,一切都会正常进行。
我有一个简单的 JS/Jquery 脚本,允许用户导航(通过哈希菜单链接和 ScrollTop)到页面部分的特定部分(在本例中为 /guides/ 部分)。该脚本在 Chrome 上运行良好。然而,在 Firefox 上,它似乎没有被触发。
在撰写本文时,我的 chrome 版本是:45.0.2454.85
我的 firefox 是 40.0.3
URL到有问题的站点:genesistutorials101.com
带有散列的链接可以在 MENU 下找到。
我的脚本 运行:
//HASH # NAV
$(function(){
if (window.location.hash) {
var target = $(window.location.hash);
navigateToTarget(target);
}
$('.nav-primary a[href*="#"]').on('click', function(event) {
//console.log("testing");
var href = $(this).attr("href");
var target = $(href.substr(href.indexOf("#")));
navigateToTarget(target);
});
});
function navigateToTarget(target) {
if( target.length ) {
event.preventDefault();
$('html, body').animate({
scrollTop: target.offset().top - 155
}, 1000);
}
}
我在另一个 Whosebug 线程上读到,当 function() 丢失时 firefox 不喜欢 'event' 但我也试过了,没有任何明显的变化。
因此,出于测试目的,请继续单击 chrome 和 firefox 导航菜单上的任何初学者链接,以了解其中的差异。
任何帮助或指向解决方案的指示都将不胜感激
此致
索克拉
问题是您在 navigateToTarget
函数中调用 event.preventDefault()
,但那里没有名为 event
的变量。
它适用于 Chrome(可能也适用于 IE),因为它们有一个全局的 属性 window.event
,但是 属性 不是跨浏览器的,而且它无法在没有此 属性.
您应该删除 event.preventDefault()
,一切都会正常进行。