中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用純CSS實現飛機舷窗風格的toggle控件

發布時間:2022-03-01 09:24:30 來源:億速云 閱讀:121 作者:小新 欄目:web開發

這篇文章主要介紹了怎么用純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控件”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

佳木斯市| 台江县| 资中县| 深泽县| 体育| 定结县| 交口县| 延长县| 徐州市| 石棉县| 安西县| 祁门县| 元谋县| 太保市| 万全县| 东至县| 龙井市| 馆陶县| 邯郸县| 安康市| 金沙县| 张家界市| 聂拉木县| 商洛市| 永兴县| 南漳县| 泰州市| 南康市| 寿阳县| 水富县| 泌阳县| 东辽县| 托里县| 临沭县| 河曲县| 桐柏县| 佛学| 洞头县| 察隅县| 苏尼特左旗| 武乡县|