Javascript 使用jquery滚动到div
我有一个以前可能已经回答过的问题,但我无法使代码正常工作 我有一个Javascript 使用jquery滚动到div,javascript,jquery,Javascript,Jquery,我有一个以前可能已经回答过的问题,但我无法使代码正常工作 我有一个 $('page contact')。在('click',函数(事件){ var target=$(this.href); if(target.length){ event.preventDefault(); $('html,body')。设置动画({ scrollTop:$(“#页面联系人”).offset().top }“慢”); } }); 一个原因是href属性返回锚点的绝对路径,即“http://www.example.
$('page contact')。在('click',函数(事件){
var target=$(this.href);
if(target.length){
event.preventDefault();
$('html,body')。设置动画({
scrollTop:$(“#页面联系人”).offset().top
}“慢”);
}
});
一个原因是href
属性返回锚点的绝对路径,即“http://www.example.com#hash“
。由于jQuery找不到目标元素,因此集合的长度为0
,如果未执行块,则执行
可以使用返回原始href
属性的this.getAttribute('href')
,也可以使用返回href
属性的哈希段的hash
属性,而不是href
属性
还要注意,您的单击处理程序绑定到目标节
元素,而不是a
元素
$('li a').on('click', function(event) {
var target = $(this.hash);
if( target.length ) {
event.preventDefault();
$('html, body').animate({
scrollTop: target.offset().top
}, "slow");
}
});
原因之一是href
属性返回锚的绝对路径,即”http://www.example.com#hash“
。由于jQuery找不到目标元素,因此集合的长度为0
,如果未执行块,则执行
可以使用返回原始href
属性的this.getAttribute('href')
,也可以使用返回href
属性的哈希段的hash
属性,而不是href
属性
还要注意,您的单击处理程序绑定到目标节
元素,而不是a
元素
$('li a').on('click', function(event) {
var target = $(this.hash);
if( target.length ) {
event.preventDefault();
$('html, body').animate({
scrollTop: target.offset().top
}, "slow");
}
});
$(this.href)
选择器无效,因此target
变量始终为空,请更改vartarget=$(this.href)代码>至var target=this.href代码>以获取链接
$(this.href)
选择或充当
$("http://stackoverflow.com/questions/29515247/scrolling-to-a-div-using-jquery#29515468")
>对象[]
$(this.href)
选择器无效,因此target
变量始终为空,请更改vartarget=$(this.href)代码>至var target=this.href代码>以获取链接
$(this.href)
选择或充当
$("http://stackoverflow.com/questions/29515247/scrolling-to-a-div-using-jquery#29515468")
>对象[]
实际上是一件很小的事情
$('.page-contact').on('click', function(event) {
//..
};
将其连接到单击目标div,而不是单击按钮。
将事件连接到您的按钮拥有的类,它将工作
$('#scrollButton').on('click', function(event) {
var target = $(this.hash);
if( target.length ) {
event.preventDefault();
$('html, body').animate({
scrollTop: target.offset().top
}, "slow");
}
});
尝试一下:实际上是一些非常小的东西
$('.page-contact').on('click', function(event) {
//..
};
将其连接到单击目标div,而不是单击按钮。
将事件连接到您的按钮拥有的类,它将工作
$('#scrollButton').on('click', function(event) {
var target = $(this.hash);
if( target.length ) {
event.preventDefault();
$('html, body').animate({
scrollTop: target.offset().top
}, "slow");
}
});
尝试小提琴:您的选择器错误,请更改为:
$('a[href="#page-contact"]').on('click', function(event) {
var target = this.getAttribute("href");
if($(target).length) {
event.preventDefault();
$('html, body').animate({
scrollTop: $("#page-contact").offset().top
}, "slow");
}
});
您的选择器错误,请更改为:
$('a[href="#page-contact"]').on('click', function(event) {
var target = this.getAttribute("href");
if($(target).length) {
event.preventDefault();
$('html, body').animate({
scrollTop: $("#page-contact").offset().top
}, "slow");
}
});
“但是没有动画”意味着jQuery代码片段实际上失败了,您得到的是浏览器的默认行为。changevar target=$(this.href)代码>至var target=this.href代码>那么代码应该可以工作否,仍然是相同的问题:(“但是没有动画”意味着jQuery代码片段实际上失败了,您得到的是浏览器的默认行为。更改var target=$(this.href);
到var target=this.href;
那么代码应该可以工作否,仍然是相同的问题:(