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

iOS动画系列之四:基础动画之平移篇2. 创建不同速度控制的动画3. Swift版本的部分差异

最终实现的效果: BasicAnimation.gif 步骤如下: 1, 创建CALayer。 2, 设置CALayer的位置、大小、背景颜色。...basicAni.duration = 2; //动画填充模式 basicAni.fillMode = kCAFillModeForwards; /...创建不同速度控制的动画 上面代码里面我们看到了有一些莫名其妙出来的字符串,例如在设置动画属性的时候出来的: //设置动画属性 basicAni.keyPath = @"position"...2; //动画重复次数 basicAni.repeatCount = CGFLOAT_MAX; //xcode8.0之后需要遵守代理协议 basicAni.delegate...Swift版本的部分差异 Swift版本几乎和OC的一模一样。略有不同的是,swift在加载layer的时候,我们使用了懒加载的方式。也就是在使用的时候才去创建这个layer。

2.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于 HTML5 的 3D 工控隧道案例

    、SplitView 和 TabView 等容器中使用,而最外层的 HT 组件则需要用户手工将 getView() 返回的底层 div元素添加到页面的 DOM 元素中,这里需要注意的是,当父容器大小变化时...但如果父容器是原生的 html 元素, 则HT组件无法获知需要更新,因此最外层的 HT 组件一般需要监听 window 的窗口大小变化事件,调用最外层组件 invalidate 函数进行更新。...} 我在场景中添加了一些功能,包括前面提到过的一些动画操作,HT 封装好的 dataModel.addScheduleTask(task) 通过操作数据容器 dataModel 来控制加载动画,动画部分在参数... 我的动画一共三个,两个隧道中各有一个风扇、一个风向仪以及一个卷闸门。...data.r3(0, (data.r3()[1]+Math.PI/12), 0);//r3 为 3d 中的旋转,这里 y 轴在原来的基础上再旋转 Math.PI/12 角度 }else if(tag

    80420

    烧脑预警,useEffect 进阶思考

    (); }, [anime01, anime02]); 因为需求中的方块有两次不同的动画过程,因此我定义了两个布尔型状态来表达每段状态运行与否,当状态为 true 时,执行对应的动画函数 针对这个案例...2. 当需求变动,白色方块存在三个甚至更多段动画,那么我们应该怎么办? 01 逻辑解耦 目标对象有两段动画,每段动画效果不一样。因此我们需要分别去定义每段动画的执行。...} }) } 此处我们只关注动画的执行与动画执行结束的时刻,可以用不同的方式来实现,本处案例并非唯一方案 当需求变动,需要执行 3 段动画,甚至更多,我们只需要相对应的增加不同的动画函数即可...,那么,在复杂的逻辑之下,我们只需要控制开关,就能控制动画的执行,因此 第一段动画执行完毕,下一段动画要开始执行,我们只需要关闭第一段动画的开关,打开第二段动画的开关 function animate01..., anime02]); 03 状态解耦 此时,所有的开关都被放在一个 useEffect 中聚合,从可读性的角度来看并不可取。

    66760

    给单元素艺术添加动画

    对于工具的学习,我很愿意尝试一些不同的、有趣的方法,否则你可能永远也学不会。因为单个 div 元素的限制,它并不适合实际的生产工作,但是可以作为锻炼技能的一次练习或挑战。...风箱的运动需要设置不同的 scaleX 值而另外两个部分则设置跟随风箱运动的 translateX 值。这样,一个简易的手风琴就诞生了。...现在我们可以考虑修改 --button-key2 或者手风琴的装饰线 --shine 来添加动画。解决这个问题的方法有很多。...这个方法对于切换某个属性非常有用 (比如直接改变大小、位置或颜色)。手风琴右侧按钮部分用的就是这一方法 (如果关键帧方法不被支持的话可以用这个方法替换)....最终使用 JS 修改它们的值并创建开关动画。 var enabled = false; setInterval(function() { enabled = !

    1.5K50

    CSS3的loading制作,让页面加载时不再单调

    2、主要涉及到的知识点 此效果的实现并不是很难,只需要借助之前CSS3文章系列中讲解过的圆角、变形、动画,在配合上相应的位置定位即可实现,具体我们来分析下需要用到的知识点。...其主要使用方式如下: transform: rotate(30deg); 通过指定的角度参数对元素指定一个旋转,其中angle是指旋转角度,如果设置的值为正数表示顺时针旋转,如果设置的值为负数,则表示逆时针旋转...3)CSS3动画 借助CSS3的animation来实现圆环的转动效果,配合关键帧keyframe,让圆环在不同的旋转时期发生不一样的变化。...3、基本实现思路 利用两个div来实现左右各半的位置大小制作,然后借助圆角边框实现圆环样式的控制,让原来是方形的块变成圆形;之后控制不同方向上的边框颜色,调整最佳的视觉效果;最后利用CSS3的动画,实现圆环的转动...5、总结 此效果采用的是两个div各占父级一半大小的布局方式,然后借助定位实现两个半圆的完美拼接,最后针对边框的不同方向,给予不同的颜色变化,配合上动画的效果,实现最终的圆环转动与相应的颜色变换。

    2K90

    CSS3与页面布局学习总结(六)——CSS3新特性(阴影、动画、渐变、变形、伪元素等)

    3.2、after after也是一个与before类似的伪元素,不同的是他的位置是在内部的尾部,示例如下: : 用长度值设置对象的圆角半径长度。不允许负值 : 用百分比设置对象的圆角半径长度。不允许负值 这里有两部分,第一个角度是水平角度,第二个角度是垂直角度。...2、支持百分比值,百分比值大小事相对于边框图片而言,假设边框图片大小为400px*300px,则20%的实际效果就是剪裁了图片的60px 80px 60px 80px的四边大小。...x,y,z,第4个参数表示旋转的角度,参数不允许省略 rotatex(): 指定对象在x轴上的旋转角度 rotatey(): 指定对象在y轴上的旋转角度 rotatez(): 指定对象在z轴上的旋转角度...八、动画 前端可以使用javascript实现一些简单的动画,但是有很大局限;jQuery解决了部分问题,对于一些小的动画jQuery表示不错,但复杂的过渡效果也无能为力;CSS3中引入了2种动画效果表现不错

    3.2K50

    原 荐 基于 HTML5 Canvas 的交

    false, 0.00001);//自适应大小,参数1为是否动画,参数2为gv与边框的padding值 gv.setMovableFunc(function(){ return false;//...不同点在于鼠标移动到“换乘站点”时,“换乘站点”会旋转。...(e.data, false, 10);//将事件下的节点自适应到拓扑图的中央,参数1为自适应的节点,参数2为是否动画,参数3为gv与边框的padding } else if(e.kind...image.png “呼吸”的部分是利用 ht 的 setAnimation 函数来完成的,在用这个函数之前要先打开数据容器的动画开关,然后设置动画: dm.enableAnimation();//打开数据容器的动画开关...node.setSize(1, 1);//设置节点的大小 node.setLayer('firstTop');//设置节点显示在gv的最上层 node.s('2d.visible

    99840

    CSS背景属性知多少?

    需要调整背景图片的尺寸,一般来讲图片的尺寸并非百分百就符合元素所在矩形框大小,此时如果想要在盒模型容器中全部展示图片或展示部分,就需要用到该属性去调整(拉伸)背景图的尺寸 示例代码: div class...,终点颜色),起点和终点的角度值可以参考下面的图: 起终点角度计算 第一个参数角度的计算以时钟⏰12点方向为0度(deg),顺时针方向旋转角度。...预览效果不佳,可移步:https://codepen.io/DYBOY/pen/poNMxbX 2.2 不规则几何变换背景(Magical Wallpaper) 上面是借助线性渐变,那么我们再增加径向渐变,不同角度...,不同变换的中心点,不同size,那么就可以实现一个不规则几何渐变背景,随便截个图都是一张抽象派壁纸 效果如图: 预览效果 这里就不贴代码了,代码略长 代码&动态演示:https://codepen.io...基于background的逐帧动画首先需要准备好包含动画关键帧的雪碧图 例如素材: 雪碧图素材 代码这么写: div class="frames-anim">div> *{ padding

    1.1K20

    基于 HTML5 结合互联网+ 的 3D 隧道

    、SplitView 和 TabView 等容器中使用,而最外层的 HT 组件则需要用户手工将 getView() 返回的底层 div元素添加到页面的 DOM 元素中,这里需要注意的是,当父容器大小变化时...但如果父容器是原生的 html 元素, 则HT组件无法获知需要更新,因此最外层的 HT 组件一般需要监听 window 的窗口大小变化事件,调用最外层组件 invalidate 函数进行更新。...动画 我在场景中添加了一些功能,包括前面提到过的一些动画操作,HT 封装好的 dataModel.addScheduleTask(task) 通过操作数据容器 dataModel 来控制加载动画(https...: interval:间隔毫秒数,默认值为 10 enabled:是否启用开关,默认为 true action:间隔动作函数,该函数必须设置 我的动画一共三个,两个隧道中各有一个风扇、一个风向仪以及一个卷闸门...data.r3(0, (data.r3()[1]+Math.PI/12), 0);// r3 为 3d 中的旋转,这里 y 轴在原来的基础上再旋转 Math.PI/12 角度 }else if(

    69910

    01超精美渐变色动态背景完整示例【CSS动效实战(纯CSS与JS动效)】

    线性渐变 和 径向渐变的不同在于渐变色方向不同,线性渐变的渐变方向可以指定为 上下左右、角度以及对角渐变,径向渐变的方向则是基于某个中心点。...,所以顶部的颜色为橙色,第二个颜色给予的颜色是红色,所以此时在 div 中的颜色为红色。...1.6 渐变线(重点) 渐变线在渐变中是指渐变颜色停止的线,渐变线可以指定位置,并且可以通过渐变线使渐变色居于某一个范围之内,渐变线的使用一定是要在 2 种渐变色以上。...表示当前尺寸大小与中心点最近的 边 的距离 farthest-side 表示当前尺寸大小与中心点最远的 边 的距离 closest-corner 表示当前尺寸大小与中心点最近的 角 的距离 farthest-corner...渐变色移动需要使用对应的动画,动画使用 animation 属性,并且还需要定义一个帧动画。

    6.3K10

    室外温度已达34度,本博客提供自助风扇服务

    属性画出的扇页形状,再通过2根横竖的棍子拼接成了风扇的形状 div class="fan"> div class="title">//文字 ......首先,先写一个旋转动画,能够使风扇转起来,再通过js来调控风扇的开关 @keyframes rotate { 0% { transform: rotate(0deg);...*/ 就像这样我们确保了动画效果无误后,将动画时间设置为0s 2....控制转速 通过点击不同的按钮,实现转速的改变,也就是动画时间的改变,默认风扇是关闭的,当我们点击1到3档时,我们给leafs添加动画时间,也就是档数越大动画时间越短 switch (index) {...rot(.7) break; } function rot(rate) { leafs.style.animationDuration = `${rate}s` } 通过点击不同的按钮传入不同的

    30720

    如何实现一个圆弧倒计时进度条

    如果遮盖圆和左边亮色进度条设置一样的边框大小,会出现金色边 ? 好吧,样式方面已经基本完成,其他点缀的样式就不在这里列出了,可以看看下面的源码。...inittime; let animation; if (time > halfTime) { // 左半边还没转完 // 左半边:动画的初始角度...=左半边进度条初始角度+已经转的角度,最终角度=初始角度+120 度,动画持续时间=左半边还剩需要转的时间 // 右半边:动画的初始角度=右半边进度条初始角度,最终角度=初始角度...:起始帧和重点帧都=左半边进度条初始角度+120 度 // 右半边动画:动画的初始角度=右半边进度条初始角度+右半边已经角度,最终角度=初始角度+120 度,动画持续时间=剩余时间...,而倒计时因为未到 2 秒,定时器就清除了,下次还是会从 1 开始计时, // 这就会导致倒计时和动画的不同步,之类稍微校正一下,如果结束时间和开始时间取余数大于 500,就把倒计时

    2.6K30

    【CSS】398- 原生JS实现DOM爆炸效果

    效果分析 * 点击作为动画开始的起点,自动结束 * 每次效果产生多个抛物线粒子运动的元素,方向随机,展示内容不一样,有空间上Z轴的大小变化 * 需求上可以无间隔点击,即第一组动画未结束可播放第二组动画...,需要此粒子执行动画的角度,动画的力度,以及延迟时间 animate({ deg, pow, delay } = {}){ // 后续补全 } // 动画结束回调存储...: deleteEl 方法 为了更好的展示粒子内容,我们特意在constructor里创建了一个 Boom-Partical_con 元素用于模拟slot功能: insertChild方法,用于使用者展示不同的内容进行爆炸...力的分解图解 也就是说 我们可以知道一个方向上的力在XY轴的分量大小, 假设我们将 力 的概念 转化为 视图中 位移的概念, 我们将 力量1 记为 10vh的大小 于是我们可以定义全局变量 const...对于Boom.js的功能需求为 创建粒子 执行粒子动画,赋予动画力、角度、延时 设置粒子容器 可达到效果: 不关心业务,业务使用者传入每个粒子slot内容数组 粒子组件可复用 易于维护(可能是哈哈哈)

    3.5K70
    领券