小程序详情页面多规格弹窗

在做小程序项目的时候  特别死像商城网站类的  商品有很多规格  需要点击触发弹窗,但是用直接显示和隐藏不能满足产品的需求,一般都是从下到上的弹出。官方文档

detail.wxml

<!-- 规则弹窗 -->
	<view class="popup {{open?'show':'hide'}}">
		<view class="popup-layout" catchtap="closeTap"></view>
		<view class="popup-container" wx:if="{{flag}}" animation="{{animationData}}">
			<view class="title text-center relative">
				<text>活动规则</text>
				<image catchtap="closeTap" src="../../images/chose.png"></image>
			</view>
			<view class="conts">
				<view class="font26 strong">下单返现规则:</view>
				<text>1、返现需3新用户首笔下单金额不低于你下单金额,如低于则返现最低下单金额</text>
				
			</view>
		</view>
	</view>

detail.js

 data: {
		
		open:false,
		flag:false,
		animationData:{},  //判断弹出上下滑动的
		
    },
// 规则弹窗
	ruleTap:function(){
		var that= this
		// 创建一个动画实例
		var animation  = wx.createAnimation({
		  // 动画持续时间
		    duration:300,
		    // 定义动画效果,当前是匀速
		    timingFunction:'linear'
		})
		 // 将该变量赋值给当前动画
		that.animation = animation
		// 先在y轴偏移,然后用step()完成一个动画
		animation.translateY(600).step()
		// 用setData改变当前动画
		that.setData({
			open:true,
			// 通过export()方法导出数据
			animationData: animation.export(),
			// 改变view里面的Wx:if
			flag:true
		})
		// 设置setTimeout来改变y轴偏移量,实现有感觉的滑动
		setTimeout(function(){
			animation.translateY(0).step()
			that.setData({
				animationData: animation.export()
			})
		},100);
	},
	//隐藏属性框
	closeTap:function(e){
	    var that = this;
	    var animation = wx.createAnimation({
	      duration:100,
	      timingFunction:'linear'
	    })
	    that.animation = animation
	    animation.translateY(600).step()
	    that.setData({
			open:false,
			animationData:animation.export()
	    })
	},

wxss

.popup{position: fixed;left: 0;right: 0;bottom: 0;width: 100%;height: 100%;z-index: 99;}
.popup-layout{position: absolute;left: 0;right: 0;bottom: 0;width: 100%;height: 100%;background: rgba(0,0,0,0.6);z-index: 100;}
.popup-container{position: absolute;left: 0;bottom: 0;right: 0; background: #fff;border-radius: 20rpx 20rpx 0 0;height: 60%; z-index: 999;}
.popup-container .title{height: 90rpx;line-height: 90rpx;}
.popup-container .title image{width: 39rpx;height: 39rpx;position: absolute;top: 25rpx;right: 25rpx;z-index: 999999;}
.conts{height: 90%;overflow-y: auto;padding-bottom: 30rpx;}
.conts .font26{width: 92%;display: block;margin: 0 auto;}
.conts text{width: 92%;display: block;margin: 0 auto;font-size: 22rpx;}

记录一下

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在微信小程序中实现在原页面上浮日期选择器的方法有很多,以下是一种比较简单的实现方式: 1. 在wxml文件中创建一个隐藏的,用于显示日期选择器: ```html <view class="popup" hidden> <picker mode="date" bindchange="onDateChange"></picker> </view> ``` 其中,picker组件的mode为date,用于选择日期,onDateChange是当用户选择日期时触发的事件。 2. 在js文件中创建一个变量,用于存储选择的日期: ```javascript Page({ data: { date: '' }, // ... }) ``` 3. 在wxml文件中创建一个按钮,用于触发显示: ```html <button bindtap="showPopup">选择日期</button> ``` 4. 在js文件中实现showPopup方法,用于显示: ```javascript Page({ // ... showPopup: function() { this.setData({ 'popupHidden': false }) }, // ... }) ``` 其中,popupHidden为一个布尔类型的变量,用于控制的显示和隐藏。 5. 在wxml文件中创建一个遮罩层,用于覆盖原页面,使得用户只能在中选择日期: ```html <view class="mask" hidden="{{!popupHidden}}" bindtap="hidePopup"></view> ``` 6. 在js文件中实现hidePopup方法,用于隐藏: ```javascript Page({ // ... hidePopup: function() { this.setData({ 'popupHidden': true }) }, // ... }) ``` 7. 在js文件中实现onDateChange方法,用于处理用户选择日期的事件: ```javascript Page({ // ... onDateChange: function(e) { this.setData({ 'date': e.detail.value, 'popupHidden': true }) } // ... }) ``` 其中,e.detail.value表示用户选择的日期,将其赋值给date即可。 以上就是在微信小程序中实现在原页面上浮日期选择器的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值