本帖最后由 liwp 于 2020-7-27 12:07 编辑 # }+ R) e& B9 {( B9 i' i9 G6 j2 F
. c7 U; I3 m3 Gwxml:( _( }2 W# M- a0 x- _
- <view class="comments_box" style="{{unfold?'max-height:'+GoodsInfo.reviewList.length*80+20+'rpx;':''}}">
) b5 I9 w5 `+ i - <view class="unfoldText" wx:if="{{GoodsInfo.reviewList.length>1}}" bindtap="clickUnfold">{{unfoldText}}</view>: @$ B0 P! q4 q$ `* M
- <block wx:for="{{GoodsInfo.reviewList}}" wx:key='index'>
! _3 E; ^; |* T- k - <view class="comments_box_list" style='transition: transform 300ms linear 0ms;transform: translateY(-{{unfold?0:((GoodsInfo.reviewList.length<1)?(index==0?(1-GoodsInfo.reviewList.length)*30:(1-GoodsInfo.reviewList.length+index)*30):index*30)}}rpx);'>
) n8 i' {! I4 @, z - <view class="comments_box_list_left">{{item.ReviewAppellation}}</view>
9 v4 [, @ p: B+ Q* a1 x% Z - <view class="comments_box_list_right">{{item.ReviewContent}}</view> 2 L W8 g+ ]/ B& Z% q! M
- </view>% [. i2 `; ^! s4 U' T
- </block>
8 W4 X4 f, v+ s& Q; L - </view>
复制代码 wxss:' v% @9 h+ w, c3 M9 n
- .comments_box{0 ]6 ^, X# }. |7 F4 L
- margin-top: 20rpx;
. R9 }0 b3 m1 t7 Z; c V - width: 100%;% f c# K; J" D" C3 N, B
- overflow: hidden;1 W: ?3 S; o2 k+ g* u
- transition: max-height 0.5s;# `& A9 b/ R1 I0 B
- overflow: hidden;4 l* u4 m+ e5 `5 m
- max-height: 105rpx;4 {1 ^: l8 Q. X E- \
- }
复制代码 我这里是使用动画来控制comments_box这个view的高度(max-height)变化时的过渡效果,我在wxss中给定固定值测试是可以实现效果的,但是因为这个view的高度是随数据变化的,所以我只能在wxml中通过GoodsInfo.reviewList的数组长度计算出高度之后赋值,结果测试后发现没有动画效果。
( }0 D$ h0 u- B' B所以我想在wxss中来使用GoodsInfo.reviewList的数组长度来计算高度,百度了一下,发现都是在wxml中使用的,跟我想要的不一样。
& {% E" `' k3 ^5 ]/ p k+ J
* _3 d0 a& c/ e4 r- j1 w, o( N/ u. r% ^; L
; r& [" J+ k' {$ }1 r. a
* B1 V# |) W2 V
7 J; ~! Q9 f& c% g ( P# X& Z% }- U0 M& U4 B1 M
. p& _1 _' ?/ d2 K$ M# r
已解决:
9 V4 Z6 x. c: r7 D1 v! r. \5 i在开发过程中,通常碰到样式非固定的情况,这时候就要使用变量来规定样式,例如,一个view的宽度需要使用变量: 1. 在wxss中,定义变量:width:var(--width--); 2. 在js中,定义变量:viewWidth,并给这个变量赋予想要的值 3. 在xml中,使用wxss中的变量和js中的变量:style="--width--: {{ viewWidth }}px"
; o( F# ^$ N- J* B: q3 n4 Q: Y |