constructor() {
super(...arguments)
this.state = {
bgShadow: false,
skuPop: false
}
}
handleClickBtn() {
this.setState(() => {
return {
skuPop: !this.state.skuPop,
bgShadow: !this.state.bgShadow
}
})
}
点击相应的按钮触发handleClickBtn给添加样式
bg-shadow
,bg-shadow_hide
是黑色背景遮罩,
sku-select__box_pop
是利用transform: translateY(0%);
弹出来动画
过渡效果主要是transtions
{<View onClick={this.handleClickBtn.bind(this)} className={`${bgShadow && "bg-shadow bg-shadow_hide"}`} ></View>}
<View className={`sku-select__box ${skuPop && "sku-select__box_pop"}`} >
<SkuSelect />
</View>
.bg-shadow {
height: 200vw;
width: 100vw;
position: fixed;
top: 0;
left: 0;
z-index: 1;
background: transparent;
transition: background 0.3s ease-in; &_hide {
background: rgba($color: #000000, $alpha: 0.5);
}
}
.sku-select__box {
position: fixed;
bottom: 0;
z-index: 1;
transform: translateY(100%);
transition: transform 0.3s ease-in; &_pop {
transform: translateY(0%);
}
}