1

HTML:

<a class="targetLink" href="#">LINK1</a>
<div id="text1" style="display: none;">text1 div</div>

<a class="targetLink" href="#">LINK2</a>
<div id="text2" style="display: none;">text2 div</div>

<a class="targetLink" href="#">LINK3</a>
<div id="text3" style="display: none;">text3 div</div>

JS:

$("a.targetLink").toggle(function() {
    $(".open").slideUp(350);
    $(this).next("div").slideDown(350).addClass("open");
}, function() {
    $(this).next("div").slideUp(350).removeClass("open");
});

このように動作します: クラス「targetLink」のリンクを押すと、その下に DIV が開きます。ここで、js コードを次のように変更する必要があります。クリックしてリンクすると、開いている div の先頭にスクロールします。どうすれば達成できますか?前もって感謝します。

4

4 に答える 4

0

一番上までスクロールしたい要素で scrollTop を使用します。http://api.jquery.com/scrollTop/

例:

$(this).next("div").scrollTop(0);
于 2013-03-19T18:25:25.320 に答える
0

私はこれがあなたが必要としているものだと思います. これまでのところ何をしているのかわかりませんが、追加の jquery プラグインなどを必要とせずに、これで目的が達成できると思います。

これがJSです(htmlのjsfiddleを確認してください):

$(".pop").hide();
$(".targetLink").on("click", function(e) {
    e.preventDefault();
    var n = $(this).next();
    if(!$(n).hasClass('open')){ 
        $(".open").removeClass('open').slideUp(200);
        $(n).addClass('open').slideDown(200); 
    } 
});


$(".nav").on("click", function(event){
    event.preventDefault(); 
    var dest=null;
    if(($($(this.hash)).offset().top) > ($(document).height()-$(window).height())){
        dest= $(document).height()-$(window).height();
    }else{
        dest=$($(this.hash)).offset().top;
    }
    $($(this.hash)).trigger("click");
    $('html,body').animate({scrollTop:dest}, 500, 'swing' );

});
于 2013-03-27T12:34:23.563 に答える
0

この非常に優れたシンプルな jQuery プラグインを試してください - https://github.com/Ashwell/jquery-scrollThis

于 2014-01-03T02:45:54.463 に答える