0

所以,这就是我到目前为止所拥有的: 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;
}

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

  1. 单击第一个灰色框,其下方会显示详细信息。
  2. 向上滚动(不要单击“x”按钮)并单击第二个灰色框。

问题:

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

它应该做什么:

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

4

1 回答 1

1

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

像这样

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

我把动画改成了这个

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

并给父 div 一个 id

<div id='targetWrapper'>
于 2013-06-14T15:51:45.910 回答