Vue 超实用技巧!建立逻辑与动画样式的通道

开发 前端
我们公司的页面上,有一个页面有一个动画效果,具体代码我就不方便贴出来,我就拿一个小例子来大体展示一下这个简单的动画效果。

大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心。

背景

我们公司的页面上,有一个页面有一个动画效果,具体代码我就不方便贴出来,我就拿一个小例子来大体展示一下这个简单的动画效果。

图片图片

其实这个效果很好做,这不是问题的重点,我先贴出来这个动画的代码。

图片图片

支持变大变小?

产品提出了一个需求,那就是这个球要支持变大变小,我心想,那还不简单,搞两个按钮,点击设置球的宽高不就行了?

图片图片

但是我写出来后发现一个问题,球的宽高变大变小,他的动画出现了问题。

  • 变大了,那么这个球会移动出父节点
  • 变小了,那么这个球会到达不了父节点的边界

图片图片

其实问题很容易看出来,球的宽高变大变小了,但是动画计算的移动距离一直是calc(100% - 100px)。

图片图片

所以解决办法就是,当球的大小变了的时候,这个100px也得跟着改成实时的球宽才行。

但是这个100px是写在 keyframes 中啊,我要怎么去实时地去更改呢?JavaScript怎么才能跟class去联动呢?

css变量

诶!可以用css变量去做呀!我可以在球的节点上设置一个样式,这个样式是一个css常量,当我修改球宽高时,顺便也修改这个css常量,然后在 keyframes 中去使用这个css变量即可!

图片图片

现在球的宽高再怎么变,它都能一直保持同样的移动效果,不会达不到边界也不会超出边界了!!!

图片图片

责任编辑:武晓燕 来源: 前端之神
相关推荐

2010-05-27 21:54:19

光纤通道

2020-03-09 10:31:58

vue前端开发

2022-03-23 09:18:10

Git技巧Linux

2009-09-04 10:27:28

Linux实用技巧linux操作系统linux

2009-12-21 15:50:39

2010-10-08 15:44:17

vim

2022-11-03 10:28:59

PandasSAC机制

2024-05-17 08:52:43

SQL实用技巧行列转换

2011-04-08 15:40:01

Oracle认证

2009-01-03 09:34:30

ASP.NET.NET性能优化

2022-10-11 08:00:47

多线程开发技巧

2017-11-13 15:16:56

GitHub代码仓库

2022-05-30 09:01:13

CSS技巧前端

2010-09-14 10:41:24

DIV+CSS排版

2009-12-09 11:21:30

Linux实用技巧

2019-12-22 23:10:19

LinuxSSH加密

2019-11-25 10:12:59

Python技巧工具

2009-12-23 17:32:35

Linux构建软路由

2019-10-10 16:31:51

PyCharmPythonWindows

2024-05-22 09:29:43

点赞
收藏

51CTO技术栈公众号