我目前正在尝试让图像以某些路径在屏幕上移动。当它完成一个时,它会隐藏自己,然后再次移动到起点以等待用户输入并开始下一个。我在 Zepto 中对这两个都使用了 anim 函数,但是我注意到在隐藏时设置动画时,程序会崩溃。有人可以告诉我如何解决这个问题,无论是通过不同的移动方式还是我需要用 anim() 做的事情?
谢谢您的帮助。
我目前正在尝试让图像以某些路径在屏幕上移动。当它完成一个时,它会隐藏自己,然后再次移动到起点以等待用户输入并开始下一个。我在 Zepto 中对这两个都使用了 anim 函数,但是我注意到在隐藏时设置动画时,程序会崩溃。有人可以告诉我如何解决这个问题,无论是通过不同的移动方式还是我需要用 anim() 做的事情?
谢谢您的帮助。
你说的崩溃是什么意思?我猜你在动画完成时使用回调来触发下一步并且你正在使用或者display:none
隐藏visibility:hidden
你的元素。
如果是这种情况,您面临的问题是动画回调在没有动画发生时不会触发。回调基于 webkitTransitionEnd 函数,该函数仅在发生转换时触发。对于 A) 布尔属性(如可见性)和 B) 完全隐藏且未渲染的对象,这些转换实际上不会发生。
克服这个问题的最简单方法是让您的图像永远不会从渲染中删除,方法是使用它消失opacity: 0
或将其 z-index 更改为低于所有其他元素。通常,我所做的是有两种状态:{opacity:1, zIndex: 10000}
和{opacity:0, zIndex: -1}
. 这样,当对象完全淡出时,它不会阻挡其他元素,并且会平滑淡出。(从 -1 到 1 的 zIndex 发生在非常低的不透明度下。)