微信小程序自定义toast弹窗效果的实现代码
微信小程序自带的弹窗icon确实只有两种,即suess和loading。但为了满足更多自定义的需求,我们可以通过微信小程序中的自定义toast弹窗来实现更丰富多样的提示效果。以下是实现自定义toast弹窗的步骤及代码示例。
我们需要在微信小程序中新建一个wxml文件用于存放我们的自定义弹窗模板。例如,我们可以创建一个名为“customToast.wxml”的文件,并在其中添加如下模板代码:
```html
```
接下来,我们需要定义相关的样式。在对应的WXSS文件中,我们可以定义如下样式:
```css
.toast-outer {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.toast-inner {
min-width: 200px; / 根据需要调整宽度 /
background-color: 000; / 背景颜色 /
color: fff; / 文字颜色 /
padding: 10px; / 内边距 /
border-radius: 10px; / 边框圆角 /
}
.icon { / 这里是自定义图标的样式 /
font-size: 30px; / 图标大小 /
margin-right: 10px; / 与文字的间距 /
}
```
然后,在需要使用自定义弹窗的页面中引入这个模板文件,并在适当的位置使用``标签来引用我们的自定义弹窗模板。我们需要在页面的JS文件中定义相关的数据,如提示内容、是否显示弹窗以及自定义图标的类名等。例如:
在页面的JS文件中:
```javascript
Page({
data: {
isShowToast: false, // 控制是否显示弹窗
toastText: '提示内容', // 弹窗中显示的内容
iconClass: 'custom-icon' // 自定义图标的类名,需要与WXSS中定义的类名对应
},
// 其他页面逻辑...
})
```
我们可以通过修改`isShowToast`的值来控制弹窗的显示与隐藏,以及通过修改`toastText`和`iconClass`的值来更改弹窗的提示内容和图标。这样,我们就可以实现自定义的toast弹窗效果了。在微信小程序的世界里,一个定制的toast弹窗是常见的UI交互元素。让我们深入并生动描述如何实现这样的功能。
我们来定义一个显示弹窗的函数,就像这样:
toastShow函数:
```javascript
toastShow: function(str, icon) {
var _this = this; // 获取当前实例的引用
_this.setData({ // 使用setData方法来更新页面的状态
isShow: true, // 显示弹窗的标志位
txt: str, // 弹窗显示的内容
iconClass: icon // 弹窗的图标类名
});
setTimeout(function() { // 设置延时,使弹窗在一段时间后消失
_this.setData({
isShow: false // 更新状态,隐藏弹窗
});
}, 1500); // 延时1.5秒
}
```
然后,在需要显示toast弹窗的事件中调用这个函数。例如,在某个登录按钮的点击事件中:
log_btn函数:
```javascript
log_btn: function() {
var name = this.data.userName; // 获取用户输入的用户名
if (name == "") { // 如果用户名为空
this.toastShow('登录名不能为空', 'icon-suo'); // 显示带有提示信息的弹窗
}
}
```
接下来,为了让这个功能更通用,我们可以把这个弹窗的JS代码写入App的全局对象中。这样,任何页面都可以调用这个函数。例如:
在App对象中定义toastShow函数:
App对象中的toastShow函数:
```javascript
App({
toastShow: function (that, str, icon) { // that指的是当前页面的实例对象,方便后续调用setData方法更新页面状态。其余参数同上。
编程语言
- 微信小程序自定义toast弹窗效果的实现代码
- js禁止页面刷新与后退的方法
- AngularJs bootstrap搭载前台框架——js控制部分
- YII框架中使用memcache的方法详解
- ASP中Server.HTMLEncode用法(附自定义函数)
- thinkphp中html-list标签传递多个参数实例
- javaScript实现滚动条事件详解
- JSP生成静态页实践及其设计思想[转]
- jQuery dateRangePicker插件使用方法详解
- jQuery插件FusionWidgets实现的Bulb图效果示例【附de
- 复杂的javascript窗口分帧解析
- jQuery实现图片上传和裁剪插件Croppie
- asp.net core3.1 引用的元包dll版本兼容性问题解决方
- 怎样获知数据库的连接属性?
- JS常用知识点整理
- 简单理解PHP的面向对象编程方式