Javascript Scrollto元素定义为$this
我有一个网格,它的界面非常动态,至少可以这么说 我想做的是关注$this元素,不管它是在单击时移动到页面顶部还是返回到网格中的原始位置 单击元素时会发生什么情况。。它被发送到页面的顶部,然后当再次单击时,它会返回到网格中的原始位置 所有元素都具有相同的类名,单击所单击的元素会触发所选的类名。所以我不能用scrolltop来瞄准它 所以我试过的是Javascript Scrollto元素定义为$this,javascript,jquery,Javascript,Jquery,我有一个网格,它的界面非常动态,至少可以这么说 我想做的是关注$this元素,不管它是在单击时移动到页面顶部还是返回到网格中的原始位置 单击元素时会发生什么情况。。它被发送到页面的顶部,然后当再次单击时,它会返回到网格中的原始位置 所有元素都具有相同的类名,单击所单击的元素会触发所选的类名。所以我不能用scrolltop来瞄准它 所以我试过的是 $container.find('a').click( function() { var $this = $(this), $photo = $
$container.find('a').click( function() {
var $this = $(this),
$photo = $this.parents('.photo');
$('html, body').animate({scrollTop: $this.offset().top});
但它不能正常工作。它不会滚动到$this,而是滚动到页面上的某个随机点
有更好的方法吗?您正在寻找类似的方法吗
$(“a[href^=”#“])。在(“单击”上,函数(e){
$(“html,body”).animate({
scrollTop:$($(this.attr(“href”)).offset().top
}, 1000);
});代码>
顶部
ID 1
ID 2
ID 3
ID 4
如果没有更多信息,您似乎只是缺少对preventDefault()
的调用。如果没有该调用,浏览器将尝试导航到a
的href
中定义的URL
在下面的代码片段中,当我单击“11”旁边的“a”时,它会将11滚动到窗口顶部。如果不调用e.preventDefault()
,它将滚动到Hello,包装在id为top
的h1
中
$(函数(){
var$container=$('.container');
$container.on('click','a',函数(e){
e、 预防默认值();
var$this=$(this);
$('html,body')。设置动画({
scrollTop:$this.offset().top
});
});
});代码>
你好
它不起作用,因为在完成布局重新排列之前,页面正在滚动。我所做的是听同位素事件arrangeComplete
,然后调用scrollTop
,而不是scrollTo
$container.one('arrangeComplete',function(){
$('body').animate({scrollTop: $this.offset().top});
});
Debug$this.offset().top
并查看该值是否真实。如果是,则问题在于scrollTo()
。如果没有,您需要找出原因。您可以修改代码吗?此事件在元素移动到页面顶部之前或之后触发?还是在原来的位置再移动一次?它只在DOM中移动,还是由某个框架从scatch中重新生成?可以合并move事件和scrollTo事件吗?您应该包括此代码作用的HTML。换言之,这是一个错误。否则,我们只是猜测。确切地说。以下是其中的一部分: