html加入购物车的动画,vue实现加入购物车动画

预备基础

整体思路

定义商品列表,设置点击的元素(点击后触发加入购物车的函数addToShopCart)注:这里要把$event传递过去,方便得到target

定义一个component用来放购物车和运动的小球

定义一个component用来放运动的小球,里面包含多个ball,并且要在这里定义ball的运动函数方便前面的点击调用

实践

设置点击的元素

  • 点击添加

定义点击的函数,调用父组件的添加的方法(最终是调用购物车的drop)

// list.vue

export default {

methods: {

addToShopCart (event, item) {

// 通知后台,回调成功后执行下面的函数

this.$emit('add-to-cart', event.target)

}

}

}

定义一个component用来放购物车和运动的小球

定义drop方法,调用小球的drop,并给调用购物车组件的用

// shop-cart.vue

@import ShopCartBalls form 'shop-cart-balls.vue'

export default {

methods: {

drop (target) {

this.$refs.ball.drop(target)

}

}

}

定义运动的小球(引入到购物车的组件)

定义小球的动画函数

//shop-cart-balls.vue

export default {

data () {

return {

balls: [

{show: false},

{show: false},

{show: false}

]

},

dropBalls: []

},

methods: {

drop (target) {

for (var i = 0; i < this.balls.length; i++) {

var ball = balls[i]

if (!ball.show) {

ball.show = true

ball.el = target

this.dropBalls.push(ball)

return

}

}

},

beforeEnter (el) {

let count = this.balls.length

while (count--) {

let ball = this.balls[count]

if (ball.show) {

let rect = ball.el.getBoundingClientRect() // 获取小球的相对于视口的位移(小球高度)

let x = -(window.innerWidth - rect.left - 126)

let y = rect.top - 90 // 负数是从左上角往下的的方向, 正数是往上

el.style.display = '' // 清空display

el.style.webkitTransform = `translate3d(0, ${y}px, 0)`

el.style.transform = `translate3d(0, ${y}px, 0)`

// 处理内层动画

let inner = el.getElementsByClassName('inner-hook')[0] // 使用inner-hook类来单纯被js操作

inner.style.webkitTransform = `translate3d(${x}px, 0, 0)`

inner.style.transform = `translate3d(${x}px, 0, 0)`

}

}

},

enter (el, done) {

/* eslint-disable no-unused-vars */

let rf = el.offsetHeight // 触发重绘html

this.$nextTick(() => {

// 让动画效果异步执行,提高性能

el.style.webkitTransform = 'translate3d(0, 0, 0)'

el.style.transform = 'translate3d(0, 0, 0)'

// 处理内层动画

let inner = el.getElementsByClassName('inner-hook')[0] // 使用inner-hook类来单纯被js操作

inner.style.webkitTransform = 'translate3d(0, 0, 0)'

inner.style.transform = 'translate3d(0, 0, 0)'

el.addEventListener('transitionend', done) // Vue为了知道过渡的完成,必须设置相应的事件监听器。

})

},

afterEnter (el) {

let ball = this.dropBalls.shift() // 完成一次动画就删除一个dropBalls的小球

if (ball) {

ball.show = false

el.style.display = 'none' // 隐藏小球

}

}

}

}

css里面定义小球的样式和贝塞尔曲线

/* shop-cart-balls.vue */

.ball-container {

.ball {

&.v-enter-active {

/* 可以在上面的工具里跳出自己想要的曲线,调整参数 */

transition: all .6s cubic-bezier(0.11, 0.92, 0.98, 0.75);

}

.inner {

width: 16px;

height: 16px;

border-radius: 50%;

background: #f00;

transition: all .6s linear;

}

}

}

在list的父组件里面引入列表和购物车组件

定义addToCart函数,调用购物车的drop方法

import CommonityList from 'list.vue'

import ShopCart from 'shop-cart.vue'

export default {

components: {

CommonityList,

ShopCart

},

methods: {

addToCart (target) {

this.$refs.cart.drop(target)

}

}

}

参考

好了,本文写到这里就结束了,有问题欢迎留言和拍砖哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html 美化input file,Input[type=”file”] 显示效果美化方法 | 智慧宫

