首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用animateWithDuration无限期或X次重复抖动动画?

使用animateWithDuration函数可以实现动画的重复播放。该函数是jQuery中的一个动画函数,用于在指定的时间内改变元素的样式。

要实现无限期重复抖动动画,可以将重复次数设置为"infinite",示例代码如下:

代码语言:javascript
复制
$(element).animate({
    marginLeft: "+=10px"
}, {
    duration: 200,
    easing: "linear",
    complete: function() {
        $(this).animate({
            marginLeft: "-=20px"
        }, {
            duration: 200,
            easing: "linear",
            complete: function() {
                $(this).animate({
                    marginLeft: "+=10px"
                }, {
                    duration: 200,
                    easing: "linear",
                    complete: function() {
                        // 重复动画
                        $(this).animate({
                            marginLeft: "+=10px"
                        }, {
                            duration: 200,
                            easing: "linear",
                            complete: function() {
                                // 递归调用实现无限期重复
                                $(this).animate({
                                    marginLeft: "-=20px"
                                }, {
                                    duration: 200,
                                    easing: "linear",
                                    complete: function() {
                                        $(this).animate({
                                            marginLeft: "+=10px"
                                        }, {
                                            duration: 200,
                                            easing: "linear",
                                            complete: function() {
                                                // 递归调用实现无限期重复
                                                $(this).animate({
                                                    marginLeft: "+=10px"
                                                }, {
                                                    duration: 200,
                                                    easing: "linear",
                                                    complete: function() {
                                                        // 递归调用实现无限期重复
                                                        // ...
                                                    }
                                                });
                                            }
                                        });
                                    }
                                });
                            }
                        });
                    }
                });
            }
        });
    }
});

上述代码中,使用了递归调用的方式实现了无限期重复抖动动画。每次动画完成后,再次调用animate函数来实现下一次动画。

如果需要设置重复次数为X次,可以使用一个计数器变量来控制递归调用的次数,示例代码如下:

代码语言:javascript
复制
var repeatCount = 0;
var maxRepeatCount = X;

function shakeAnimation() {
    $(element).animate({
        marginLeft: "+=10px"
    }, {
        duration: 200,
        easing: "linear",
        complete: function() {
            $(this).animate({
                marginLeft: "-=20px"
            }, {
                duration: 200,
                easing: "linear",
                complete: function() {
                    $(this).animate({
                        marginLeft: "+=10px"
                    }, {
                        duration: 200,
                        easing: "linear",
                        complete: function() {
                            repeatCount++;
                            if (repeatCount < maxRepeatCount) {
                                // 继续重复动画
                                shakeAnimation();
                            }
                        }
                    });
                }
            });
        }
    });
}

// 调用函数开始动画
shakeAnimation();

在上述代码中,使用了一个计数器变量repeatCount来记录已经重复的次数,当重复次数达到maxRepeatCount时,停止递归调用。

