求国航舱内广播的播音词

求国航舱内广播的播音词,第1张

这篇文章主要介绍了使用css transition属性实现一个带动画显隐的微信小程序部件的相关资料,需要的朋友可以参考下

我们先来看效果图

像这样的一个带过渡效果的小部件在我们实际开发中的应用几率还是比较大的,但是在开发微信小程序的过程中可能有的小伙伴发现transition这个属性它不好使(下面说明)所以我们这个时候会考虑去使用微信官方提供的wxcreateAnimation API来创建动画。

接下来我带各位小伙伴如何让 transition 属性在这种需求中好使起来,下面上代码

page({

data: {

show:false//用于显示或隐藏控件

},

chanMask:function(){

var isShow = thisdatashow false : true;//如果显示就隐藏,隐藏就显示

thissetData({

show:isShow

})

}

})

/indexwxss/

/显示前/

mask-con{

transition: 1s;

position: fixed;

width: 100%;

height: 300rpx;

left: 0;

bottom: -300rpx;

text-align: center;

line-height: 300rpx;

box-shadow: 0 1px 10px #aaa;

}

/显示后/

mask-con-show{

bottom: 0;

}

<!--indexwxml-->

<view class="container">

<button bindtap="chanMask">点我</button>

<view class="mask-con {{show 'mask-con-show' : ''}}">

<view class="close" bindtap="chanMask">X</view>

慢慢飞起

</view>

</view>在以上代码中我们首先在data中定义了一个show变量用于mask-con控件的显示状态,在chanMask函数中交替的改变这个变量,然后将chanMask函数绑定给button和close控件的点击事件上,最后我们根据show来决定是否给mask-con(我们的动画控件)添加一个class: mask-con-show那么到这里我们已经实现了一个带过渡的显隐小部件,但是对于某些需求这还是太勉强了,比如下图的情况:

现在很多的APP或小程序都是以这种方式来close弹窗控件,那个X用户点的不过瘾,看到这里聪明的小伙伴可能会想到再另外添加一个阴影控件在mask-con的下层并绑定上我们的chanMask函数,这样的话阴影控件和我们的mask-con就可能不是在一个整体上了,不够直观,又比如说领导要让这个阴影它有一个显示颜色慢慢加深,隐藏慢慢减淡的效果,为了应对这种情况,我们把代码调整如下:

page({

data: {

show:false//用于显示或隐藏mask控件

},

chanMask:function(){

var isShow = thisdatashow false : true;//如果显示就隐藏,隐藏就显示

thissetData({

show:isShow

})

}

})

/indexwxss/

mask-shadow{

width: 100%;

height: 100%;

opacity: 0;

transition: 1s;

}

mask-shadow-on{

opacity: 03;

}

mask-con{

position: absolute;

width: 100%;

height: 300rpx;

left: 0;

bottom: -300rpx;

transition: 1s;

text-align: center;

line-height: 300rpx;

box-shadow: 0 1px 10px #aaa;

}

mask-con-show{

bottom: 0;

}

<!--indexwxml-->

<view class="container">

<button bindtap="chanMask">点我</button>

<view class="mask {{show 'show' : 'hide'}}">

<view class="mask-shadow {{show 'mask-shadow-on' : ''}}"></view>

<view class="mask-con {{show 'mask-con-show' : ''}}">

<view class="close" bindtap="chanMask">X</view>

慢慢飞起

</view>

</view>

</view>在这里我们设置了两个样式类名mask-shadow-on和mask-con-show来定义阴影以及主要控件mask-con动画后的效果(具体代码根据自己的需求决定),看起来一切都OK,没有任何问题,那么先运行一波,艾玛,神马情况?阴影和我们的mask-con直接怼了出来毫无过渡效果,那这是何原因影响我们程序的效果呢,经过一番考量博主发现在display为none的情况之下我们的transition属性可能会失效,那到这里有的小伙伴可能会问 “博主,那个不对啊,我们明明已经将mask的display设置成block怎么还有这种问题呢”

是这样的,我们的mask控件它显示需要那么一点时间才能完全显示出来,但是呢我们的变量show设置成true之后,我们的阴影控件和主要控件也会马上添加上了动画后样式类名,这个时间它比mask显示所需的时间要快,所以我们的机器它认为mask还是处于display为none的情况

打个比方说:mask是这一整块的老大,这个老大都还没表演完事,你们这些做小弟就已经出来抢风头了,你让当老大的面子往哪放,不行我得把你们这些抢我风头的都给干掉,看你们还得瑟。这个老大的人狠话不多,你抢了他风头不行,你想不表演他(用户体验)也不高兴,而且他表演完了还不跟你说,那这个老大这么难伺候该怎么办呢?有的小伙伴已经感觉到迷茫了吗,那还在等什么,赶快拿起你手中的电话拨打求助热线。。。啊呸,扯远了

其实决解的方法很简单,没错答案就是 setTimeout()函数,来,我们把代码再改一遍:

