单击CSS类元素时使用jQuery滚动到顶部

单击CSS类元素时使用jQuery滚动到顶部,jquery,css,Jquery,Css,我有一个看似简单的问题需要解决,但无法使用类而不是href获得正确的格式 我希望能够单击一个类为.mtimg的 单击其中任何一个项目时,因为在父DIV中有相当多的项目具有“page_menu”类,所以我只想滚动到该DIV的顶部 所以,快速简单。。。。单击.mtimg滚动至div.page_菜单div顶部 我最初的想法是,但无法使用类而不是href $('a[href^="#"]').on('click', function(event) { var target = $(this.hr

我有一个看似简单的问题需要解决,但无法使用类而不是href获得正确的格式

我希望能够单击一个类为.mtimg的

单击其中任何一个项目时,因为在父DIV中有相当多的项目具有“page_menu”类,所以我只想滚动到该DIV的顶部

所以,快速简单。。。。单击.mtimg滚动至div.page_菜单div顶部

我最初的想法是,但无法使用类而不是href

$('a[href^="#"]').on('click', function(event) {

    var target = $(this.href);

    if( target.length ) {
        event.preventDefault();
        $('html, body').animate({
            scrollTop: target.offset().top
        }, 1000);
    }
});

因为我不知道“a”是否指示父项是“div.menu\u page”,所以我使用jQuery的.closest(),否则您可以使用$(this.parent)


这应该是正确的。

因为我不知道“a”是否指示父项是“div.menu\u page”,所以我使用jQuery的.closest(),否则您可以使用$(This.parent)


这应该是它的一部分。

您可以这样做:

$('.mtimg').on('click', function(){
    var $target = $(this).parents('div.page_menu').first();
    $('html, body').animate({ scrollTop: $target.offset().top }, 1000);
});

您可以这样做:

$('.mtimg').on('click', function(){
    var $target = $(this).parents('div.page_menu').first();
    $('html, body').animate({ scrollTop: $target.offset().top }, 1000);
});

如果您希望每次单击具有
mtimg
类的元素时,它都滚动到
page\u菜单的顶部,那么它可以简化很多。请参见下面的最小示例

编辑: 修改示例以使用OP提供的标记

$(文档).ready(函数(){
$('.mtimg')。在('click',函数(事件){
event.preventDefault();
$('html,body')。设置动画({
scrollTop:$('.page_菜单').offset().top
}, 1000);
});
});
/*用于显示的CSS*/
.页面菜单{
边框:实心1px红色;
填充:20px;
}
.mtimg{
填充:4px;
背景色:#e1e1;
保证金:2倍;
光标:指针;
}

类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目

如果每次单击具有
mtimg
类的元素时都希望它滚动到
page\u菜单的顶部,那么它可以简化很多。请参见下面的最小示例

编辑: 修改示例以使用OP提供的标记

$(文档).ready(函数(){
$('.mtimg')。在('click',函数(事件){
event.preventDefault();
$('html,body')。设置动画({
scrollTop:$('.page_菜单').offset().top
}, 1000);
});
});
/*用于显示的CSS*/
.页面菜单{
边框:实心1px红色;
填充:20px;
}
.mtimg{
填充:4px;
背景色:#e1e1;
保证金:2倍;
光标:指针;
}

类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目
类项目


到目前为止您尝试了什么?用您的标记显示一个小提琴演示。这里有几个可能的问题,但我们不能说没有一个合适的例子。您应该能够简单地替换
'a[href^=“#”]“
”。page_菜单“
。请注意,
if
块仅在
href
属性不为空时运行。是否要滚动到页面顶部或包含单击的选择器的div顶部?到目前为止您尝试了什么?显示带有标记的小提琴演示。这里有几个可能的问题,但我们不能说没有一个合适的例子。您应该能够简单地将
'a[href^=“#“]”替换为
。page_菜单“
。请注意,
if
块仅在
href
属性不为空时运行。您想滚动到页面顶部或包含单击的选择器的div顶部吗?我已经尝试了您的解决方案,但它不会滚动。对不起,我解释得不好。在我原来的帖子中有一个小问题。如果你在“框架与扩展”(左上)中将“jQuery 1.6.4”改为“jQuery 1.7.2”,它就可以工作了,我认为这是jQuery版本的问题。你是正确的,这在1.7.2 jQuery中确实可以正常工作,感谢你的输入!事实上,我检查并使用1.11.0非常有效,因为最终加载的是1.11.0。我应该先检查一下。非常感谢。我已经尝试过你的解决方案,但它不会滚动。对不起,我解释得不好。在我原来的帖子中有一个小问题。如果你在“框架与扩展”(左上)中将“jQuery 1.6.4”改为“jQuery 1.7.2”,它就可以工作了,我认为这是jQuery版本的问题。你是正确的,这在1.7.2 jQuery中确实可以正常工作,感谢你的输入!事实上,我检查并使用1.11.0非常有效,因为最终加载的是1.11.0。我应该先检查一下。非常感谢。我也试过了,除非我上面的小提琴缺少了什么东西,否则我的运气不好。我也试过了,除非我上面的小提琴缺少了什么东西,否则我的运气不好。我理解使用ID,但不幸的是,我无权更改/添加到现有代码中=/好的,我删除了那个注释,并修改了我的示例以使用您提供的标记。我理解使用ID,但遗憾的是,我无权将其更改/添加到现有代码中=/好的,我删除了那个注释并修改了我的示例以使用您提供的标记。