关于animateWithDuration函数的详细说明和使用方法,可以参考腾讯云的相关文档和示例代码:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Quartz2D复习(四) --- 图层CALayer和动画CAAnimation

    ,在ios和Mac OSX上能使用;   但是UIKit只能在ios中使用;为了保证可移植性,QuartzCore不能使用UIImage、UIColor,只能使用CGImageRef、CGColorRef...API, 使用它能做出非常绚丽的动画效果,少量的代码可以实现非常强大的功能 2)、Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程 3)、Core Animation是直接操作在...5)、CAAnimation   是所有动画对象的父类,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,只能使用它具体的子类。   ...属性说明:   duration:  动画的持续时间   repeatCount: 重复次数,无限循环可以设置HUGE_VALFMAXFLOAT   repeatDuration: 重复时间   removeOnCompletion...0.2; 304 [self.imgView2.layer addAnimation:keyAni forKey:nil]; 305 } 306 } 307 308 //取消抖动动画

    1.4K30

    View编程指南(四)

    在iOS中,动画广泛用于重新定位view,更改大小,将其从view层次结构中移除,并将其隐藏起来。 您可以使用动画将反馈传达给用户实现有趣的视觉效果。...使用核心动画,您可以为您的view的layer设置以下类型的更改: layer的大小和位置 执行转换时使用的中心点 转换到三维空间中的layer其sublayer 从layer分层结构中添加删除layer...= 0.0; secondView.alpha = 1.0; }]; 前一个例子中的动画只运行一使用一个ease-in,ease-out的动画曲线。...如果要更改默认的动画参数,则必须使用animateWithDuration:delay:options:animations:completion:方法来执行动画。...该方法可以让您自定义以下动画参数: 开始动画之前使用的延迟 在动画使用的时间曲线的类型 动画应该重复的次数 当动画到达最后时,动画是否会自动反转 触摸事件是否在动画进行过程中传递到view 动画是否应该中断任何正在进行的动画

    65310

    iOS 开发从 UIView 动画说起

    = psdCenter; //还原中心坐标 accountCenter.x += 200; psdCenter.x += 200; [UIView animateWithDuration...//动画在执行完毕后会反方向再执行一我们将这两个参数传入到上面密码框出现动画中,看看会有什么效果(不同的参数使用|操作符一起传入) [UIView animateWithDuration: 0.5...重复动画 我们可以看到密码框在不断的循环进入屏幕,反方向退出屏幕这个操作,并且登录按钮也始终没有渐变出现。...因此,我们需要其他的动画方式,系统也正好提供了这样的一种动画供我们使用: + (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval...比如我尝试着让某个UICollectionView的分类按钮从屏幕下方弹入视图的时候;又或者我让这个小球弹到右下角,以提示用户该如何操作: ?

    1.7K70

    【iOS开发】iOS 动画详解

    ) duration 动画的持续时间 speed 动画的速度 repeatCount 重复次数,默认为0,无限重复可以设置为HUGE_VALF或者MAXFLOAT repeatDuration...这是一个抽象类,不能直接使用,要实现动画,一般用它的两个子类,相关属性: keyPath 指定接收层动画的关键路径(入门篇提供了部分keyPath,敬请参考) cumulative 下一动画执行是否接着刚才的动画...,默认为false additive 如何处理多个动画在同一时间段执行的结果,若为true,同一时间段的动画合成为一个动画,默认为false。...相关属性: values 存放“关键帧”,动画会一到达关键帧指定的值,并自动生成中间动画。...(动画可以是,基本动画、关键帧动画等其他动画)里面存放的动画可以不设置时间和重复次数,统一在CAAnimationGrop对象中设置。

    1.6K60

    iOS基础动画教程

    iOS的动画多种多样,动画做的好的应用会更加吸引人,用起来也会更加炫目,本文介绍iOS几种基础动画,单个讲解便于理解,但真正使用时,结合起来用会看起来更加帅,这就看具体的应用场景和大家的想象力啦。...所有的基础动画都给予UIView一个基础的方法:animateWithDuration。...透明度动画 假设我们想通过动画渐变一个控件的透明度,比如慢慢变成基本看不见,也很简单,还是那个方法: // 开始透明度动画(一秒完成) [UIView animateWithDuration...另外,这里的旋转都是一性的,如果想要一直转,怎么做呢,是不是很容易想到循环?...以上就是基本的iOS UIView动画了,单个看各自都挺简单的,在我们的真实使用当中,当然也要注意结合使用,发挥想象力,简单的功能也是可以组合出帅气的效果的~ 可以在github下载我的示例工程:https

    73630

    iOS 系统中的视图动画

    使用 lambda (block based method) 做动画 在 iOS 4.0 以后, 引入了代码块 (code block) 的概念, 可以使用代码块来初始化动画, 这也是在 iOS 4.0..., 并且只能运行一, 通常不能满足需求, 再来一个复杂点儿的: [UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionCurveEaseIn...实现动画的自动翻转 当创建自动翻转指定次数的动画时, 考虑将重复次数设置为非整数值。...因为对于自动翻转的动画来说, 每次循环都是从原始值变化到目标值再变化回原始值, 如果希望动画结束之后停留在目标值, 需要将重复次数设置加上 0.5 , 否则, 动画回慢慢变回原始值, 再迅速变化到目标值...self.displayPrimary; } } ]; 链接多个动画 有了上面的知识, 链接多个动画就非常简单了: 对于 lambda block-based 方法的动画

    2.2K30

    简单放置一张图片,实现放大缩小旋转效果1 image和imageView的区别2 创建控件显示到view上的标准步骤3 CGRectOffset函数的含义4 小飞机-监听四个按钮的点击事件(代码)5

    如果在A方法中需要使用B方法中创建的某个对象变量,如果拿不到,那么就应该定义一个全局的属性,把B方法中创建完成的对象赋值给全局属性. 6 通过center修改位置 center只能用来修改位置 center...如何获取当前视图的所有子视图? subviews. isKindOfClass 和 isMemberOfClass 的区别?...bounds的x,y 会影响子控件的显示位置 12 头尾式动画(了解) //- 准备开始动画 [UIView beginAnimations:nil context:nil]; //- 设置时间 [UIView...setAnimationDuration:5]; 提交动画(真正开始做动画) [UIView commitAnimations]; 13 块动画 +(void)animateWithDuration:...: 动画完成的代码块 "回调" 14 代码如何调用size to fit [UIView sizeToFit] 15 控制位置添加view //- 在siblingSubview下面添加view -(

    1.1K30

    iOS 动画(理论篇)

    UIView层动画(+ (void)animateWithDuration:.....)...CALayer层动画(CABasicAnimation,CAKeyframeAnimation) 接下来我会根据简单到复杂的顺序解释如何使用这些动画,注意事项和分析什么时候使用他们。...注意事项 1.animateWithDuration虽然是使用block,但是这个block不需要我们对变量弱引用,因为它是类方法。...2.只执行一(或者有限几次)的情况下优先使用,因为这个动画每次执行次数的参数。如果想反复执行一种动画,就要使用递归,但是递归在方法释放时很容易出现问题。...所以执行完动画后要注意你的layer坐标是否回归到正常。 2.动画只想执行一,需要配置removedOnCompletion、fillMode两个属性,要不然动画会自动执行逆动画

    86150

    直播APP常用动画效果

    所以每次访问NSCache,即使上一已经加载过,也需要判断返回值是否为空。 3、图片裁剪 为了减少图片资源的大小,有时候会把多个帧动画做成连续的一张图。...[UIView animateWithDuration:TOTAL_TIME delay:0 options:UIViewAnimationOptionCurveLinear animations:^{....layer addAnimation:upDownAnimation forKey:@"upDownAnimation"]; 4、闪烁效果 闪烁的本质是alpha的变化,但是UIView的block动画不好实现重复效果...maskLayerAnimation forKey:@"maskLayerAnimation"]; 7、旋转效果 灯光扫动,花朵旋转等旋转效果,都可以transform的rotation.z属性来实现; 同样使用...CAKeyframeAnimation实现,设定好初始、中间、结束状态,动画时间已经重复次数,并添加到layer,完成旋转效果; CAKeyframeAnimation* rotationAnimation

    1.6K80

    《Motion Design for iOS》(十七)

    iOS提供了一些内置的技术来创建动画:创建并添加一个CAAnimation到我们之后要讨论的layer中,或者使用简单的基于block的动画方法来动画化UIView的值。...选项(options)参数让我们设置想要使用动画类型(它还允许你设置一大串其他选项例如在动画完成后自动反转),所以这个简单的测试中我们选择UIViewAnimationOptionCurveEaseInOut...接下来,动画(animations)安排使用了一个block代码作为值,在block中你可以设置你要动画的视图的最终状态。...Core Animation会自动在球的当前尺寸值和你的最终值之间更改来产生一个平滑的动画。这一,我希望动画能最终让球变成两倍大,所以我设置了球的transform属性为一个新值。...现在让我们再添加一些值的改变到动画block中来丰富你使用基于block的动画可以操作的内容。

    95920

    微信团队分享:详解iOS版微信视频号直播中因帧率异常导致的功耗问题

    4.4动画渲染 当我们调用-[UIView animateWithDuration:animations:] api触发动画后,整体动画渲染过程如下图3步所示。...那它又是如何工作的呢?...,接着会在每8ms间触发一_UIUpdateSequenceRun,来执行 UIScrollViewAnimation 的动画 progress 计算操作。...6、我们的优化方案 6.1概述 从 iOS15开始苹果新增加了 preferredFrameRateRange api 可用于设置相应动画timer的刷新频率,我们就可以基于该方案去改造相应动画即可。...,RunLoop 的回调间隔可能只有几十 us,那么 Timer 的灵敏度远高于 DisplayLink,所以完全是有可能在2帧渲染之间,回调了一 Timer,而最终导致可能会多触发了一帧的提交渲染事件

    48000

    浅汇-iOS 动画

    其次,我们知道iOS平台的Cocoa Touch 是源于OS X平台的Cocoa),是在Cocoa的基础上添加了适用于移动手机设备的手势识别、动画等特性;但从底层实现上来说,Cocoa Touch与Cocoa...基于UIView实现的动画 简单的Block动画 [UIView animateWithDuration:0.2 animations:^{  }]; [UIView animateWithDuration...常用属性 duration : 动画的持续时间 beginTime : 动画的开始时间 repeatCount : 动画重复次数 autoreverses : 执行的动画按照原动画返回执行 timingFunction...(CATransition) 多数为私有的API使用后`无法上架app`。...对于想要了解矩阵变换是如何作用实现的,可以参考这篇博客:CGAffineTransform 放射变换 在开始使用transform实现你的动画之前,我先介绍几个常用的函数: /// 用来连接两个变换效果并返回

    86330

    iOS动画专题·UIView二维形变动画与CAAnimation核心动画(transform动画,基础,关键帧,组动画,路径动画,贝塞尔曲线)

    (2) 一般在实际开发中都是平移,旋转,缩放组合使用。...如果在程序中改变了某个控件的transform,那么请不要使用这个控件的frame计算 子控件 的布局,应该使用bounds+center代替。 3....CAAnimation核心动画 CAAnimation——所有动画对象的父类 3.1 设置动画的一种语法形式 addAnimation /** * 抖动效果 */ -(void)shakeAnimation...,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,应该使用它具体的子类 3.3 CAAnimation类的属性 带*号代表来自CAMediaTiming协议的属性) *duration:动画的持续时间...*repeatCount:重复次数,无限循环可以设置HUGE_VALF或者MAXFLOAT *repeatDuration:重复时间 removedOnCompletion:默认为YES,代表动画执行完毕后就从图层上移除

    3.3K21

    《Motion Design for iOS》(四十四)

    } else { self.hamburgerOpen = YES; // 添加把三条线变成X动画 } } 我们需要一种方式来记录按钮是否被动画X了...这不是一个不重要的例子,它由多个单独的动画组成,但如大多数动画代码一样,它会一步一步执行。我们一直一只写一个动画block,除了这次有很多动画!让我们先从淡出中间行开始。...,我们需要确保我们的动画时流动的,即使用户疯狂地快速点击按钮并打断我们的动画。...如果它们存在,我们就使用存在的动画并且只设置一个新的toValue,如果不存在,我们就构建一个新的动画对象。...还有,我对这个颜色过渡没有使用任何弹性,因为我确实不想颜色动画过度迭代红色然后变成一些奇怪的颜色。 这时候当用户点击按钮时我们还没有X,但已经有了这个可爱的视觉了。

    31720

    玩转iOS转场动画

    之前的动画相关博客列举如下: iOS动画开发之一——UIViewAnimation动画使用:https://my.oschina.net/u/2340880/blog/484457 iOS动画开发之二...二、UIViewController进行模态跳转的转场     首先,使用CoreAnimation框架中的CATransition类也可以实现视图控制器的转场动画,前面的博客有过讨论,这里不再重复。...presentViewController这个函数使用率可谓是非常高的,默认的转场动画为新的视图控制器从下向上弹出,dismissViewControllerAnimated函数的返回动画则是弹出动画的逆序播放...,我们可以使用UIViewControllerTransitioningDelegate协议来完全自定义想要的转场动画效果。    ...之后实现如下两个函数: //设置转场的动画不论是pushpop 返回nil 则使用系统默认的导航转场动画 - (nullable id <UIViewControllerAnimatedTransitioning

    1.3K51

    android 实现控件左右上下抖动教程

    fromXDelta:x轴起点抖动位置 toXDelta:x轴终点抖动位置 duration:循环播放的时间 interpolator:循环不放设置(次数) -- </translate...2、个人碰到一个问题就是在Activity实现监听中添加动画效果第一没有反应,不知道为什么 补充知识:Android 抖动提示动画 左右抖动 ObjectAnimator animator = ObjectAnimator.ofFloat...(textView, "translationX", 0, 100, -100,0); animator.setDuration(200); animator.start(); 重复左右抖动 Animation.../**倒序重复REVERSE 正序重复RESTART**/ translateAnimation.setRepeatMode(Animation.REVERSE); nope.startAnimation...setDuration(1000); } 以上这篇android 实现控件左右上下抖动教程就是小编分享给大家的全部内容了,希望能给大家一个参考。

    2.4K20
    领券