css之实现下拉框自上而下展开动画效果&&自下而上收起动画效果
HTML代码:
<div
className={CX('font-size-selector-sub-list', {
show: shouldSubListShow === true,
hidden: shouldSubListShow === false,
})}
>
{
subListItems.map((item, index) => {
return (
<div
role="button"
tabIndex={0}
key={item}
className="font-size-selector-sub-items"
onClick={() => { handleClickSubItem(index) }}
>
<div className="font-size-selector-span">{item}</div>
</div>
)
})
}
</div>
CSS代码:
@keyframes slide-down{
0%{transform:scale(1,0);}
100%{transform:scale(1,1);}
}
@-webkit-keyframes slide-down{
0%{-webkit-transform:scale(1,0);}
100%{-webkit-transform:scale(1,1);}
}
.font-size-selector-sub-list {
position: absolute;
top: 21px;
left:;
width: 100%;
box-sizing: border-box;
z-index:;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
background-color: #ffffff;
border-radius: 2px;
cursor: pointer;
.font-size-selector-sub-items {
padding: 0 6px;
height: 19px;
box-sizing: border-box;
background-color: #ffffff;
background-repeat: no-repeat;
display: flex;
justify-content: space-between;
align-items: center;
&:hover {
background-color: #d3edfb;
}
}
}
.show {
max-height: 114px;
transition: max-height .3s ease-in;
transform-origin: 50% 0;
animation: slide-down 0.3s ease-in;
-webkit-animation: slide-down 0.3s ease-in;
}
.hidden {
max-height: 0px;
overflow: auto;
transition: max-height .3s ease-out;
}
注意点:
1,自上而下展开效果:transition与animation结合使用。如上:.show
2,自下而上收起效果:transition单独使用。如上:.hidden
首先想到的是在收起和展开两个终点位置改变 max-height,然后均加上transition,但是这样做只能实现下拉框父元素收起和展开,内部子元素高度变不了,所以想到加上overflow:auto/hidden,但是这样又只能对收起起作用,展开无作用,原因是,展开时子元素内容高度小于等于父元素展开时设置的max-height,所以针对展开,需要使用transform:scale();属性,这样可以在展开时,让子元素内容慢慢缩放至父元素的高度。需要注意的是,缩放时要设置 transform-origin: 50% 0;分别表示x,y开始缩放位置。
另外可以参考:https://blog.csdn.net/web_hwg/article/details/68925003
css之实现下拉框自上而下展开动画效果&&自下而上收起动画效果的更多相关文章
- 用css写出下拉框(代码转自wq群)
做网易云音乐首页时遇到的问题,鼠标指在右上角头像时出现下拉框. <style>/* css*/ #body{ float: left; } #xialakuang{ background- ...
- 关于css中hover下拉框的一个bug
写hover下拉框的时候会遇到一个奇怪的bug,就是下拉框下来的时候会被所在位置的div遮挡,哪怕下拉框使用的absolute,也会被遮挡. 如图: 这个语言选择的下拉框会被下面的div挡住(截图是已 ...
- 【WPF学习笔记】之如何设置下拉框读取SqlServer数据库的值:动画系列之(一)
先前条件:设置好数据库,需要三个文件CommandInfo.cs.DbHelperSQL.cs.myHelper.cs,需要修改命名空间,参照之前随笔http://www.cnblogs.com/Ow ...
- 纯css实现select下拉框并排显示
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- div+css模拟select下拉框
<!DOCTYPE html><html ><head lang="zh"> <meta http-equiv="Content ...
- <select>设置multiple="multiple"属性后 下拉框全部展开了 不再是折叠的怎么回事
1 <select multiple="multiple" size="5"> <option>1</option> < ...
- css样式美化 下拉框 select 样式
<span class="setleft wid80"><span class="fyhbx">*</span>入库类型 : ...
- 使用checkbox实现纯CSS下拉框
在这个例子中,我们会看到一个纯CSS制作的下拉框.主要是要用到了HTML元素的checkbox 和CSS3选择器,并没有用到JavaScript.例子如下: Click to Expand Link ...
- easyui combobox下拉框文字超出宽度有横向滚轮
//下拉框显示横向滚轮 $(".combo").mouseenter(function(){ $(this).prev().combobox("showPanel&quo ...
随机推荐
- 【python代码】linux 登陆网关
#!/usr/bin/env python import urllib2 url="http://10.3.8.211" data="DDDDD=2010111222&a ...
- web目录
Proj app controllers jobs models view user xxx.html init.go conf message public img js css html
- Cesium中常用的一些地理数据文件 以及数据相关的东西
KML Cesium.KmlDataSource.load CZML Cesium.CzmlDataSource.load GeoJson Cesium.GeoJsonDataSource.load ...
- JMeter_控制器执行效果_给自己挖过的坑
线程及循环设置: 数据文件中放在“循环控制器”中的执行效果:每条数据执行5次,取够50条数据时停止 简单逻辑控制器按下面的目录创建后,执行结果效果同上面循环控制器的执行效果 本来想规整下目录结构,结果 ...
- [IMX6DL] CPU频率调节模式以及降频方法
本文转自http://blog.csdn.net/kris_fei/article/details/51822435 Kernel branch: 3.0.35 CPU的频率调节模式:1. Perfo ...
- 解决Visual Studio:"无法导入以下密钥文件: xxxx.pfx,该密钥文件可能受密码保护"
[解决方法] 从开始菜单找到并打开Visual Studio 命令提示(2010):开始->Microsoft Visual Studio 2010->Visual Studio Tool ...
- 严重性 代码 说明 项目 文件 行 禁止显示状态错误 C1128 节数超过对象文件格式限制: 请使用 /bigobj 进行编译。
严重性 代码 说明 项目 文件 行 禁止显示状态错误 C1128 节数超过对象文件格式限制: 请使用 /bigobj 进行编译. 默认情况下,对象文件最多可存放 65,536 (2^16) 个可寻址的 ...
- ubuntu server 18.04 有线网卡默认关闭,需要手工配置才能使用的方法
1.安装完ubuntu server 18.04 后,笔记本电脑的有线网卡已经识别了,但是没有ip, 并且插上网线后端口灯不亮. 解决方法: 第一步.配置端口链路状态为 up # ip link se ...
- Java 8 Lambda表达式学习和理解
Java 8 Lambda表达式和理解 说明:部分资料来源于网络 时间:20190704 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性.Lambda 允许把函数作为一 ...
- 算法习题---4-6莫尔斯电码(UVa508)
一:题目 A-Z0-9分别对应一些莫尔斯电码字符串 A .- B -... C -.-. D -.. E . F ..-. G --. H .... I .. J .--- K -.- L .-.. ...