返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么用纯CSS实现飞机舷窗风格的toggle控件
  • 326
分享到

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

2024-04-02 19:04:59 326人浏览 安东尼
摘要

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

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

    代码解读

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

    <figureclass="window">

    <divclass="curtain"></div>

    </figure>

    居中显示:

    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时即表示舷窗被打开:

    <inputtype="checkbox"class="toggle">

    <figureclass="window">

    <divclass="handle"></div>

    </figure>

    隐藏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个<span>子元素分别表示1朵白云:

    <inputtype="checkbox"class="toggle">

    <figureclass="window">

    <divclass="curtain"></div>

    <divclass="clouds">

    <span></span>

    <span></span>

    <span></span>

    <span></span>

    <span></span>

    </div>

    </figure>

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

    .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控件怎么用纯CSS实现飞机舷窗风格的toggle控件



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

--结束END--

本文标题: 怎么用纯CSS实现飞机舷窗风格的toggle控件

本文链接: https://lsjlt.com/news/89738.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用纯CSS实现飞机舷窗风格的toggle控件
    这篇文章主要介绍了怎么用纯CSS实现飞机舷窗风格的toggle控件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。    ...
    99+
    2024-04-02
  • 怎么使用纯CSS实现手风琴效果
    这篇文章将为大家详细讲解有关怎么使用纯CSS实现手风琴效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。实现原理:主要是利用CSS的hover属性,鼠标未移上去时,所有的li共享整个容器的宽度。当鼠标移上...
    99+
    2023-06-08
  • 怎么用纯CSS实现iPhone价格信息图
    小编给大家分享一下怎么用纯CSS实现iPhone价格信息图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   &nb...
    99+
    2024-04-02
  • 怎么用纯css实现input[type=file]的样式控制
    今天小编给大家分享一下怎么用纯css实现input[type=file]的样式控制的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章...
    99+
    2024-04-02
  • 怎么用纯CSS3实现自定义Tooltip边框涂鸦风格
    这篇文章主要介绍“怎么用纯CSS3实现自定义Tooltip边框涂鸦风格”,在日常操作中,相信很多人在怎么用纯CSS3实现自定义Tooltip边框涂鸦风格问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • 怎么用纯CSS实现表格响应式布局
    这篇文章主要讲解了“怎么用纯CSS实现表格响应式布局”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用纯CSS实现表格响应式布局”吧!布局效果:简单解析一...
    99+
    2024-04-02
  • 怎么用div+css实现vista风格导航菜单效果
    这篇文章主要介绍“怎么用div+css实现vista风格导航菜单效果”,在日常操作中,相信很多人在怎么用div+css实现vista风格导航菜单效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2024-04-02
  • 怎么用纯CSS实现大白的形象
    这篇文章给大家分享的是有关怎么用纯CSS实现大白的形象的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   代码解读   整个人物分为3部分:头、身体、腿,下面按照这个顺序分别...
    99+
    2024-04-02
  • 怎么用纯CSS实现抛盒子的loader
    小编给大家分享一下怎么用纯CSS实现抛盒子的loader,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   代码解读   定...
    99+
    2024-04-02
  • 怎么使用纯css实现超实用的图标库
    这篇文章将为大家详细讲解有关怎么使用纯css实现超实用的图标库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。预备知识伪元素伪元素是一个附加至选择器末的关键词,允许你对被选...
    99+
    2024-04-02
  • 怎么用纯CSS实现热气球的效果
    小编给大家分享一下怎么用纯CSS实现热气球的效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!     代...
    99+
    2024-04-02
  • 怎么用纯CSS实现接扎啤的特效
    这篇文章主要介绍了怎么用纯CSS实现接扎啤的特效,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   代码解读   定义dom,容器中包含...
    99+
    2024-04-02
  • 怎么用纯CSS实现类似脉动的loader
    这篇文章将为大家详细讲解有关怎么用纯CSS实现类似脉动的loader,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   代码解读   定义dom,容器中包含10个子元...
    99+
    2024-04-02
  • 怎么用纯css实现的漂亮导航菜单
    本篇内容介绍了“怎么用纯css实现的漂亮导航菜单”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  今天给大...
    99+
    2024-04-02
  • 怎么用纯CSS实现一把剪刀的效果
    这篇文章主要为大家展示了“怎么用纯CSS实现一把剪刀的效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用纯CSS实现一把剪刀的效果”这篇文章吧。   代...
    99+
    2024-04-02
  • 怎么用纯CSS实现蚊香燃烧的效果
    小编给大家分享一下怎么用纯CSS实现蚊香燃烧的效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!     代码解读     定义dom,容器中包...
    99+
    2024-04-02
  • 怎么用纯CSS实现徘徊的果冻怪兽
    小编给大家分享一下怎么用纯CSS实现徘徊的果冻怪兽,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!   代码解读   定义dom,容器中包含2个元素,分别代表怪兽的身体和眼睛:   &...
    99+
    2024-04-02
  • 怎么用纯CSS实现单元素麦当劳的Logo
    这篇文章给大家分享的是有关怎么用纯CSS实现单元素麦当劳的Logo的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   代码解读   定义dom,只有1个元素:   <...
    99+
    2024-04-02
  • 怎么用纯CSS实现条纹错觉的动画效果
    小编给大家分享一下怎么用纯CSS实现条纹错觉的动画效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!   代码解读   定义dom,容器中包含2个元素,分别代表2条轨道:   <...
    99+
    2024-04-02
  • 怎么使用纯CSS实现宝路薄荷糖的动画
    本篇内容介绍了“怎么使用纯CSS实现宝路薄荷糖的动画”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作