微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JQuery动画scrollTop不能正常工作

以下 JQuery代码页面滚动到表单中的第一个错误

$('html,body').stop().delay(500).animate({scrollTop: $errors.filter(":first").offset().top -30},'slow');

但是,如果我用一个容器元素的名称替换$(‘html,body’),例如具有固定定位的div类$(‘.myDivClass’),它似乎不能正常工作.每次提交都会向上和向下滚动到随机位置.如果容器元素不是html,body,它似乎不正常.

我无法弄清楚我做错了什么.

容器元素的CSS看起来像这样(所以你知道我的意思):

.mcModalWrap1{
position:fixed;
top:0;
left:0;
width:100%;
padding:50px;
background-image:url(images/overlay.png);
overflow:auto;
z-index:999;
display:none;
}

我已经尝试使用position()而不是offset()来进行相对定位,但它并没有什么区别.

谢谢!

更新:看起来没有解决方案.

解决方法

我知道我在聚会上已经很晚了,但遇到了同样的问题,这就是我修复它的方法.

在固定定位元素内滚动时,由于某种原因,您必须将其自己的scrollTop添加到要滚动的位置,因此:

var position = $errors.filter(":first").position().top + $('. myDivClass').scrollTop()
$('.myDivClass').animate({ scrollTop: position })

为我工作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