vue2.0 购物车小球的实现

<div class="ballContain">  <div v-for="ball in balls">    <transition name="drop" @before-enter="beforeDrop" @enter="dropping" @after-enter="afterDrop" >      <div class="ball" v-show="ball.show">        <div class="inner inner-hook"></div>      </div>    </transition>  </div></div>

methods:{      drop: function (el) {        for (let i = 0; i < this.balls.length; i++) {            let ball = this.balls[i];            if (!ball.show) {                ball.show = true;                ball.el = el;                this.dropBalls.push(ball);                return;            }        }  },  beforeDrop: function(el) {    let count = this.balls.length;    while (count--) {      let ball = this.balls[count];      if (ball.show) {        let rect = ball.el.getBoundingClientRect();        let x = rect.left - 32;        let y = -(window.innerHeight - rect.top - 22);        el.style.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.style.webkitTransform = ‘translate3d(‘ + x + ‘px,0, 0)‘;        inner.style.transform = ‘translate3d(‘ + x + ‘px, 0, 0)‘;      }    }  },  dropping: function(el, done) {    /* eslint-disadle no-unused-vars */    let refresh = el.offsetHeight;    this.$nextTick(() => {      el.style.webkitTransform = ‘translate3d(0,0,0)‘;      el.style.transform = ‘translate3d(0,0,0)‘;      let inner = el.getElementsByClassName(‘inner-hook‘)[0];      console.log(inner);      inner.style.webkitTransform = ‘translate3d(0,0,0)‘;      inner.style.transform = ‘translate3d(0,0,0)‘;      el.addEventListener(‘transitionend‘, done);    });  },  afterDrop: function(el) {    let ball = this.dropBalls.shift();    if (ball) {        console.log(el);      ball.show = false;      el.style.display = ‘none‘;    }  }}
时间: 2024-10-17 16:55:40

vue2.0 购物车小球的实现的相关文章

完善慕课网Vue2.0购物车功能

使用vue2.0实现购物车和地址选配功能这门课程,早之前就在慕课网上看了,个人感觉很不错很适合刚入门vue的新手,最近做的项目都没用vue怕自己生疏了所以就再做一下练练手顺便完善一下老师没有做的小功能. 课程中实现的功能:商品列表的渲染.使用过滤器格式化商品金额.实现单件商品的计算单选全选.实现商品总金额计算和删除商品 完善的功能: 单选按钮选中后再计算总金额: 单选按钮如果全部选中则全选按钮为选中状态,如果没有全部选中则为默认状态 先上图看一下: 先创建一个vue的实例,以下列出的是本项目使用

vue2.0 transition

vue2.0 transition -- demo实践填坑 前言 vue1.0版本和2.0版本的过渡系统改变还是蛮彻底的,具体请自行详看文档介绍:https://vuefe.cn/v2/guide/migration.html#过渡.在使用2.0版本做过渡效果的时候,虽然比1.0版本强大很多,但是实践过程中还是踩了一些不应该踩但是还是踩了的坑.虽然官网文档已经很详细地介绍了各种应用场景,但是这里还是通过几个小demo案例来感受下vue2.0 transition 带来的便利吧! 实践 这里将通过

Vue2.0+Node.js+MongoDB 全栈打造商城系统

第1章 课程介绍简单回顾前端近几年的框架模式,了解不同时期下的框架特点.其次介绍Vue框架的背景和核心思想,以及同其它MV*框架的对比.1-1 课程-导学1-2 前端框架回顾1-3 vue概况以及核心思想1-4 vue框架优缺点对比 第2章 Vue基础从0到1,如何搭建一个简单的Vue项目:本章节主要讲解Node和Npm环境的搭建,其次介绍vue-cli脚手架的使用,以及通过详细拆解介绍脚手架生成的配置文件信息,最后给大家介绍了Vue涵盖的基础语法.2-1 nodejs和npm的安装和环境搭建2

Vue.js系列之项目搭建(vue2.0 + vue-cli + webpack )

1.安装node node.js环境(npm包管理器) cnpm npm的淘宝镜像 从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了(傻瓜式安装).安装完成之后,打开命令行工具,输入 node -v,如果出现相应的版本号,则说明安装成功. npm包管理器,是集成在node中的,所以,直接输入 npm -v就会显示出npm的版本信息. 2.安装cnpm 在命令行中输入 npm install -g cnpm --registry=http://registr

Vue2.0总结———vue使用过程常见的一些问题

Vue目前的的开发模式主要有两种: 1.直接页面级的开发,script直接引入Vue 2.工程性开发,webpack+loader或者直接使用脚手架工具Vue-cli,里面的文件都配置好了 webpack可以进行配置,配置多文件入口,进行多页面开发 第二种Vue开发,结合webpack打包完文件会很大,怎么解决这个问题? 1.webpack代码拆分:code-spliting 2.提取公共(如提取css,js) 3.预渲染:使用prerender-spa-plugin插件 4.后台----开启压

Vue2.0与 [百度地图] 结合使用———vue+webpack+axios+百度地图实现组件之间的通信

Vue2.0与 [百度地图] 结合使用: 1.vue init webpack-simple vue-baidu-map 2.下载axios cnpm install axios; 3.在main.js中引入axios,并使用 import axios from 'axios' /* 把axios对象挂到Vue实例上面,其他组件在使用axios的时候直接 this.$http就可以了 */ Vue.prototype.$http = axios; 4.引入百度地图的js秘钥--->最好在inde

[js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程

在git命令行下,执行以下命令完成环境的搭建: 1,npm install --global vue-cli  安装vue命令行工具 2,vue init webpack vue-demo   使用vue命令生成一个webpack项目,项目名称为vue-demo 3,cd vue-demo 切入项目 4,npm install安装package.json中的所有依赖包 5,npm run dev运行项目 一.父组件向子组件传递数据 然后删除默认的Hello.vue组件,把App.vue整理成以下

项目总结1(微信+vue2.0)

项目总结(vue2.0) 一.基础知识 1.生命周期(项目到用到的) Created:组件实例化创建完成,属性绑定DOM未完成.($el 属性还不存在). Mounted:组件挂在完成,虚拟DOM渲染到html上,mounted知执行一次(从mounted就可以获取到$refs,进行操作). 一般在created或是mounted进行一些ajax操作. updated:组件更新之后,可以获取到DOM节点. 2.数据渲染 v-if:是否创建DOM.一般用在不是频繁创建DOM元素的情况下,否则可用v

vue2.0 之文本渲染-v-html、v-text

vue2.0 之文本渲染-v-html.v-text 1.index.html代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>vuedemo</title> </head> <body> <div id="app"></div> <!-- built files w