本帖最后由 liwp 于 2020-7-27 12:07 编辑 ' C: `1 p) b) u5 L
$ i0 N2 u$ V* v7 s- q5 J Mwxml:
" D; L) ^: y8 C1 z+ ]/ e5 H3 H- <view class="comments_box" style="{{unfold?'max-height:'+GoodsInfo.reviewList.length*80+20+'rpx;':''}}">
3 R* J0 w' U9 x) S6 t - <view class="unfoldText" wx:if="{{GoodsInfo.reviewList.length>1}}" bindtap="clickUnfold">{{unfoldText}}</view>/ I( {$ q* b4 O3 s4 w, a
- <block wx:for="{{GoodsInfo.reviewList}}" wx:key='index'>
3 a" p: A: R' d0 |6 H! G% ` - <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);'>8 A2 N' s7 Z8 Z( T- `% g, y
- <view class="comments_box_list_left">{{item.ReviewAppellation}}</view>
( R8 Y0 @/ s! S2 F9 _: Q - <view class="comments_box_list_right">{{item.ReviewContent}}</view> 7 x0 W3 t& Q4 [4 {! {
- </view>8 T7 G0 T- u( F
- </block>
( O% c- O+ }5 H - </view>
复制代码 wxss:
, W3 |* x( s5 E- .comments_box{0 ^- H0 ^1 X& Z! v
- margin-top: 20rpx;
7 Y2 a1 I3 j0 l. q* j - width: 100%;3 Q! G& _0 x7 n0 h
- overflow: hidden;, J3 C. f q' H
- transition: max-height 0.5s;" a1 b$ e* D% F. ]: u; v
- overflow: hidden;5 N/ g8 x& I7 |( Z
- max-height: 105rpx;
5 T- I8 {3 e+ S7 f1 M - }
复制代码 我这里是使用动画来控制comments_box这个view的高度(max-height)变化时的过渡效果,我在wxss中给定固定值测试是可以实现效果的,但是因为这个view的高度是随数据变化的,所以我只能在wxml中通过GoodsInfo.reviewList的数组长度计算出高度之后赋值,结果测试后发现没有动画效果。4 X- W c3 s1 w& p
所以我想在wxss中来使用GoodsInfo.reviewList的数组长度来计算高度,百度了一下,发现都是在wxml中使用的,跟我想要的不一样。
8 [7 S6 v$ X/ Z* F; a% C# A1 f- ]; |# R# v2 ~- v. p& \* o
' y7 F2 ?6 _5 l" b0 S% Y
% T5 \8 m4 b# f# C2 l- D
' i; ^7 C. p. M. F6 F
: n- ^+ z/ B" h: c( A7 O. A- l. y; X" H5 f
3 I: x9 \, |) w+ S
已解决:
# O& G7 {% x1 L! }( ]" ]/ S在开发过程中,通常碰到样式非固定的情况,这时候就要使用变量来规定样式,例如,一个view的宽度需要使用变量: 1. 在wxss中,定义变量:width:var(--width--); 2. 在js中,定义变量:viewWidth,并给这个变量赋予想要的值 3. 在xml中,使用wxss中的变量和js中的变量:style="--width--: {{ viewWidth }}px" + \. |) M3 W+ x
|