当前位置: 首页 > news >正文

北京创意设计协会网站外语网站开发

北京创意设计协会网站,外语网站开发,河南映天建设网站,云南省建设执业资格注册管理中心网站原标题#xff1a;Vue 仿探探拖拽卡片的效果已更新Vue3版#xff0c;请给前端大全发送关键字vue3仿探探获取Vue3版类似 Tinder 和 探探 的卡片效果的组件#xff0c;社区中已经非常多了。我这一版除了可以实现和他们一样的效果外。还增加了 飞卡 的效果#xff0c;就是类似…原标题Vue 仿探探拖拽卡片的效果已更新Vue3版请给前端大全发送关键字vue3仿探探获取Vue3版类似 Tinder 和 探探 的卡片效果的组件社区中已经非常多了。我这一版除了可以实现和他们一样的效果外。还增加了 飞卡 的效果就是类似我的女神邱淑贞这样。可以将卡片朝任意拖拽方向飞出去必须得 帅 是不是下面带大家一步步来实现这个效果先叠起来咱们这次不要求在weex里可用所以叠起来非常简单。首先让三个卡片按照 近大远小 的原则分别设置设置 z-index 宽和高比如每一层卡片的宽和高比上一层卡片要缩小20个像素(还有一种做法是通过zoom或者scale来设置远处卡片的缩小级别)。然后加入绝对定位 position:absolute 和 z-index 就可以将卡片层叠起来了。拖动第一张卡因为只有第一张卡片可以拖动所以我们只要监听第一张卡片的拖动事件。比如 touchstart , touchmove , touchcancel , touchend 。拖动的时候需要注意在 touchstart 的时候记录一下手指按下的位置在 touchmove 时要减去这个位置看上去就是点哪儿从哪儿拖。touchStart: function( e){varcurTouche.touches[ 0];this.startLeftcurTouch.clientX- this.left;this.startTopcurTouch.clientY- this.top;}touchMove: function( e){varcurTouche.touches[ 0];this.leftcurTouch.clientX- this.startLeft;this.topcurTouch.clientY- this.startTop;}飞出去要实现超任意拖拽方向飞出去这个效果需要用到一些数学公式。计算卡片当前拖拽的坐标和起始坐标的夹角varangle Math.atan2((当前坐标.y-起点坐标.y), (当前坐标.x-起点坐标.x));飞出去的落点 x 轴坐标通过计算angle的余弦值再乘以力度得出this.left Math.cos(angle)* this.throwDistance;飞出去的落点 y 轴坐标通过计算angle的正弦值再乘以力度得出this.top Math.sin(angle)* this.throwDistance;这里咱们做得再完善一些在拖动结束时去判断一下当前拖动的距离是否足够触发飞卡效果。如果不触发飞卡效果则触发回位效果。这样的话也可以防止用户误操作。//计算两点之间的直线距离getDistance: function( x1, y1, x2, y2){var_x Math.abs(x1 - x2);var_y Math.abs(y1 - y2);returnMath.sqrt(_x * _x _y * _y);}vardistance this.getDistance( 0, 0, this.left, this.top);if(distance this.throwTriggerDistance){this.makeCardThrow;} else{this.makeCardBack;}下层的卡片上推上推其实很简单一开始的时候我就定义了四张( 不是3张吗怎么变4张了 )卡片的大小和位置。当第一张卡飞出去后第2张卡片变更为原本第1张卡片的位置和大小this.width2this.cardWidth;this.height2 this.cardHeight;this.left2 0;this.top2 0;第3张卡片变更为原本第2张卡片的位置和大小this.width3(this.cardWidth-this.leftPad*2);this.height3( this.cardHeight- this.topPad* 2);this.left3 this.leftPad;this.top3( this.topPad* 3);第4张卡片原本是透明的现在变为第3张卡片的位置和大小this.width4(this.cardWidth-this.leftPad*4);this.height4( this.cardHeight- this.topPad* 4);this.left4 this.leftPad* 2;this.top4( this.topPad* 6);this.opacity4 1;我把阴影效果先去掉大家观察一下这个细节重置所有卡片底层的卡片上推和第一张卡片的飞出效果是同时进行的由css的 transition 来控制。不过时间是我们设定好的所以只要在上推和飞出的动画时间结束后我们重置一下所有4张卡片的大小和位置即可。this.onThrowStart;setTimeout( function( ){that.isThrow false;that.isAnimating false;that.onThrowDone;that.resetAllCard;}, 400);这里需要注意所有四张卡片都需要 瞬间 完成重置所以这步之前应该禁用掉transition动画。组件化为了适应各种使用场景我们要将这个效果封装一下。//提供几个事件分别是拖动时拖动结束飞卡结束飞卡失败(回位)onDragMove onCardDragMoveonDragStop onCardDragStoponThrowDone onCardThrowDoneonThrowFail onCardThrowFail//参数就不细说了都能看明白:cardWidth 200:cardHeight 200cardBgColor #fff:leftPad 10:topPad 6:borderRadius 8:throwTriggerDistance 100dragDirection all:hasShadow false:hasBorder true提供三个slot你可以非常方便的往卡片里塞内容//firstCardsecondCardthirdCard /slot现在来模仿几个效果 某乎的推荐回答 onDragMove onCardDragMoveonDragStop onCardDragStoponThrowDone onCardThrowDone:cardWidth 300:cardHeight 120:throwTriggerDistance 100dragDirection horizontal:hasShadow true仅允许水平拖动由于改变宽高会导致文字换行变化也许卡片用缩放的话用户体验会更好一些吧探探的效果实现探探效果的核心是监听卡片拖动的位置onCardDragMove(obj){if(obj.left -10){this.actionName 不喜欢;} elseif(obj.left 10){this.actionName 喜欢;} else{this.actionName ;}}源码仓库https://github.com/ezshine/ezflycard已更新Vue3版请给 前端大全 发送关键字 vue3仿探探获取Vue3版 返回搜狐查看更多责任编辑
http://www.zqtcl.cn/news/605719/

