因此,这就是我到目前为止的内容:jsFiddle

的HTML

<div style="height:1000px;">
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div id="p_img" style="height:300px;">
    <div target="p1" class="portfolio">1</div>
    <div target="p2" class="portfolio">2</div>
    <div target="p3" class="portfolio">3</div>
</div>
<div>
    <div id="p1" class="description"> <a class="close">x</a>
        AAA : Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the     industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
    </div>
    <div id="p2" class="description"> <a class="close">x</a>
        BBB : Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
    </div>
    <div id="p3" class="description"> <a class="close">x</a>
        CCC : Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
    </div>
</div>




JavaScript(jQuery)

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


的CSS

.portfolio {
    float:left;
    width:100px;
    height:100px;
    background:#ccc;
    margin:10px;
    cursor:pointer;
}
.description {
    float:left;
    width:100%;
    font-size:12px;
    display:none;
}
.close {
    float:left;
    padding:5px;
    background:red;
}


它工作得很好,但是有问题。


单击第一个灰色框,详细信息将显示在其下方。
向上滚动(不要单击“ x”按钮),然后单击第二个灰色框。


问题:

您会看到页面向下滚动太多,而不是滚动到灰色框2的详细信息的顶部。

它应该做什么:

打开1并单击2时,页面应向下滚动到详细信息2的。

最佳答案

我只是滚动到所有目标的父div,而不是目标本身。

像这样

http://jsfiddle.net/NHskg/1/

我将动画更改为此

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


并给了一个ID父div

<div id='targetWrapper'>

关于jquery - 点击时显示div,向下滑动很多,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17112234/

10-13 01:09