2014-12-01 72 views
0

我有几个div s与.class类的滚动位置是由其父级的另一个孩子定义的,所以我需要指定一个scrollTop()$(this),类似

$(".class").scrollTop($(this).parent().find('.child').scrollTop()); 

但是,代码不工作...

$(".class").scrollTop(
    function(){ 
     $(this).parent().find('.child').scrollTop() 
    } 
); 

也不起作用。任何线索?

+0

使用scrollTo或许? – 2014-12-01 22:14:54

+0

我实际上使用scrollLeft(),因为它是水平滚动。你将如何使用scrollTo()? – 2014-12-01 22:16:18

+0

你正在使用scrollLeft,但你在问scrollTop?似乎适得其反。 – 2014-12-01 22:18:08

回答

1

这是假设我正在阅读你的问题的权利。你有多个拥有自己“孩子”元素的“class”元素。您需要分别使用每个元素来设置每个元素。

$(".class").each(
    function(){ 
     var elem = $(this); 
     var childsScrollPosition = elem.parent().find('.child').scrollTop(); 
     elem.scrollTop(childsScrollPosition); 
    } 
); 
+0

Yeap ...解决了它。谢谢<3 – 2014-12-01 22:37:41

0

ScrollTop想要一个整数的位置,所以通过DOM节点不会帮助。 尝试缓存您的选择,并与位置的方法传递:

var scrollTo = $(this).parent().find('.child'); 

$(".class").scrollTop(scrollTo.position().top); 

或者你用偏移取决于你的使用情况:

var scrollTo = $(this).parent().find('.child'); 

$(".class").scrollTop(scrollTo.offset().top); 

我在这里做这种盲目的,但这应该工作太:

var scrollTo = $(this).parent().find('.child'); 

    $(".class").scrollTop(
     function() { 
      return scrollTo.offset().top; 
     } 
    ); 

这有帮助吗?