我想在用户点击它时让我的页面自动滚动到div。我使用的jQuery只在它第一次点击时才有效。之后它即使在点击功能中也不会产生任何结果。正确计算元素偏移量变量,我可以在日志中看到它。但是在第二次单击时没有任何反应这是我的jQuery:
$('.logoWrap').click(function () {
var body = $("html, body");
var scrollTop = $(window).scrollTop();
var elementOffset = $(this).offset().top;
var distance = (elementOffset - scrollTop);
body.animate({
scrollTop: distance
}, '500', 'swing');)
};
我无法使用和锚定ID的原因是因为当点击div时,会有另一个div向下滑动以显示更多内容。所以我认为这是搞乱的事情。这是我的全部代码
$('.logoWrap').click(function(){
var body = $("html, body");
var scrollTop = $(window).scrollTop();
var elementOffset = $(this).offset().top;
var distance = (elementOffset - scrollTop);
body.animate({scrollTop:elementOffset}, '500', 'swing');
if($(this).next('article').is(':visible')){
$(this).parent().animate({marginBottom : 0},'2000');
$(this).removeClass('activeWork');
$(this).next('article').slideUp('2000');
}
else if($('.logoWrap').hasClass('activeWork')){
$('.activeWork').next('article').slideUp('2000');
$('.activeWork').parent().animate({marginBottom : 0},'2000');
$('.activeWork').removeClass('activeWork');
var articleHeight = $(this).next('article').height();
var desiredHeight = articleHeight + 100;
//open content
$(this).addClass('activeWork');
$(this).next('article').delay('500').slideDown('2000');
$(this).parent().delay('500').animate({marginBottom : desiredHeight},'2000');
}
else{
var articleHeight = $(this).next('article').height();
var desiredHeight = articleHeight + 100;
//open content
$(this).addClass('activeWork');
$(this).next('article').slideDown('2000');
$(this).parent().animate({marginBottom : desiredHeight},'2000');
}