国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

vue 2.0 購物車小球拋物線的示例代碼

2024-05-06 15:22:12
字體:
來源:轉載
供稿:網友

本文介紹了vue 2.0 購物車小球拋物線的示例代碼,分享給大家,具體如下:

備注:此項目模仿 餓了嗎。我用的是最新的Vue, 視頻上的一些寫法已經被廢棄了。

布局代碼

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

css代碼(使用stylus寫法)

.ball-container .ball  position fixed  left 32px  bottom 22px  z-index 200  transition all 0.4s cubic-bezier(0.49,-0.29,0.75,0.41)  .inner   width 16px   height 16px   border-radius 50%   background-color rgb(0,160,220)   transition all 0.4s linear

js代碼

data() {  return {   balls : [    {     show: false    },    {     show: false    },    {     show: false    },    {     show: false    },    {     show: false    }   ],   dropBalls: []  };},   methods: {  drop(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(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.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(el) {   /* eslint-disable no-unused-vars */   let rf = 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];    inner.style.webkitTransform = 'translate3d(0,0,0)';    inner.style.transform = 'translate3d(0,0,0)';   });  },  afterDrop(el){   let ball = this.dropBalls.shift();   if(ball) {    ball.show = false;    el.style.display = 'none';   }  }}

getBoundingClientRect()。方法請閱讀這篇文章//m.survivalescaperooms.com/article/134208.htm

說明:

goods 是一個組件,里面包含menu(div) , foods(div), shopcart(購物車組件)。其中foods 包含cartcontrol(即小球組件)

組件之間的通信:說明:菜單和商品

第1個問題:小球,需要獲取所點擊的商品的數量。

利用Vue的props,將foods值傳遞給cartcontrol。但是這樣有個問題。即子組件更新,無法同步回父組件。且,在子組件中,對food注冊了一個count屬性,此屬性也無法同步回父組件(goods)。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 禄劝| 梁山县| 丰镇市| 乾安县| 昆山市| 威远县| 加查县| 盐城市| 衡水市| 蒙山县| 广水市| 石台县| 方正县| 金华市| 惠州市| 辽宁省| 榆林市| 镇原县| 天台县| 康乐县| 江口县| 唐山市| 元朗区| 子长县| 仪陇县| 阿荣旗| 定安县| 蒙山县| 佳木斯市| 岳西县| 秦皇岛市| 大姚县| 汨罗市| 五常市| 建阳市| 景洪市| 新密市| 仲巴县| 当涂县| 邻水| 贞丰县|