首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery如何防止动画重置div的滚动?

问jQuery如何防止动画重置div的滚动?
EN

Stack Overflow用户
提问于 2013-02-16 08:19:53
回答 1查看 911关注 0票数 0

如果我使用jQuery动画函数向右滑动一个#wrapper div (z-index:2),并在它后面显示一个#menu div (z-index:1),那么#wrapper div重置就是用户在它上面所做的滚动。

Here's the jsFiddle showing the problem。如果你滚动#wrapper div (带有"Main #“的那个),然后点击"Open/Close Menu”链接激活动画,滚动就会重置。我知道这是由position:fixed引起的,但这是必要的,这样当菜单打开时,滚动的唯一div是# menu的div,而不是#wrapper的div。

我尝试过在激活动画的按钮上使用href="javascript:void(0)",在点击功能上使用return false;。毫无办法。

如何禁止#wrapper div重置滚动?或者,一旦显示#menu div,我如何锁定#wrapper div滚动?

EN

回答 1

Stack Overflow用户

发布于 2013-02-26 20:54:31

在.Click()回调函数中使用return false阻止了div的滚动,但不幸的是,它也强制两个div具有相同的滚动量。期望的效果是让每个div拥有并保持其自己的滚动量,直到用户重新加载页面。

我通过保存两个div上的滚动量并在动画回调函数中恢复它们,解决了这个问题。这是一个显示我的方法的jsFiddle。

尽管这在桌面浏览器中可以无缝地工作,但是

代码语言:javascript
复制
menu.css("position","fixed");
content.css("position","absolute").css("top","0");
window.scrollTo(0,contentScroll);

和

代码语言:javascript
复制
menu.css("top","0");
window.scrollTo(0,menuScroll);

在移动浏览器中速度非常慢,以至于你可以看到div的重新定位和滚动,这使得动画看起来很糟糕。如果你是为桌面设计或为移动设计,但更看重功能而不是美观,这是一个很好的方法。我没有在平板电脑上测试它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14905502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档