自制微信小程序 提示插件 -- noticeUitis.js

Posted F_Ender

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自制微信小程序 提示插件 -- noticeUitis.js相关的知识,希望对你有一定的参考价值。

 /*

  noticeMsg.js

 by: FEer_llx

 2016/06/09

 */

var notice = {
  //用于计时器,判断动画事件结束时下一个动画事件才能执行
  flag: true,
  //头部自动下拉隐藏提示效果
  autoSlideDown: function (opt) {
    opt._this.animation.translateY(opt.changeVaule).step()
    opt._this.setData({
      animation: opt._this.animation.export()
    })
    setTimeout(function () {
      opt._this.animation.translateY(-opt.changeVaule).step()
      opt._this.setData({
        animation: opt._this.animation.export()
      })
    }, 3000)
  },
  //头部下拉提示效果
  slideDown: function (opt) {
    var _self = this;
    opt._this.animation.translateY(45).step()
    opt._this.setData({
      animation: opt._this.animation.export()
    })
  },
  //头部隐藏提示效果
  slideUp: function (opt) {
    opt._this.animation.translateY(-45).step()
    opt._this.setData({
      animation: opt._this.animation.export()
    })
  },
  //页面居中自动淡入淡出提示效果
  autoFade:function(opt){
    var that = this;
    that.flag = false;
    opt._this.animation.opacity(1).step()
    opt._this.setData({
      animation: opt._this.animation.export()
    })
    setTimeout(function () {
      opt._this.animation.opacity(0).step()
      opt._this.setData({
        animation: opt._this.animation.export()
      })
    }, 2000)
    setTimeout(function () {
      opt._this.setData({
        showTip: false
      })
      that.flag = true;
    }, 3000)
  },
  init: function (obj) { 
    var that = this;
    if (!obj || !obj.pointTo || !obj.effect) {
      return;
    }
    var opt = {
      _this: obj.pointTo,
      effect: obj.effect,
      during: obj.during || 100,
      changeVaule: obj.changeVaule || 50,
      delay: obj.delay || 0,
      transformOrigin: obj.transformOrigin || ‘50% 50% 0‘,
      timingFunction: obj.timingFunction || "linear",
    }
    opt._this.animation = wx.createAnimation({
      duration: opt.during,
      timingFunction: opt.timingFunction,
      delay: opt.delay,
      transformOrigin: opt.transformOrigin
    })
    //执行对应的效果函数
    if (opt.effect == "autoSlideDown"){
      that.autoSlideDown(opt);
    return; } else if (opt.effect == "slideDown") { that.slideDown(opt); opt._this.closeTip = function (){ that.slideUp(opt); }
    return; } else if (opt.effect == "autoFade"){ opt._this.setData({ showTip: true }) if(that.flag){ that.autoFade(opt); }
    return; }else{
    return;
  } } } module.exports.notice = notice;

  

调用:

var noticeUtils = require(‘../../utils/noticeUtils‘);

Page({
  data:{
    animation: ""
  }
  ...
  //在需要调用的地方调用该初始化方法即可如:
  noticeUtils.notice.init({    pointTo: this,
   //动画事件函数名称    effect: "slideDown",
   //动画执行的时间    during: 500,
   //动画过程需要改变的值,如改变的位移    changeVaule: 45,
   //动画延迟多少时间执行    delay: 0,
   //动画中心点   transformOrigin: ‘50% 50% 0‘,
   //动画执行时的线性   timingFunction: "linear"   })

  ...
)}

  

wxml:

  <view animation="{{animation}}" class="tip-slidedown"><text>提示:你好!</text><icon bindtap="closeTip" type="cancel" size="20" color="#fff" style="float: right"/></view>

  

补充说明:

  待续~~

 




















以上是关于自制微信小程序 提示插件 -- noticeUitis.js的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序自制scroll-view横向滑动滚动条

微信小程序开发之代码提示插件(VSCode)

159微信小程序跨页面跨组件同步全局状态跨页面跨组件通讯方案,使用自制广播模块实现

159微信小程序跨页面跨组件同步全局状态跨页面跨组件通讯方案,使用自制广播模块实现

微信小程序自定义弹窗wcPop插件|仿微信弹窗样式

sublime福音:微信小程序组件及API补全插件