page({

data: {

show:false,//用于显示或隐藏mask控件

runAM:false//用于动画执行的根据

},

chanMask:function(){

var isShow = thisdatashow false : true;//如果显示就隐藏,隐藏就显示

var delay = isShow 30 : 1000;//第一个时间是博主测出来控件显示所需的时间,第二个是动画所需的时间

if(isShow){

thissetData({

show:isShow

});

}else{

thissetData({

runAM:isShow

})

}

setTimeout(function(){

if(isShow){

thissetData({

runAM:isShow

});

}else{

thissetData({

show:isShow

});

}

}, delay);

}

})

<!--indexwxml-->

<view class="container">

<button bindtap="chanMask">点我</button>

<view class="mask {{show 'show' : 'hide'}}" bindtap="chanMask">

<view class="mask-shadow {{runAM 'mask-shadow-on' : ''}}"></view>

<view class="mask-con {{runAM 'mask-con-show' : ''}}">

<view class="close" bindtap="chanMask">X</view>

慢慢飞起

</view>

</view>

</view>在以上代码中,我们给data新添加了一个变量runAM用于动画何时开始执行的凭证,再在chanMask函数定义了一个用于设置延时的变量delay 代码可能有点绕博主在此粗暴的解释一下

程序的整个过程都是根据isShow这个变量来走的,

当isShow为true时也就是说我们要打开mask控件了,所以我们先把mask控件显示出来,然后在延时30毫秒后去为要执行动画的控件添加上样式类名

当isShow为false时我们先把动画控件的类名去掉(去掉后会执行动画回到原本的形态),然后在延时1000毫秒(动画所需的时间)后让mask隐藏

关于delay的第一个值的设定时博主自己测出来的,如果各位小伙伴还担心控件没显示的话可以设成50毫秒或100毫秒都无所这01秒的时间差对用户体验的影响并不大,如过你设了1秒都没反应,我只能说换手机吧

最后你会发现在整个过程中博主都只调用一个函数进行显示或隐藏,并没有为关闭新建函数处理,这种写法逼格满满有木有

此方法同样适用于H5

新人第一次写博客有点_嗦了,望见谅

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/meirong/3189275.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-02-08
下一篇2024-02-08

随机推荐

  • 化妆品有水,乳液,精华液,纯露,拉皮精华,晚霜,隔离霜。这些的使用顺序是什么啊?

    化妆品的使用顺序是非常重要的,正确的使用顺序才能让化妆品发挥最好的效果。我们需要了解每种化妆品的功效和用途,这样才能更好地进行搭配和使用。一般来说,正确的化妆品使用顺序为:水、乳液、精华液、纯露、拉皮精华、晚霜、隔离霜。下面我们逐一介绍每个

    2024-04-15
    1007800
  • 男士基础护肤套装不知道怎么选?看这里

    男士基础护肤套装不知道怎么选?AHC男士水乳三件套AHC是韩国的一个品牌,它家的面膜一直都很热销,这个套盒性价比挺高的,外观设计很高级,专门针对男性设计的,不挑肤质及年龄,使用后清爽不黏腻可平衡水油,成分中不含酒精,敏感肌也可以用,有淡淡的

    2024-04-15
    1027100
  • 苏秘299一套真的假的

    苏秘299元一套的是真的。苏秘套盒分很多种,每一套包含的商品也是不一样的。有的是小样系列,种类多一些。价格的高低决定种类的多少和容量的多少。苏秘是LG生活健康株式会社旗下的高端自然发酵化妆品品牌,2016年入驻中国。为女性呈现温和、有效的护

    2024-04-15
    47900
  • 脸部紧致提拉用什么比较有效果?

    照镜子的时候我们经常会觉得是不是自己胖了呀,怎么感觉脸变大了呢,有点“松垮”的胖。其实不是胖了,而是我们的脸松弛下垂了!地心引力每天都在把我们的皮肤向下拉,特别是年龄增长胶原蛋白不足的时候,加上护肤不当、熬夜等诸多原因,导致我们的脸越来越垮

    2024-04-15
    41700
  • 精华露使用方法(精华液怎么用使用顺序)

     女生买一套护肤品至少需要几百元,护肤品里的精华可以说占了很大一部分。作为同类护肤品中最贵的精华,其成分远高于乳霜。因此,人们在应用时应该正确地应用精华。让我们掌握精华的正确用法。  一、使用前,掌握护肤中精华的在护肤第几步使用。  涂抹精

    2024-04-15
    35900
  • 天气丹用完了 可以买小样装进去吗

    可以装小样进去。一般来说买小样会比正装更实惠一些的。天气丹是一个属于化妆品行业的品牌(商标号14892164),所有方是天气丹化妆品有限公司,该品牌于2016年5月21日在广东省广州市创立。品牌理念:做好民族品牌和产品,讲好中国文化和故事。

    2024-04-15
    34100
  • 后的套盒哪个系列的最好?有什么区别吗?

    在韩妆界摸爬滚打多年,whoo的套盒也了解了不少。Whoo的套盒有很多系列,以天气丹,拱辰享,津率享三个系列为主推,在韩妆界是有很高的口碑的。下面我就来跟说说,这三个系列的区别在哪吧。1、天气丹天气丹这个系列的套盒主推的是修复肌肤,平衡脸部

    2024-04-15
    26900

发表评论

登录后才能评论
保存