Javascript jquery scrollTop和href="#&引用;
我使用此功能滚动到所需的容器:Javascript jquery scrollTop和href="#&引用;,javascript,jquery,scrolltop,Javascript,Jquery,Scrolltop,我使用此功能滚动到所需的容器: function scrolear(destino){ var stop = $(destino).offset().top; var delay = 1000; $('body').animate({scrollTop: stop+'px'}, delay); return true; } 当这样使用时会出现问题: <a href="#" onclick="scrolear('#container');">go<
function scrolear(destino){
var stop = $(destino).offset().top;
var delay = 1000;
$('body').animate({scrollTop: stop+'px'}, delay);
return true;
}
当这样使用时会出现问题:
<a href="#" onclick="scrolear('#container');">go</a>
因为href=“#”
使正文滚动到页面顶部
有什么方法可以防止这种情况发生吗?更新
<a href="#container">go</a>
$(function() {
$('a[href^="#"]').click(function(e) {
e.preventDefault();
var target = $(this).attr('href');
var stop = $(target).offset().top;
var delay = 1000;
$('body').animate({scrollTop: stop + 'px'}, delay);
});
});
考虑将javascript应用于您的站点,而不是依赖它使站点正常运行。在您的示例中,这可以通过以下方式实现:
HTML:
<a href="#container">go</a>
$(function() {
$('a[href^="#"]').click(function(e) {
e.preventDefault();
var target = $(this).attr('href');
var stop = $(target).offset().top;
var delay = 1000;
$('body').animate({scrollTop: stop + 'px'}, delay);
});
});
这将拦截href以#开头的所有链接上的点击,并为您添加动画。如果用户没有启用javascript,单击链接仍然会将他们带到正确的位置
希望这有帮助 更新
<a href="#container">go</a>
$(function() {
$('a[href^="#"]').click(function(e) {
e.preventDefault();
var target = $(this).attr('href');
var stop = $(target).offset().top;
var delay = 1000;
$('body').animate({scrollTop: stop + 'px'}, delay);
});
});
考虑将javascript应用于您的站点,而不是依赖它使站点正常运行。在您的示例中,这可以通过以下方式实现:
HTML:
<a href="#container">go</a>
$(function() {
$('a[href^="#"]').click(function(e) {
e.preventDefault();
var target = $(this).attr('href');
var stop = $(target).offset().top;
var delay = 1000;
$('body').animate({scrollTop: stop + 'px'}, delay);
});
});
这将拦截href以#开头的所有链接上的点击,并为您添加动画。如果用户没有启用javascript,单击链接仍然会将他们带到正确的位置
希望这有帮助 既然您使用jquery,我愿意
<a href="#">go</a>
$("a").click(function() {
e.preventDefault(); // cancel's the '#' click event
scrolear('#container');
});
$(“a”)。单击(函数(){
e、 preventDefault();//取消的是“#”单击事件
阴囊(“#容器”);
});
既然您使用jquery,我愿意
<a href="#">go</a>
$("a").click(function() {
e.preventDefault(); // cancel's the '#' click event
scrolear('#container');
});
$(“a”)。单击(函数(){
e、 preventDefault();//取消的是“#”单击事件
阴囊(“#容器”);
});
这将只为href分配一个javascript函数,而href什么也不做,因此不会像
这将只为href分配一个javascript函数,而href根本不起任何作用,因此不会出现像@rich.okelly的
更正答案那样的页面滚动
function scrollTosec(){
$('a[href^="#"]').click(function(e) {
e.preventDefault();
var target = $(this).attr('href');
var stop = $(target).offset().top;
var delay = 200;
$('body').animate({scrollTop: stop + 'px'}, delay);
});
}
来自@rich.okelly的更正答案
function scrollTosec(){
$('a[href^="#"]').click(function(e) {
e.preventDefault();
var target = $(this).attr('href');
var stop = $(target).offset().top;
var delay = 200;
$('body').animate({scrollTop: stop + 'px'}, delay);
});
}