点击时响应滑动的高度

时间:2013-07-11 11:52:00

标签: jquery slider slide portfolio

这是我的网站:http://www.stilld.nl

向下滚动到投资组合,然后单击某个项目。发生了两件事:

  1. 点击投资组合项目的详细信息显示在投资组合下方,
  2. 该页面向下滚动到该投资组合项目的详细信息。
  3. 这很好用,因为我向下滚动了一些像素。

    问题:缩小浏览器,你会发现投资组合变成了彼此之下的项目。现在,当你点击一个项目时,它向下滚动我说它必须下降的像素数量,但现在还不够。

    我的解决方案(不起作用):我没有向下滚动数字,而是向下滚动到CLASS。这应该工作,但代码不起作用。它只是向上滚动到页面顶部。我认为这是因为在CLASS出现的同时(或者甚至更早)调用了向下滚动,所以也许我的代码没有及时看到CLASS ...我希望我能看出来。这是我的第一个代码(并使用on:

    $(document).ready(function(){
    $(".portfolio").click(function () {
        if ($('#'+$(this).attr('target')).is(':visible')){
            $('#'+$(this).attr('target')).slideUp();        
        } else {
            $('.description').slideUp(); 
            $('#'+$(this).attr('target')).slideDown();        
            $('html, body').animate({scrollTop: $('#targetWrapper').offset().top + 600 }, 600);
        }
    
    });
    $(".close").click(function () {
        $('.description').slideUp();        
        $('html, body').animate({scrollTop: $('.p_img').offset().top }, 600);
    });
    

    });

    我想要什么:

    我希望将此代码转换为向下滚动到类或ID的代码。但是,这必须在CLASS或ID出现后发生。我认为这应该是解决方案。

1 个答案:

答案 0 :(得分:1)

<强>重新编辑

添加浮动:左;在div#wrapper_portfolio上有你的投资组合的真实高度

并改变:

 $('html, body').animate({scrollTop: +($('#alldescriptions').offset().top) + 'px' }, 600);