小程序底部优惠劵弹窗动画

这篇博客详细介绍了如何在小程序中实现底部优惠券弹窗的动画效果,包括CSS样式设置和JS交互逻辑。通过展示优惠券组件的布局、样式以及弹窗动画的JavaScript实现,帮助开发者理解如何创建一个具有吸引力的优惠券展示功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xml

 <view class="conter">
<!-- 小程序底部优惠劵弹窗动画 触发按钮-->
    <view class="coupon" bindtap="pop">
	        <text style="flex: 1; text-align: left;">优惠券</text>
	       <text wx:if="{
  {list.length!==''}}">满{
  {list[selectIndex].min_money}}减							     {
  {list[selectIndex].money}}
	       </text>
	      <text wx:else>无可使用优惠券</text>
	      <image src="../../images/right.png"></image>
   </view>

<!-- 小程序底部优惠劵弹窗动画 -->   
<view>
	<view class="mask" wx:if="{
  {chooseSize}}" bindtap="hideModal"></view>
	<view class="coupon-box" wx:if="{
  {chooseSize}}"  animation='{
  {animationData}}'>
		<view class="coupon-title">选择优惠券</view>
		<vie
### 微信小程序原生开发底部弹窗实现方法 在微信小程序中,可以通过自定义组件的方式创建一个具有动画效果底部弹窗。为了达到良好的用户体验,通常会结合`<view>`标签设置样式以及利用WXML中的条件渲染属性控制显示隐藏状态。 对于遮罩层的设计,在页面布局文件(WXML)里构建基础结构[^1]: ```xml <!-- WXML --> <view class="mask" hidden="{{!isShow}}" bindtap="hideMask"></view> <view class="bottom-popup" animation="{{animationData}}" hidden="{{!isShow}}"> <!-- Scrollable content area with images included --> <scroll-view scroll-y="true"> <image src="/path/to/image1.jpg"/> <image src="/path/to/image2.jpg"/> ... </scroll-view> </view> ``` 上述代码片段展示了如何通过`hidden`属性管理遮罩层(`.mask`)和底部弹出框(`.bottom-popup`)的状态切换;同时运用了`bindtap`事件监听器用于关闭操作。值得注意的是,这里还引入了一个可垂直滚动的内容区域(`<scroll-view>`)以便于展示多张图片或其他较长的信息列表[^3]。 针对动画部分,则可以在对应的WXSS文件中预先设定好初始样式,并借助JavaScript动态调整这些样式的数值从而触发过渡效果: ```css /* WXSS */ .mask { position: fixed; top: 0; bottom: 0; left: 0; right: 0; background-color: rgba(0, 0, 0, .5); } .bottom-popup { width: 100%; height: auto; /* Adjust according to actual needs */ max-height: 70%; /* Limit maximum visible height of popup */ overflow: hidden; transform-origin: center bottom; } ``` 最后,在JS逻辑处理函数中编写打开/关闭弹窗的具体行为,比如应用CSS Transform变换来模拟滑动进出屏幕的效果[^2]: ```javascript // JS Page({ data: { isShow: false, animationData: {} }, showPopup() { const that = this; // Create and export an Animation instance object. var animation = wx.createAnimation({ duration: 300, timingFunction: 'ease', }) this.animation = animation animation.translateY(-this.popupHeight).step() this.setData({ animationData: animation.export(), isShow: true }) }, hidePopup() { let animation = this.animation || wx.createAnimation(); animation.translateY(this.popupHeight).step() this.setData({ animationData: animation.export() }); setTimeout(() => { this.setData({ isShow: false }); }, 300); // Match the CSS transition time } }) ``` 此段脚本实现了当调用`showPopup()`时让底部弹窗平滑地上升进入视野范围内的功能,而执行`hidePopup()`则会使之缓缓下降直至完全消失不见。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值