本帖最后由 liwp 于 2020-7-27 12:07 编辑 - O# H4 B* Y! m+ U( f
- _6 z: ]" {7 \( c0 L' F! e. |wxml:
) L4 @3 p v c; D) D- n- <view class="comments_box" style="{{unfold?'max-height:'+GoodsInfo.reviewList.length*80+20+'rpx;':''}}">; g1 ]- H7 d. \2 `
- <view class="unfoldText" wx:if="{{GoodsInfo.reviewList.length>1}}" bindtap="clickUnfold">{{unfoldText}}</view>
( B( }, U( d5 n8 t& {9 `& w - <block wx:for="{{GoodsInfo.reviewList}}" wx:key='index'>1 K! q1 }/ D3 [1 ^1 |
- <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 f. ~3 ]8 m% h6 B" O6 w - <view class="comments_box_list_left">{{item.ReviewAppellation}}</view>
5 K: D* ^8 Y; _) D! c+ x! k6 ] - <view class="comments_box_list_right">{{item.ReviewContent}}</view>
. i% ~ ?5 Q0 B5 f6 N8 M5 _/ V - </view>
5 r- w7 d7 A& Q - </block> 8 c1 E: U5 x) ?) J
- </view>
复制代码 wxss:
+ R3 c7 |0 g7 i8 S7 c( b: [- .comments_box{- l9 O: i, y: e5 d& x
- margin-top: 20rpx;
2 o6 N* b% F& K! t& k0 d: _) o4 N - width: 100%; @# T7 P' ^6 M' S+ ^( G
- overflow: hidden;
' L8 A0 I) A1 M - transition: max-height 0.5s;% T/ X* r' M) p2 s" p( R, ]
- overflow: hidden;
( x; V- \ i% C- } - max-height: 105rpx;
% S7 f5 I: z& b4 ~3 @ - }
复制代码 我这里是使用动画来控制comments_box这个view的高度(max-height)变化时的过渡效果,我在wxss中给定固定值测试是可以实现效果的,但是因为这个view的高度是随数据变化的,所以我只能在wxml中通过GoodsInfo.reviewList的数组长度计算出高度之后赋值,结果测试后发现没有动画效果。
- t& V: P# k& l1 n4 O, ]. E所以我想在wxss中来使用GoodsInfo.reviewList的数组长度来计算高度,百度了一下,发现都是在wxml中使用的,跟我想要的不一样。
* M6 J, J& ^) E- V8 K- |% C$ X' L s; K2 W7 W& r i
; d& a) F: x( B! ?
; @2 {/ x8 J# n2 U" H/ Q
- \9 G: V/ _5 Y! `3 g% Q2 O3 U) T
# ]6 M" |: H- l, n8 t7 r s 0 N0 T5 V; v. t& W8 H* J
4 A* X6 M! ^0 U) k已解决:
+ F3 f5 W5 ^2 A) b$ v在开发过程中,通常碰到样式非固定的情况,这时候就要使用变量来规定样式,例如,一个view的宽度需要使用变量: 1. 在wxss中,定义变量:width:var(--width--); 2. 在js中,定义变量:viewWidth,并给这个变量赋予想要的值 3. 在xml中,使用wxss中的变量和js中的变量:style="--width--: {{ viewWidth }}px" 0 o+ t) @( ]- T6 n$ ?8 l* J4 j
|