码迷,mamicode.com
首页 > 微信 > 详细

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

时间:2017-06-09 20:25:12      阅读:838      评论:0      收藏:0      [点我收藏+]

标签:int   settime   eva   bsp   -o   highlight   color   动画   需要   

 /*

  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

标签:int   settime   eva   bsp   -o   highlight   color   动画   需要   

原文地址:http://www.cnblogs.com/luleixia/p/6973462.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!