千家信息网

怎么用纯CSS实现飞机舷窗风格的toggle控件

发表于:2024-10-19 作者:千家信息网编辑
千家信息网最后更新 2024年10月19日,这篇文章主要介绍了怎么用纯CSS实现飞机舷窗风格的toggle控件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码解读定义dom,.
千家信息网最后更新 2024年10月19日怎么用纯CSS实现飞机舷窗风格的toggle控件

这篇文章主要介绍了怎么用纯CSS实现飞机舷窗风格的toggle控件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

代码解读

定义dom,.windows容器表示舷窗,它的子元素.curtain表示窗帘:

居中显示:

body{

margin:0;

height:100vh;

display:flex;

align-items:center;

justify-content:center;

background-color:skyblue;

}

设置舷窗的尺寸,因为后面还会用到字号,所以字号用变量定义:

:root{

--font-size:10px;

}

.window{

position:relative;

box-sizing:border-box;

width:25em;

height:35em;

font-size:var(--font-size);

background-color:#d9d9d9;

}

用阴影画出厚窗框:

.window{

border-radius:5em;

box-shadow:

inset008emrgba(0,0,0,0.2),

0000.4em#808080,

0004emwhitesmoke,

0004.4em#808080,

02em4em4emrgba(0,0,0,0.1);

}

设置窗帘样式,和窗口尺寸一样,但不拉到底:

.window.curtain{

position:absolute;

width:inherit;

height:inherit;

border-radius:5em;

box-shadow:

0000.5em#808080,

003emrgba(0,0,0,0.4);

background-color:whitesmoke;

left:0;

top:-5%;

}

用伪元素在窗帘上画出指示灯,当窗帘关闭时亮红色光:

.window.curtain::before{

content:'';

position:absolute;

width:40%;

height:0.8em;

background-color:#808080;

left:30%;

bottom:1.6em;

border-radius:0.4em;

}

.window.curtain::after{

content:'';

position:absolute;

width:1.6em;

height:0.8em;

background-image:radial-gradient(orange,orangered);

bottom:1.6em;

border-radius:0.4em;

left:calc((100%-1.6em)/2);

}

以上是舷窗关闭时的样子,接下来绘制舷窗打开时的效果。

先在dom中添加一个checkbox,当它被checked时即表示舷窗被打开:

隐藏checkbox,用opacity(0)可以使元素在不可见的状态下仍可交互,把它的尺寸设置得到舷窗一样大,并且图层在舷窗之上,得到的效果就是点击舷窗时实际是点击了checkbox:

.toggle{

position:absolute;

filter:opacity(0);

width:25em;

height:35em;

font-size:var(--font-size);

cursor:pointer;

z-index:2;

}

当舷窗打开时,.curtain要向上移动,并且指示灯亮绿色光:

.window.curtain{

transition:0.5sease-in-out;

}

.toggle:checked~.window.curtain{

top:-90%;

}

.toggle:checked~.window.curtain::after{

background-image:radial-gradient(lightgreen,limegreen);

}

隐藏超出窗户的部分:

.window{

overflow:hidden;

}

接下来绘制舷窗外的风景。

在dom中增加表示云朵的.clouds元素,其中的5个子元素分别表示1朵白云:

用云朵容器画出窗外的蓝天:

.window.clouds{

position:relative;

width:20em;

height:30em;

background-color:deepskyblue;

box-shadow:0000.4em#808080;

left:calc((100%-20em)/2);

top:calc((100%-30em)/2);

border-radius:7em;

}

每朵云由3部分组成,先画面积最大的部分:

.cloudsspan{

position:absolute;

width:10em;

height:4em;

background-color:white;

top:20%;

border-radius:4em;

}

再用伪元素画2个突起的圆弧:

.cloudsspan::before,

.cloudsspan::after{

content:'';

position:absolute;

width:4em;

height:4em;

background-color:white;

border-radius:50%;

}

.cloudsspan::before{

top:-2em;

left:2em;

}

.cloudsspan::after{

top:-1em;

right:1em;

}

增加云朵飘动的动画效果:

.cloudsspan{

animation:move4slinearinfinite;

}

@keyframesmove{

from{

left:-150%;

}

to{

left:150%;

}

}

使每朵云的大小、位置有一些变化:

.cloudsspan:nth-child(2){

top:40%;

animation-delay:-1s;

}

.cloudsspan:nth-child(3){

top:60%;

animation-delay:-0.5s;

}

.cloudsspan:nth-child(4){

top:20%;

transform:scale(2);

animation-delay:-1.5s;

}

.cloudsspan:nth-child(5){

top:70%;

transform:scale(1.5);

animation-delay:-3s;

}

最后,隐藏容器外的内容:

.window.clouds{

overflow:hidden;

}






感谢你能够认真阅读完这篇文章,希望小编分享的"怎么用纯CSS实现飞机舷窗风格的toggle控件"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

很赞哦!
舷窗 元素 窗帘 篇文章 云朵 容器 尺寸 效果 部分 控件 风格 飞机 接下来 字号 指示 指示灯 开时 个子 代码 价值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 无法连接授权服务器怎么办 服务器开机和关机的区别 数据库排课 数据库记录是否修改 大学软件开发技巧 中专文凭可以拿网络安全证吗 c 服务器资源管理器 网络安全法立项的首要目的 刘迎 网络安全 网络安全底线思维和红线意识 网络安全法的主要内容 山东济南服务器批发虚拟主机 查看数据库中数据关键字 成都有名软件开发公司 多进程提取游标中的数据库 西城服务器搬迁一般多少钱 徐汇区网络技术服务哪家便宜 服务器网络环境 GPRS属于蜂窝网络技术吗 软件开发对环境有什么影响 我的世界服务器怎么免费拿点券 埃迪斯科文 网络安全 web 服务器实现 手机网络安全心得体会100 软件开发系统购买 运营商服务器登录许可 风起云涌越南找不到服务器 扇贝阅读软件开发 光伏电站网络安全检查 数据库object类型怎么表示
0