千家信息网

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

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍了怎么用纯CSS实现飞机舷窗风格的toggle控件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码解读定义dom,.
千家信息网最后更新 2025年11月07日怎么用纯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安全错误 数据库的锁怎样保障安全 福建软件开发基地 vba 数据库安全 有软件开发项目的书吗 西安一码通服务器是哪里的 慧谷众成互联网信息科技有限公司 mc重新开服务器存档是一样的 广西教育软件开发 海安正规网络技术专业服务 北京农行软件开发新址 jsp删除已勾选的数据库 笨鸟网络安全检测小组 科技跟互联网的不同发展趋势 服务器修复工具 php爬取的数据存入数据库 智星云服务器怎么样 对等连接方式和客户服务器方式 平板登录腾讯视频服务器 惠普服务器数据异地备份 软件开发中的pg0是哪个阶段 兴义软件开发商 弈剑行怎么关掉服务器 大话西游秦颂古今服务器 软件开发行业的政策分析 联想服务器BMC管理口地址 ktv点歌服务器连接机顶盒视频 cs1.6进入服务器卡 绝地求生服务器 天津智能养老软件开发系统 泰拉瑞亚开服务器不显示存档 dayz单机服务器延迟
0