大佬教程收集整理的这篇文章主要介绍了在GWT中平滑的jQuery类动画,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
就这样说,我实现了一个简单的类,在一些小部件上执行4种不同的动画:淡入淡出,滑入和滑出(在jQuery的动画模型之后)。请参阅下面的代码,了解我如何实现它。
现场演示:http://www.rodrigo-silveira.com/gwt-custom-animation/
我的问题:一旦触发了另一个动画,怎么能顺利地[和成功]停止动画,并继续保留旧的动画呢?
例如,如果slideIn()在slideOut()被调用的一半时,如何从窗口小部件的50%的自然高度开始滑出?我尝试保留一个始终跟踪当前进度的成员变量,@R_341_9447@在一个新的动画中使用它,但似乎不能正确。有任何想法吗?
import com.google.gwt.animation.client.Animation; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.user.client.Element; public class RokkoAnim extends Animation { private Element element; privatE int currentOp; private final static int FADE_OUT = 0; private final static int FADE_IN = 1; private final static int SLIDE_IN = 2; private final static int SLIDE_OUT = 3; public RokkoAnim(Element element) { this.element = element; } public void fadeOut(int durationMilli) { cancel(); currentOp = RokkoAnim.FADE_OUT; run(durationMilli); } public void fadeIn(int durationMilli) { cancel(); currentOp = RokkoAnim.FADE_IN; run(durationMilli); } public void slideIn(int durationMilli) { cancel(); currentOp = RokkoAnim.SLIDE_IN; run(durationMilli); } public void slideOut(int durationMilli) { cancel(); currentOp = RokkoAnim.SLIDE_OUT; run(durationMilli); } @Override protected void onupdate(double progress) { switch (currentOp) { case RokkoAnim.FADE_IN: doFadeIn(progress); break; case RokkoAnim.FADE_OUT: doFadeOut(progress); break; case RokkoAnim.SLIDE_IN: doSlideIn(progress); break; case RokkoAnim.SLIDE_OUT: doSlideOut(progress); break; } } private void doFadeOut(double progress) { element.getStyle().setOpacity(1.0d - progress); } private void doFadeIn(double progress) { element.getStyle().setOpacity(progress); } private void doSlideIn(double progress) { double height = element.getScrollHeight(); element.getStyle().setHeight(height * (1.0d - progress),Unit.PX); } private void doSlideOut(double progress) { // Hard coded value. How can I find out what // the element's max natural height is if it's // currently set to height: 0 ? element.getStyle().setHeight(200 * progress,Unit.PX); } }
// 1. Get some widget FlowPanel div = new FlowPanel(); // 2. Instantiate the animation,passing the widget RokkoAnim anim = new RokkoAnim(div.getElement()); // 3. Perform the animation // >> inside mouSEOver event of some widget: anim.fadeIn(1500); // >> inside mouSEOut event of some widget: anim.fadeOut(1500);
private void doFadeOut(double progress) { double opacity = element.getStyle().getOpacity(); element.getStyle().setOpacity(opacity - 1.0d - progress); } private void doFadeIn(double progress) { double opacity = element.getStyle().getOpacity(); element.getStyle().setOpacity(opacity + progress); }
以上是大佬教程为你收集整理的在GWT中平滑的jQuery类动画全部内容,希望文章能够帮你解决在GWT中平滑的jQuery类动画所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。