Html中input可以作为上传图片代码如下但是演示非常不好看&#xff0c;下面做一番美化处理&#xff0c;效果如下&#xff1a;文件上传美化前后对比美化方法隐藏 input 标签使用 label 标签在input标签位置显示&#xff1b;用js获取 input 中上传的文件名称&#xff0c;并在 labl…

html 进入效果,用css3实现简单的进入效果

这是一个比较简单的小例子&#xff0c;实现如图效果仅仅用css3就可以达到这种效果&#xff0c;代码如下&#xff1a;.div {position: relative;top: 20px;height: 300px;width: 200px;margin: 0 auto;background: blue;float: left;margin-left: 20px;}.div2 {position: relati…

计算机专业中agp是什么意思,计算机中AGP是什么意思及其特性介绍

AGP (Accelerated Graphic Ports 或者 Advanced Graphic Ports) 是当前已经被淘汰的图形系统接口。这项技术始于十四年以前&#xff0c;当时的3D图形加速技术开始流行并且迅速普及&#xff0c;为了使系统和图形加速卡之间的数据传输获得比PCI总线更高的带宽&#xff0c;AGP便应…

统计应用计算机基础,计算机基础应用试题及答案参考

计算机基础应用试题及答案参考计算机技术与通信技术的结合&#xff0c;使计算机网络得到发展。信息服务业的兴起使社会信息资源得到更广泛的利用。下面是小编为大家搜索整理的计算机应用基础训练题&#xff0c;希望能给大家带来帮助!1、计算机病毒是(B)。A.计算机系统自生的B.一…

计算机目标导学方法,计算机教学计划

计算机教学计划信息技术课程是一门特殊比较的学科&#xff0c;操作性较强&#xff0c;大部分学生对此相当感兴趣。 以下是为大家整理的计算机教学计划&#xff0c;希望对你们有所帮助&#xff01;篇一&#xff1a;计算机教学计划本学期我任教11级护理班的计算机应用基础课程教学…

java 网络编程connection timed out是什么意思_什么?听说这四个概念,很多 Java 老手都说不清...

Java 是很多人一直在用的编程语言&#xff0c;但是有些 Java 概念是非常难以理解的&#xff0c;哪怕是一些多年的老手&#xff0c;对某些 Java 概念也存在一些混淆和困惑。所以&#xff0c;在这篇文章里&#xff0c;会介绍四个 Java 中最难理解的四个概念&#xff0c;去帮助开发…

计算机相近专业有哪些,计算机相关的专业有哪些

计算机、会计及相关专业计算机及相关专业04015700 教育信息技术04034200 现代信息技术教育05034300 出版与电脑编辑技术05049300 互联网广告设计05047900 电脑艺术设计07010200 信息与计算科学07014100 计算数学及其应用软件07014200 信息科学07120100 电子信息科学与技术07120…

assembly 输出ab中所有数_.NET Core中批量注入Grpc服务

