0

次のスクリプトを使用して、ブログ内のコメント セクションにスクロールトップします。コメント セクションが存在しない場合は、空のコメント ボックスである「応答」する代わりにスクロールトップに移動します。

jQuery(document).ready(function(){
    // Set up the onClick() event
    jQuery('.comments-link').click(scrollToComments);

    // If the page is page.php#comments scroll to the comments/response
    if (location.hash=='#comments') scrollToComments();
});

// This function handles the scrolling on page load and onclick
function scrollToComments(){
    var comments = jQuery('#comments');
    // this can be moved outside the function, or recalculate in case the page redraws
    var scrollTopPosition = (comments.length==0)? 
       jQuery('#respond').offset().top :
       comments.offset().top;
    jQuery('html, body').animate({scrollTop:scrollTopPosition}, 2000, 'swing');
    return false;
}

個々のコメント自体もスクロールしたいと思います。これらは、ブログの ID 構造「#comment-%」で設定されているため、たとえば「#comment-22」です。

どういうわけかjqueryでこれを行うことは可能ですか?

4

1 に答える 1

0

これらはあなたがする必要があることです。

  1. location.hash個々のコメント構造を処理するために、テキストではなくパターンと照合します。正規表現を使用して、これまたは単純な.startWith()代替手段を実現できます。

  2. scrollToComments()セレクターをハードコーディングする代わりに、セレクターを受け取るようにリファクタリングします。

  3. 必要に応じて、Attribute Starts With Selector[name^="value"]を使用して、個々のコメントを一致させます。それらをイベントにバインドする場合にのみ必要です。本当に必要ありません。

于 2012-10-27T10:11:07.797 に答える