0

我有一个词汇表页面,可以使用锚点。当您单击“A”链接时,它转到#A,当您单击“B”时,它转到“#B”。但是这个跳转到锚点,我希望它滚动。

我怎样才能做到这个宽度的javascrit?我可以在 html onclick 中放置一个 javascript 吗?

这是我的实际代码:

<?php $categories =  get_categories('child_of=100&hide_empty=0'); 
        foreach  ($categories as $category) {
            //Display the sub category information using $category values like $category->cat_name
            echo '<h2><a name="' . $category->name . '">'.$category->name.'</a></h2>';
            echo '<ul>';
            $posts = get_posts(array('cat' => $category->term_id, 'order' => 'ASC', 'post_type' => 'glosario', 'showposts' =>-1, 'post_status' => 'publish,future,draft'));
            foreach ($posts as $post) {
                echo '<li><a href="'.get_permalink($post->ID).'">'.get_the_title().'</a></li>';  
            }  
            echo '</ul>';
        } ?>
          <div id="scrollablemenu">
<?php $cats = get_categories( 'child_of=100&hide_empty=0');
foreach ($cats as $cat) {
    echo '<a href="#' . $cat->cat_name . '" class="scrollablemenubutton" class="scroll">' . $cat->cat_name . '</a>';
}
?>


jQuery(document).ready(function() {
jQuery(".scroll").click(function(event){     
    event.preventDefault();
    $('html,body').animate({scrollTop:$(this.hash).offset().top}, 500);
});
 });

谢谢!

4

1 回答 1

2

我会推荐jQuery ScrollTo() 插件

非常容易实现,您不必重新发明轮子。

这是一个如何使用 scrollTo 的基本示例:

$( "a" ).click(function( event ) {
  event.preventDefault();
  $('body').scrollTo('#anId', 1000);
});

在此处查看现场演示。

如果您想通过 onclick 使用它,请参见此处的演示。

请注意 where is 说它#anId可以是任何东西,例如链接的名称或您想要的任何东西,您只需像这样引用它:

$(this).whatEverFunctionOrValueYouWant();
于 2013-11-14T14:37:43.690 回答