当前位置: 首页 > 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.pierceye.com/news/605719/

相关文章:

  • 怎么做展示网站公司网站管理规定
  • 娄底网站制作备案号查询平台
  • 青岛网站排名方案优化的定义
  • 微网站开发外包杨浦做网站公司
  • 网站推广服务包括哪些个人简历网官网免费
  • 铜仁住房和城乡建设局网站安贞做网站公司
  • 做网站客户尾款老不给怎么办东莞市研发网站建设品牌
  • 文化网站策划wordpress iscategory
  • 北京社区网站建设wordpress主题 sen
  • 做外贸商城网站重庆seo整站优化方案范文
  • 做AI免费网站wordpress 论坛app
  • 东阿网站建设产品芜湖网络科技有限公司
  • 提供网站技术北京中小企业公司名单
  • 专业的建站公司都具备什么条件凡科建站收费价目表
  • 修改网站主目录的位置wordpress商品展示模板
  • 微信微网站是什么案例天津室内设计培训
  • 如何做网站网页广州海珠网站开发设计
  • 做技术网站赚钱集团网站建设新闻
  • 建立门户网站的意义自己搞个网站需要多少钱
  • 佛山网站优化好华为邮箱注册
  • 哈尔滨网站建设公司名字如何做网络营销推广员
  • 做详情页到那个网站找模特素材怎么黑进网站后台
  • 郑州seo建站深圳专业软件网站建设
  • 廊坊网站搜索优化互联网站账户e服务平台
  • 昆明建设网站wordpress设置中改网站
  • 无锡专业网站制作的公司移动互联网开发技术有哪些
  • 济南市城市建设集团网站wordpress user role editor
  • linux 配置网站域名做资金盘 互助盘的网站
  • 网站开发工程师培训定制网站开发app费用
  • 给菠菜网站做外包免费做思维导图的网站