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 ...
随机推荐
- 学习OpenCV双目测距原理及常见问题解答
学习OpenCV双目测距原理及常见问题解答 转自博客:https://blog.csdn.net/angle_cal/article/details/50800775 一. 整体思路和问题转化. 图 ...
- lucene正向索引(续)——一个文档的所有filed+value都在fdt文件中!!!
4.1.3. 域(Field)的数据信息(.fdt,.fdx) 域数据文件(fdt): 真正保存存储域(stored field)信息的是fdt文件 在一个段(segment)中总共有segment ...
- go无缓冲通道
package main import ( "fmt" "math/rand" "sync" "time" ) //wg ...
- javasript模块化
模块概述 随着一个网站越来越大,html页面文件越来越多,由<script src='xxx.js'></script>引入的js文件越来越多,我们的单个js文件很大,上几万行 ...
- STM32F429中LTDC的DMA2D加速
液晶屏的时序问题?每个液晶屏的时序都不一样,但总体上是类似的.如下图: VDEN: 数据使能信号.HSYNC: 每一行扫描的起始点, 在扫描过程中, 不会管上一行扫描有没有结束, 当出现 ...
- uboot移植spi驱动
记录一下在uboot内移植spi驱动的过程 芯片:freescale Mpc8308 uboot版本:u-boot-2009.11-rc1.2 需求:我们需要在uboot下通过spi配置一个时钟芯片( ...
- TreeSet和TreeMap不能存放重复元素?能不能存放null?其实不是这样的——灵活的二叉树
TreeSet和TreeMap不能存放重复元素?能不能存放null?其实不是这样的——灵活的二叉树 本文链接:https://blog.csdn.net/u010698072/article/de ...
- java如何压缩多个文件到压缩包,并下载到浏览器?
java压缩多个文件到压缩包,并下载到浏览器 解决方法: 完整的方法如下,很简单,亲试有效,极力推荐. 我是以流作为文件,而不是file,循环把所有pdf文件压缩到pdf.zip压缩包中. 1.前 ...
- Microsoft Visual Studio(VS)启动报安装过程中无法运行
开机启动VS提示无法运行,很可能VS正在更新,可以等待几分钟更新完成,再次运行VS. 也可以把更新进程结束,进程名:VSIXAutoUpdate.exe
- 【ARTS】01_32_左耳听风-201900617~201900623
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...