这篇文章主要介绍了在canvas上实现元素图片镜像翻转动画效果的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 一、Canvas图片水平镜像翻转效果预览 您可以狠狠的点击这里:canvas图片水平镜像翻转动画demo dem
这篇文章主要介绍了在canvas上实现元素图片镜像翻转动画效果的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 一、Canvas图片水平镜像翻转效果预览 您可以狠狠的点击这里:canvas图片水平镜像翻转动画demo-[-/a> demo页面中点击图片动画效果可见。 二、Canvas上实现图片镜像翻转的实现
CSS中要想实现元素的翻转效果,比较简单,例如我们希望某一张图片水平镜像翻转,只需要一行CSS就可以了:
或者:
但是在canvas中,则要麻烦一些,麻烦的并不是无法翻转,而是坐标系的定位。 在Canvas中,如下代码可以实现资源的水平镜像翻转(假设 context 是Canvas的 2d 上下文):
或者使用 setTransform API直接矩阵变换:
然而,翻转虽然实现了,但是Canvas中元素定位就出了很大的问题。这是因为Canvas的坐标变换系和CSS不一样,因此,如果我们想实现居中翻转效果,需要在翻转之前将目标元素的中心点移动到变换轴上。 拿水平翻转距离,在 scale 之前先 translate 位移变换后的水平偏移,然后就能看到一直居中翻转的效果了。 语言苍白,拿图示意一下。 canvas默认的变化坐标系是左上角。 因此,如果水平 scale 为 1 , 0.5 , 0 , -0.5 , -1 时候的最终位置如下图示意:
于是可以得到应当偏移的水平距离公式:
如何增加动画效果呢? 我们可以借助Tween.js , www.ku0.com 酷站-[-/a> 里面有各种缓动算法,借助方便调用的 Math.animation() 方法,就能轻松实现我们想要的效果啦!
动画JS如下:
三、结束语 又是一篇冷文,canvas这东西,玩的前端并不多,受众有限,不比流行技术。然,古语有云,不以善小而不为,希望以后有小伙伴搜索到相关问题的时候可以提供帮助。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持酷站 www.ku0.com-[-/a>。 |
2021-10-12
2021-05-12
2020-05-01
2018-01-16
2019-07-09