相关文章:

  • 中国室内设计联盟网官网网站专题页优化
  • 设计模板图热狗网站关键词优化
  • 无锡网站开发公司重庆网站有哪些
  • 做网站找什么公司工作网站开发思维导图内容
  • 有人知道做网站吗?wordpress多站点cdn
  • 网站风格特点大型外包公司有哪些
  • 如何网站seo用asp做网站有哪控件
  • 网站建设需要哪些成本wordpress商城建站教程
  • 做网络的网站很重要吗网站认证费用
  • flash网站项目背景网页截图快捷键可拉动
  • 郑州企业建设网站北京企业网站模板建站开发
  • 宣传旅游网站建设的观点是什么公众号怎么推广和引流
  • 企业网站制作多少钱山西网络营销方案
  • 焦作住房和城乡建设局网站旅行网站模板
  • 男做基视频网站国家重点高新技术企业名单
  • 公司官方网站开发网站建设电子商务
  • seo网站优化系统搜索引擎优化排名案例
  • 郑州网站建设工作室网站建设全流程 知乎
  • 如何利用源码做网站外贸网站制作推广
  • 国内做网站哪家公司好免费查找资料的网站
  • 自己做的网站百度搜不到搭建网站seo
  • 奇墙网站建设高端网站建设公司联系电话
  • 宁波那家公司做网站好中企动力科技股份有限公司招聘
  • 水果网站推广网站首页静态好还是动态好
  • iis网站属性小程序源码无需服务器
  • 景区网站建设材料代运营有哪些套路坑
  • 六安电商网站建设哪家好有关做美食的网站
  • 卸载wordpress插件网店seo关键词
  • 金山网站制作赤城seo网站优化排名
  • 提供坪山网站建设深圳商城网站哪家做的好