比如:
onClick(){
this.loading = true
window.location.href = 'www.baidu.com'
this.loading = false
}
其实这里的这个加载状态一直都是在页面上有写上去的 只是隐藏掉了 然后通过方法触发它就可以了的 希望能帮到你 我不是做小程序的 所以我并不清楚代码如何实现 只是有一点思路而已
小程序和html页面有点不同,主要是使用js来实现动画效果,因为小程序自身有提供一种方式:wx.createAnimation(OBJECT),它创建一个动画实例 animation ,通过调用实例的方法来描述动画。最后通过动画实例的export方法导出动画数据传递给组件的animation属性,step()来停止动画,step() 表示一组动画完成。
我们主要用wx:createAnimation({})来设置一些参数,例如持续时间、延时、加载方式等,用export()来开启动画,在页面上调用animation=”{{动画名称}}”。具体步骤:
1)创建动画对象并设置有效参数==>wx:createAnimation({参数:有效值})
2)创建一组动画,调用step()来表示一组动画的完成==>动画对象.动画效果.step()
3)在data中设置一个对象vip_animal(自己随意命名),用该对象开启动画==>this.setData({vip_animal: animation.export()})
4)在页面上调用动画对象==>animation="{{vip_animal}}"
例子:淡入淡出动画效果(当淡入动画生效后1.5s,淡出动画开始生效)
在wxml上调用animation="{{vip_animal}}"来显示
如果需要设置循环效果。我们可以设置:(setAnimation为)
另一种方式:
在wxml上调用style="{{style_img}}"来显示
目前总结解决方法:同时需要设置模块的函数,函数都可放置在util.js中去。
首先:
一、在util.js中放入如下两组函数
1. 设置点击后多久不能再次 *** 作该
function throttle(fn, gapTime) {
if (gapTime == null || gapTime == undefined) {
gapTime = 1500
}
let _lastTime = null
// 返回新的函数
return function () {
let _nowTime = + new Date()
if (_nowTime - _lastTime >gapTime || !_lastTime) {
fn.apply(this, arguments) //将this和参数传给原函数
_lastTime = _nowTime
}
}
}
2. 设置加载动画
function showLoading(message) {
if (wx.showLoading) { // 基础库 1.1.0 微信6.5.6版本开始支持,低版本需做兼容处理
wx.showLoading({
title: message, mask: true
})
} else { // 低版本采用Toast兼容处理并将时间设为20秒以免自动消失
wx.showToast({
title: message, icon: 'loading', mask: true, duration: 20000
})
}
}
function hideLoading() {
if (wx.hideLoading) { // 基础库 1.1.0 微信6.5.6版本开始支持,低版本需做兼容处理
wx.hideLoading()
} else {
wx.hideToast()
}
}
并且将其导出作为页面使用:
module.exports = {
throttle: throttle,
showLoading: showLoading,
hideLoading: hideLoading,
}
二、将函数引入页面使用
const util = require('../../utils/util.js')
即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)