(给DotNet加星标&#xff0c;提升.Net技能)转自&#xff1a;张子浩cnblogs.com/ZaraNet/p/12167517.htmlGRPC 是谷歌发布的一个开源、高性能、通用RPC服务&#xff0c;尽管大部分 RPC 框架都使用 TCP 协议&#xff0c;但其实 UDP 也可以&#xff0c;而 gRPC 干脆就用了 HTTP2。…

福建高职计算机知识点,2013福建高职单招 计算机类专业 知识试题

2013福建高职单招 计算机类专业 知识试题计算机类专业基础知识试题第Ⅰ卷一、单项选择题(在每小题的四个备选答案中&#xff0c;选出一个正确答案&#xff0c;并将正确的字母标号填涂在答题卡相应在位置上&#xff0c;每小题3分&#xff0c;共120分)1、 世界上第一台计算机(ENI…

kdj指标主要看哪个值_悟空CRM:在线crm主要看这两个指标,都非常重要!

crm对很多企业都非常重要&#xff0c;可是很多人并不明白crm到底重要在哪些地方&#xff1f;比如说很多人都比较喜欢使用这个系统&#xff0c;尤其是在线crm。 在线crm主要看这两个指标&#xff0c;都非常重要&#xff0c;这两个指标如果上去了&#xff0c;基本上对企业的运营都…

在html中 正确的嵌套方式是( ).,HTML及网页制作练习题-完整版

1、在HTML中&#xff0c;()标记不可出现在和标记符之间。(C)(&#xff21;)(&#xff22;)(&#xff23;)(&#xff24;)2、(A)单元格所跨的列数(B)行的宽度(C)列的高度(D)单元格所跨的行数3、在HTML中&#xff0c;正确的嵌套方式是(B)。(&#xff21;)(&#xff22;)(&#xf…

鼠标控制视角wasd移动_绝地求生:为什么控制方向键是WASD?网友:就不能是其他键位吗?...

哈喽&#xff0c;大家好这里是大能有话说&#xff0c;现在的网络游戏越来越发达&#xff0c;每个游戏的玩法有非常多种&#xff0c;但是不知道小伙伴们有没有发现&#xff0c;在需要控制方向的情况下&#xff0c;咱们用的都是W、A、S、D这四个键&#xff0c;那为什么偏偏就一定…

19秋学期计算机网络基础在线作业,南开19秋学期(1709、1803、1809、1903、1909)《计算机网络基础》在线作业资料答案3...

19秋学期(1709、1803、1809、1903、1909)《计算机网络基础》在线作业-0003试卷总分:100 得分:100一、单选题 (共 15 道试题,共 30 分)1.物理层的主要任务描述为确定与传输媒体的接口的一些特性&#xff0c;()指明对于不同功能的各种可能事件的出现顺序。[A.]过程特性[B.]电气特…

javawed商店商品结算_微信小商店搭建

点击上方蓝字关注我吧个人也能搭建微信小商店了&#xff0c;直接下单&#xff0c;微信立马到账&#xff0c;方便快捷&#xff0c;对于个人来说&#xff0c;在网上卖东西&#xff0c;有了一个利于客户下单的渠道。1、微信小商店介绍为了进一步降低进入小程序生态经营和卖货的门槛…

计算机网络设置中如何删除家庭组,【求助】Windows无法从该家庭组中删除你的计算机...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼echo 服务名称fdPHost&#xff0c;显示名称Function Discovery Provider Host&#xff0c;进程svchost.exeecho DEMAND或DISABLED或AUTO(手动、禁止、自动)sc config fdPHost start DEMANDecho stop立即停止start立即开启delete删除…

图片还原去遮挡_斗罗:这届coser太强,动画刚播出两天,战损三哥就被还原了...

斗罗大陆作为玄机旗下的热门动画&#xff0c;不仅多次登上热搜&#xff0c;引发漫迷热议&#xff0c;还吸引了众位coser的注意力。作品从开播到现在&#xff0c;基本上绝大多数角色都曾被coser还原过。对于里面的热门角色&#xff0c;例如史莱克七怪&#xff0c;几乎是每更换一…

熟悉html css,编写HTML和CSS的前端开发中不一定熟悉JavaScript

原标题&#xff1a;编写HTML和CSS的前端开发中不一定熟悉JavaScript作为前端开发人员&#xff0c;HTML、css、Java是必备的知识技能&#xff0c;但是现实工作工作中并非所有的前端都知道Java&#xff0c;根据外国一个网站的匿名调查发现&#xff0c;有17%的开发人员不知道Java&…

fastapi 传输文件存文件_揭秘|国内影视文件传输的真相,跨境文件传输更不简单...

2020年影视行业至黑时刻总算要过去了&#xff0c;下半年复苏迹象已经显现。作为影视行业的基础搬运工&#xff0c;文件传输贯穿始末。无论是TB级原始素材还是后期协作的大文件&#xff0c;多团队高效协作必然要考虑大文件传输这个基础工具。在选择文件传输软件这件事上&#xf…

计算机考csp200分啥水平,计算机与信息工程学院成功举办第20次CCF CSP认证考试

2020年9月13日&#xff0c;计算机与信息工程学院在计算机大楼201举办第二十次CCF CSP认证考试。这是计算机与信息工程学院2019年12月与中国计算机学会签署协议、河南大学正式成为CSP认证考点以来&#xff0c;举办的首次CCF CSP认证考试。本次认证考试历时四个小时&#xff0c;共…

三菱goto怎么用_GOTO语句使用方法

课时&#xff1a;59节课时长&#xff1a;17.2小时课级&#xff1a;中级提高课程从FANUC和广数系统编程基础讲起&#xff0c;仅贴实际生产实践&#xff0c;适合职业院校教师、企业技术员、学生学习&#xff0c;讲解细致、全面&#xff0c;带你学习带你飞。基础入门篇主要介绍基本…