单击显示div,向下滑动到很多

时间:2013-06-14 15:39:02

标签: jquery html css onclick slide

所以,这就是我到目前为止: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”按钮),然后点击第二个灰色框。
  3. 问题:

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

    它应该做什么:

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

1 个答案:

答案 0 :(得分:1)

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

喜欢这样

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

我将动画改为此

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

并为父div提供了一个id

<div id='targetWrapper'>