本帖最后由 liwp 于 2020-7-27 12:07 编辑 7 Q) P2 D# b! m& T: V- S
+ a! c0 o0 q# G4 d, `
wxml:& k- V; ]( j; B8 J: `
- <view class="comments_box" style="{{unfold?'max-height:'+GoodsInfo.reviewList.length*80+20+'rpx;':''}}">6 d' R' Q, G3 S B
- <view class="unfoldText" wx:if="{{GoodsInfo.reviewList.length>1}}" bindtap="clickUnfold">{{unfoldText}}</view>
* d! j$ Q& {5 F6 w - <block wx:for="{{GoodsInfo.reviewList}}" wx:key='index'>
3 V' F' C( y4 h E) ` - <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);'>6 m/ w7 H# G% L, L7 P2 V4 k
- <view class="comments_box_list_left">{{item.ReviewAppellation}}</view>/ I$ Y' R2 @5 \; N* t- ~
- <view class="comments_box_list_right">{{item.ReviewContent}}</view> ) o1 T4 Z0 x' R# g
- </view>
8 d3 T2 a- ?6 W - </block> q) Z8 O, u# w4 s# L4 \7 c
- </view>
复制代码 wxss:
' u7 G4 x. D; E3 c3 k5 {0 U) ^- .comments_box{
6 k4 a6 e3 u7 L( I4 e - margin-top: 20rpx;( m" ~* d6 ]( U
- width: 100%;6 ? _ ^$ S! x# r7 A* Y
- overflow: hidden;
7 o/ Q3 @1 v+ p3 ~8 x7 M - transition: max-height 0.5s;. l7 b& q; e* z; u9 z
- overflow: hidden;9 z# y; J, w5 \* m- |; H3 M
- max-height: 105rpx;& K% _- R9 A! ^( r( U
- }
复制代码 我这里是使用动画来控制comments_box这个view的高度(max-height)变化时的过渡效果,我在wxss中给定固定值测试是可以实现效果的,但是因为这个view的高度是随数据变化的,所以我只能在wxml中通过GoodsInfo.reviewList的数组长度计算出高度之后赋值,结果测试后发现没有动画效果。! n$ _9 Z3 x9 A4 E9 K9 y
所以我想在wxss中来使用GoodsInfo.reviewList的数组长度来计算高度,百度了一下,发现都是在wxml中使用的,跟我想要的不一样。/ M% A7 ?- C: |8 X' A! X1 b9 w
/ {" C& j4 |( z, C$ k
! l; @8 ^+ N. }4 h
6 H. }, }; v9 i# o( M- y+ R8 C
8 O' J N; m, p& S# H j6 E4 @" o
. K2 I0 l0 u- W4 X' k8 m, ] Y
- z; k2 `* e+ P# {
+ |/ m: `; ?1 Y* Y已解决:
q" H( g! |0 _1 J8 N! Z在开发过程中,通常碰到样式非固定的情况,这时候就要使用变量来规定样式,例如,一个view的宽度需要使用变量: 1. 在wxss中,定义变量:width:var(--width--); 2. 在js中,定义变量:viewWidth,并给这个变量赋予想要的值 3. 在xml中,使用wxss中的变量和js中的变量:style="--width--: {{ viewWidth }}px"
" [! n- b) X8 C6 M4 n s1 z |