宝哥软件园

微信小程序CSS3动画下拉菜单效果

编辑:宝哥软件园 来源:互联网 时间:2021-08-29

微信小程序没有自己的下拉菜单组件,需要我们自己写一个

思路

使用列表存储菜单项,设置一个视图元素为外框,设置为溢出:隐藏,使用CSS3动画逐渐改变外视图元素的高度。当高度为0时,嵌套列表元素完全隐藏,这相当于关闭菜单。当视图元素的高度大于列表元素的高度时,相当于菜单显示。

翻译

页面结构

按钮按钮用于触发菜单的打开和关闭。first_click参数使菜单在用户第一次单击按钮之前不可见。状态参数用于控制菜单的打开和关闭状态

视图id=' text _ box ' text decode=' true ' history/text/view button id=' slide ' bind tap=' toggle '/button view id=' box ' class=' { { first _ click?show':'hide'}} {{state?open':'close'}} '视图id='item_list '视图111/视图视图222/视图视图333/视图/视图/视图css

使用@关键帧动画实现菜单的渐变开合动画

# box { width : 100%;border-top: 1px实心# ddd飞越:隐藏;高度: 0;动画-填充-模式:向前;} # item _ list { background-color : white;宽度: 100%;}#item_list视图{ text-align : right;飞越:汽车;white-space : nowrap;} @关键帧从{ height : 0;}至{ height: 240rpx} } @关键帧向上滑动{从{ height: 240rpx}到{ height : 0;}}.打开{ animation: slidedown 1s}.关闭{ animation: slideup 1s}.隐藏{ display: none}.显示{ display:块;}js

加载页面时,菜单的初始状态是隐藏和关闭的。一旦用户点击按钮,菜单将被显示并逐渐打开

data: { state:false,first_click:false,},toggle : function(){ var list _ state=this . data . state,first _ state=this . data . first _ click;if(!first _ state){ this . setdata({ first _ click : true });} if(list _ state){ this . setdata({ state : false });} else { this . setdata({ state : true });}}以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

更多资讯
游戏推荐
更多+