微信小程序开发之弹出和隐藏遮罩层动画以及五星评分
白羽 2018-08-09 来源 :网络 阅读 1521 评论 0

摘要:本文将带你了解微信小程序开发之弹出和隐藏遮罩层动画以及五星评分,希望本文对大家学微信有所帮助

        本文将带你了解微信小程序开发之弹出和隐藏遮罩层动画以及五星评分,希望本文对大家学微信有所帮助


参考源码://www.see-source.com/weixinwidget/detail.html?wid=82https://blog.csdn.net/pcaxb/article/details/56276180https://developers.weixin.qq.com/miniprogram/dev/api/api-animation.htmltrain.wxml

 
 {{bankname}}
 {{index+1}}/{{allquestion.length}}
 




 
 {{questionlist.question}}

 

 
 A
 


 
 {{questionlist.choiceA}} 
 

 


 

 
 B
 


 
 {{questionlist.choiceB}}
 

 


 
 
 C
 


 
 {{questionlist.choiceC}}
 

 


 
 
 D
 


 
 {{questionlist.choiceD}}
 

 

 
 


 
 
 参考答案:{{questionlist.answer}}\n参考解析:{{questionlist.analysis}}
 

 


 
 
 查看答案
 

 



  
 
 

 
 
 这道题对你有用吗?评个分吧 
  
 
 
 
 
 
 
 
 
 确定
 

 
 
 



  
 
 


 

 
 
 


 
 
 

 
 
 
 




train.jsvar interval = "";//周期执行函数的对象
var time = 0;//滑动时间
var touchDot = 0;//触摸时的原点
var flag_hd = true;//判定是否可以滑动

let animationShowHeight = 300;//动画偏移高度

Page({

 /**
   * 页面的初始数据
 */
  data: {

 // 遮罩层变量
    animationData: "",
    showModalStatus: false,
    imageHeight: 0,
    imageWidth: 0,

 // 评分变量
    stars: [0, 1, 2, 3, 4],//评分数值数组
    normalSrc: '../images/score.png',//空心星星图片路径
    selectedSrc: '../images/fullstar.png',//选中星星图片路径
    key: 0,//评分
  },

 //点击星星
  selectRight: function (e) {
 var key = e.currentTarget.dataset.key
    console.log("得" + key + "分")
 this.setData({
      key: key
    })
  },

 // 确定评分
  mark_click: function () {
 this.hideModal()
  },

 // 显示遮罩层  
  showModal: function () {
 //创建一个动画实例animation。调用实例的方法来描述动画。
 var animation = wx.createAnimation({
      duration: 500,         //动画持续时间500ms
      timingFunction: "ease",//动画以低速开始,然后加快,在结束前变慢
      delay: 0               //动画延迟时间0ms
    })
 this.animation = animation
 //调用动画操作方法后要调用 step() 来表示一组动画完成
    animation.translateY(animationShowHeight).step()//     在Y轴向上偏移300
 this.setData({
 //通过动画实例的export方法导出动画数据传递给组件的animation属性。
      animationData: animation.export(),
      showModalStatus: true //显示遮罩层
    })
    setTimeout(function () {
      animation.translateY(0).step()
 this.setData({
        animationData: animation.export()
      })
    }.bind(this), 1)
  },

 // 隐藏遮罩层  
  hideModal: function () {
 var animation = wx.createAnimation({
      duration: 500,
      timingFunction: "ease",
      delay: 0
    })
 this.animation = animation;
    animation.translateY(animationShowHeight).step()
 this.setData({
      animationData: animation.export(),
    })
    setTimeout(function () {
      animation.translateY(0).step()
 this.setData({
        animationData: animation.export(),
        showModalStatus: false
      })
    }.bind(this), 200)
  },

 // 评分按钮
  score_click: function () {
 
  },


 /**
   * 生命周期函数--监听页面加载
 */
  onLoad: function (options) {
 
  },

 /**
   * 生命周期函数--监听页面初次渲染完成
 */
  onReady: function () {

  },

 /**
   * 生命周期函数--监听页面显示
 */
  onShow: function () {
    flag_hd = true;    //重新进入页面之后,可以再次执行滑动切换页面代码
    clearInterval(interval); // 清除setInterval
    time = 0;
    let that = this;
    wx.getSystemInfo({
      success: function (res) {
        animationShowHeight = res.windowHeight;
      }
    })
  },

 /**
   * 生命周期函数--监听页面隐藏
 */
  onHide: function () {

  },

 /**
   * 生命周期函数--监听页面卸载
 */
  onUnload: function () {

  },

 /**
   * 页面相关事件处理函数--监听用户下拉动作
 */
  onPullDownRefresh: function () {

  },

 /**
   * 页面上拉触底事件的处理函数
 */
  onReachBottom: function () {

  },

 /**
   * 用户点击右上角分享
 */
  onShareAppMessage: function () {

  },

})
train.wxsspage {
  background-color: #fff;
}

/* -----------------评分遮罩层----------------- */

/* 分享按钮 */

.share_btn::after {
  border: none;
}

/* 整个评分遮罩层 */

.buydes-dialog-container {
  width: 100%;
  height: 300rpx;
  justify-content: space-between;
  background-color: #fff;
  position: fixed;
  bottom: 101rpx;
 /* z-index: 998;   */
  border-top: 1rpx solid #e8e8e8;
}

/* 评分遮罩层顶部 */

.buydes-dialog-container-top {
  height: 100rpx;
  padding-top: 20rpx;
  display: flex;
  justify-content: center;
  flex-grow: 1;
  font-size: 32rpx;
  color: #737373;
}

/* 评分遮罩层底部 */

.buydes-dialog-container-bottom {
  height: 150rpx;
  padding-top: 20rpx;
  background-color: #fff;
  display: flex;
  justify-content: center;
  flex-grow: 0;
}

/* 空心的星星图片 */

.star-image {
  position: absolute;
  top: 100rpx;
  width: 60rpx;
  height: 60rpx;
  src: "../../images/score.png";
}

/* 触发评分点击的区域 */

.item {
  position: absolute;
  top: 0rpx;
  width: 60rpx;
  height: 60rpx;
}

/* 确认评分按钮 */

.mark_btn {
  width: 100%;
  height: 100rpx;
  background-color: #fff;
  color: #55c5ac;
  display: flex;
  justify-content: center;
  align-items: center;
  border-top: 1rpx solid #eaeaea;
  margin-top: 60rpx;
  margin-bottom: 150rpx;
  font-size: 32rpx;
}

/* 透明遮罩层(上) */

.touming_top {
  width: 100%;
  height: 900rpx;
  opacity: 0;
  position: fixed;
  bottom: 402rpx;
  z-index: 998;
}

/* 透明遮罩层(下) */

.touming {
  width: 100%;
  height: 101rpx;
  opacity: 0;
  position: fixed;
  bottom: 0rpx;
  z-index: 998;
}

    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程