微信小程序自定义toast组件的方法详解【含动画】
网络编程 2021-07-04 15:50www.168986.cn编程入门
这篇文章主要介绍了微信小程序自定义toast组件的方法,结合实例形式详细分析了微信小程序自定义toast组件的步骤、实现方法及相关操作技巧,需要的朋友可以参考下
本文实例讲述了微信小程序自定义toast组件的方法。分享给大家供大家参考,具体如下
怎么创建就不说了,前面一篇有
直接上代码
wxml
<!-- ponents/toast/toast.wxml --> <view class="toast-box {{isShow? 'show':''}}" animation="{{animationData}}"> <view class="toast-content" > <view class="toast-img"> <block wx:if="{{type==='suess'}}"> <image class="toast-icon" src="xxx" /> </block> <block wx:if="{{type==='fail'}}"> <image class="toast-icon" src="xxx" /> </block> </view> <view class="toast-title">{{title}}</view> </view> </view>
js
// ponents/toast/toast.js Component({ properties: { }, data: { type: 'fail', title: '你还没有勾选呢!', isShow: false, animationData: '' }, methods: { showToast: function (data) { const self = this; if (this._showTimer) { clearTimeout(this._showTimer) } if (this._animationTimer) { clearTimeout(this._animationTimer) } // display需要先设置为block之后,才能执行动画 this.setData({ title: data.title, type: data.type, isShow: true, }); this._animationTimer = setTimeout(() => { const animation = wx.createAnimation({ duration: 500, timingFunction: 'ease', delay: 0 }) animation.opacity(1).step(); self.setData({ animationData: animation.export(), }) }, 50) this._showTimer = setTimeout(function () { self.hideToast(); if (data.pelete && (typeof data.pelete === 'function')) { data.pelete() } }, 1200 || (50 + data.duration)) }, hideToast: function () { if (this._hideTimer) { clearTimeout(this._hideTimer) } let animation = wx.createAnimation({ duration: 200, timingFunction: 'ease', delay: 0 }) animation.opacity(0).step(); this.setData({ animationData: animation.export(), }) this._hideTimer = setTimeout(() => { this.setData({ isShow: false, }) }, 250) } } })
json
{ "ponent": true, "usingComponents": {} }
wxss
/ ponents/toast/toast.wxss / .toast-box { position: absolute; left: 0; : 0; width: 100%; height: 100%; z-index: 11; display: none; opacity: 0; } .show{ display: block; } .toast-content { position: absolute; left: 50%; : 35%; width: 350rpx; /height: 250rpx;/ border-radius: 10rpx; box-sizing: bordre-box; transform: translate(-50%, -50%); background: rgba(0, 0, 0, .7); } .toast-img{ width: 100%; height: 120rpx; padding-: 15rpx; box-sizing: bordre-box; text-align: center; } .toast-icon{ width: 100rpx; height: 100rpx; } .toast-title { width: 100%; padding:10rpx; line-height: 65rpx; color: white; text-align: center; font-size: 40rpx; box-sizing: border-box; }
使用
例如,在index.html中使用
在json中添加useComponents属性
"usingComponents": { "vas-prompt": "./ponents/toast/toast" }
wxml
<vas-toast id='toast'></vas-toast> <button bindtap="showToast">点击弹出toast</button>
js
//在onReady生命周期函数中,先获取prompt实例 onReady:function(){ this.prompt = this.selectComponent("#toast"); }, showToast:function(){ this.toast.showToast({ type: 'suess', title: '测试弹出消息', duration: 1000, pelete: function () { console.log('toast框隐藏之后,会调用该函数') //例如跳转页面wx.navigateTo({ url: 'xxx' }); } }) },
效果
希望本文所述对大家微信小程序开发有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程