Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Scrollto元素定义为$this_Javascript_Jquery - Fatal编程技术网

Javascript Scrollto元素定义为$this

Javascript Scrollto元素定义为$this,javascript,jquery,Javascript,Jquery,我有一个网格,它的界面非常动态,至少可以这么说 我想做的是关注$this元素,不管它是在单击时移动到页面顶部还是返回到网格中的原始位置 单击元素时会发生什么情况。。它被发送到页面的顶部,然后当再次单击时,它会返回到网格中的原始位置 所有元素都具有相同的类名,单击所单击的元素会触发所选的类名。所以我不能用scrolltop来瞄准它 所以我试过的是 $container.find('a').click( function() { var $this = $(this), $photo = $

我有一个网格,它的界面非常动态,至少可以这么说

我想做的是关注$this元素,不管它是在单击时移动到页面顶部还是返回到网格中的原始位置

单击元素时会发生什么情况。。它被发送到页面的顶部,然后当再次单击时,它会返回到网格中的原始位置

所有元素都具有相同的类名,单击所单击的元素会触发所选的类名。所以我不能用scrolltop来瞄准它

所以我试过的是

$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。换言之,这是一个错误。否则,我们只是猜测。确切地说。以下是其中的一部分: