当前位置:   article > 正文

微信小程序---缓慢展开和收起效果(不需要wx:if控制实现)_微信小程序点击展开效果动画

微信小程序点击展开效果动画

一、能实现效果:

效果一:

点击中间问题,在中间缓慢展开 ,将下面往下撑开,点击再次收起效果

效果二:

点击添加商品,缓慢向下展开,点击收起,缓慢将下面收起效果

二、实现方法:

1、实现的原理:

通过height高度来控制展开或收起,当不需要展示时,高度为0,超过的部分用overflow: hidden;来隐藏,可以通过该方法来让需要展示的页面隐藏起来,然后显示的时候,将height条件去掉,在加上transition来控制动画即可

 2、效果一具体实现方法:

wxml

  1. <view class='help'>
  2. <view class='help_item' wx:for="{{questList}}" wx:key="index">
  3. <view class='title' data-index='{{index}}' catchtap='panel'>
  4. <view class='title_1'>{{item.title}}</view>
  5. <view class='title_2'><image src="/pages/images/common/{{item.t ? 'up':'down'}}.png"></image></view>
  6. </view>
  7. <view class='detail' style="height:{{ item.t?'':0}}">{{item.content}}</view>
  8. </view>
  9. </view>

 js部分:

  1. data: {
  2. showIndex: 10,
  3. questList: [{
  4. title: 'Q:这是问题',
  5. content: "A:答案内答案内容答案内容答案内容答案内容答案内容答案内容容容答案内容容容答案内容容",
  6. t:false,
  7. }, {
  8. title: 'Q:这是问题',
  9. content: "A:答案内答案内容答案内容答案内容答案内容答案内容答案内容容容答案内容容容答案内容容",
  10. t:false,
  11. }, {
  12. title: 'Q:这是问题',
  13. content: "A:答案内答案内容答案内容答案内容答案内容答案内容答案内容容容答案内容容容答案内容容",
  14. t:false,
  15. }]
  16. },
  17. panel: function (e) {
  18. this.data.questList[e.currentTarget.dataset.index].t = !this.data.questList[e.currentTarget.dataset.index].t
  19. this.setData({
  20. questList:this.data.questList
  21. })
  22. if (e.currentTarget.dataset.index != this.data.showIndex) {
  23. this.setData({
  24. showIndex: e.currentTarget.dataset.index,
  25. })
  26. }
  27. else {
  28. this.setData({
  29. showIndex: 10
  30. })
  31. }
  32. },

wxss

  1. .help {
  2. width: 700rpx;
  3. margin: 0 auto;
  4. }
  5. .help .help_item {
  6. margin: 10rpx auto;
  7. }
  8. .help .help_item .title {
  9. font-size: 30rpx;
  10. height: 80rpx;
  11. line-height: 80rpx;
  12. /* background: #e2e2e2; */
  13. border-bottom: 1rpx solid #eeeeee;
  14. display: flex;
  15. }
  16. .help .help_item .title .title_1 {
  17. width: 630rpx;
  18. height: 80rpx;
  19. padding-left: 20rpx;
  20. }
  21. .help .help_item .title .title_2 {
  22. width: 50rpx;
  23. height: 60rpx;
  24. text-align: center;
  25. }
  26. .help .help_item .title .title_2 image {
  27. width: 40rpx;
  28. height: 40rpx;
  29. margin: 10rpx auto;
  30. }
  31. .help .help_item .detail {
  32. margin: 10rpx auto;
  33. font-size: 25rpx;
  34. line-height: 40rpx;
  35. font-size: 30rpx;
  36. height: 300rpx;
  37. transition: height 1s;
  38. -moz-transition: height 1s;
  39. /* Firefox 4 */
  40. -webkit-transition: height 1s;
  41. /* Safari and Chrome */
  42. -o-transition: height 1s;
  43. /* Opera */
  44. overflow: hidden;
  45. }

3、效果二实现方法:

原理实现是一样的,只需要将主要部分即可。

  1. .cart-add-box {
  2. height: 140rpx;//设置好展开需要到什么高度
  3. transition: height 0.5s;//设置好动画效果
  4. -moz-transition: height 0.5s;
  5. -webkit-transition: height 0.5s;
  6. -o-transition: height 0.5s;
  7. overflow: hidden;//高度为0时,直接隐藏内容
  8. }
  9. <view class='cart-add-box' style="height:{{ is_add_code?'':0}}">内容:小马哥</view>
  10. 通过is_add_code:true/false来展示效果即可。

方法简单,只需要明白实现的原理即可实现自己喜欢的效果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/77086
推荐阅读
相关标签
  

闽ICP备14008679号