重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要为大家展示了“vue框架如何制作购物车小球动画效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue框架如何制作购物车小球动画效果”这篇文章吧。
站在用户的角度思考问题,与客户深入沟通,找到鄂托克网站设计与鄂托克网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广、域名与空间、虚拟主机、企业邮箱。业务覆盖鄂托克地区。最近在学习前端制作了一个购物车小球的动画效果
直接上图看看效果
下面介绍一下制作这个动画的详细过程:
1.因为使用vue锁业需要使用transition标签包裹 并指定动画三个动画生命周期函数
//Ballflag默认指定为false不显示
样式设置成一个红色的小球采用absolute定位确保不影响页面的其他元素
.ball{ width: 15px; height: 15px; border-radius: 50%; background-color: red; position: absolute; top: 413px; left: 80px; z-index: 99; }
然后设置按钮 Ballflag = !Ballflag 取非 触发动画效果(这里就不多说了)
如果起始位置和终点位置都使用px固定死的话对于不同的分辨率的设备效果都有所不同所以为避免这一情况我采用了动态计算出 起始位置和终点位置下面是具体的动画的代码
.ball{ width: 15px; height: 15px; border-radius: 50%; background-color: red; position: absolute; top: 413px; left: 80px; z-index: 99; }
通过动态的计算出起点位置和终点的位置来实现动画效果(优势可以适配不同分辨率的设备)看到现在似乎整个动画效果已经完成了。
不过我在测试使用的时候发现一个问题
当我点击按钮触发动画的时候往下拉滚动条发现动画终点的位置并不是期望的那样到达购物车的位置原因是我在给小球设置样式的时候给display设置的absolute绝对定位 只会计算出一个页面中的绝对的位置,无法跟着滚动条来动。后来又想到可以使用fixed布局相对这屏幕来运动不受页面滚动的影响所以实现的代码如下样式
.ball{ width: 15px; height: 15px; border-radius: 50%; background-color: red; position: fixed; z-index: 99; top: 413px; left: 80px; }
****注意这里的boxPosition是页面中数量1的位置 即定位小球的位置
beforeEnter(el){ var boxPosition = this.$refs.boxPosition.getBoundingClientRect(); // console.log(boxPosition) // 获取目标的起始位置 var dist = boxPosition.y -413; el.style.transform = "translate(0,"+dist+"px)"; }, enter(el,done){ el.offsetWidth; var boxPosition = this.$refs.boxPosition.getBoundingClientRect(); var badgePosition = document.getElementById("badge").getBoundingClientRect(); //目标的起始位置 var dist = boxPosition.y -413; // 这里因为是使用boxPosition的位置不是小球的位置所以-10调整一下误差 var xDist = badgePosition.left - boxPosition.left -10; //这里要加上起始的定位 var yDist = badgePosition.top - boxPosition.top + dist; el.style.transform = "translate("+xDist+"px, "+yDist+"px)"; el.style.transition = "all 1s ease"; done(); }, afterEnter(el){ this.Ballflag = !this.Ballflag; },
这里就已经完成了小球的动画效果了
这样的动画不会因为页面的滚动而无法准确的定位而且还能适配不同分辨率的设备。
以上是“vue框架如何制作购物车小球动画效果”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联成都网站设计公司行业资讯频道!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。