单击CSS类元素时使用jQuery滚动到顶部
我有一个看似简单的问题需要解决,但无法使用类而不是href获得正确的格式 我希望能够单击一个类为.mtimg的 单击其中任何一个项目时,因为在父DIV中有相当多的项目具有“page_menu”类,所以我只想滚动到该DIV的顶部 所以,快速简单。。。。单击.mtimg滚动至div.page_菜单div顶部 我最初的想法是,但无法使用类而不是href单击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
$('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,但遗憾的是,我无权将其更改/添加到现有代码中=/好的,我删除了那个注释并修改了我的示例以使用您提供的标记。