亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

css3進階之less實現星空動畫的示例代碼

2024-07-11 09:00:17
字體:
來源:轉載
供稿:網友

本文介紹了css3進階之less實現星空動畫的示例代碼,分享給大家,具體如下:

效果動圖如下:

 

預覽鏈接和代碼在我的codepen: https://codepen.io/lio-mengxiang/pen/YzKrEde

 知識點預覽

這篇文章的 less技巧 + css技巧 知識點包括:

  • less如何寫循環
  • less里如何使用js表達式
  • css3屬性: box-shadow如何生成成百上千的星星
  • css3屬性: background: radial-gradient徑向漸變,如何生成漸變的背景色

HTML文檔結構

首先html文件結構很簡單,如下:

<div>    <div id="start1"></div>    <div id="start2"></div>    <div id="start3"></div></div>

第一步:radial-gradient生成漸變背景

設置在html和body標簽上

* {    padding: 0;    margin: 0;}html, body {    background: radial-gradient(ellipse at bottom, #1B2735 0%, #090A0F 100%);    overflow: hidden;    height: 100%;}

效果如下:

為了對比一下我畫的不是純黑色背景圖,接著放一張純黑色的圖來對比一下,可以看出來上圖沒有那么黑,有點偏灰

 

這里radial-gradient參數介紹

ellipse 表明我是用的橢圓漸變,你看下圖就知道怎么用了

// 上圖的參數是radial-gradient(ellipse,#ffffff, #6a6a6a)

也就是顏色是白色#ffffff到灰色#6a6a6a的橢圓漸變

at bottom 這是表明橢圓漸變的圓心在底部,請看下圖具體效果:

// 上圖的參數是radial-gradient(ellipse at bottom,#ffffff, #6a6a6a)

好了,到了這一步,漸變我們就完成了

第二步:box-shadow如何生成成百上千的星星

首先我們要解決3個問題,第一個是如何用less寫循環,請看如下less代碼 ( 詳細解釋在代碼下面 )

2.1 less如何實現循環

舉例如下:

.loop(@counter) when(@counter > 0) {  .h@{counter} {    padding: (10px*@counter);  }  .loop((@counter - 1)); //遞歸調用自身}div{  .loop(5);}//編譯輸出div .h5 {  padding: 50px;}div .h4 {  padding: 40px;}div .h3 {  padding: 30px;}div .h2 {  padding: 20px;}div .h1 {  padding: 10px;}
  • .loop(@counter) when(@counter > 0) 是less里面的函數,意思是定義了一個loop函數
  • @counter是傳入函數的變量
  • when(@counter > 0) 意思是當變量的值@counter > 0的時候,這個函數才會執行
  • .loop((@counter - 1))這是遞歸調用

 所以我們總結出來less實現循環的辦法就是遞歸調用定義的函數

接著解決第二個問題,就是如何在less里面寫JS表達式

2.2 如何在less里面寫JS表達式

.loop(@counter) when(@counter > 0) {  padding: ~`@{counter} + Math.round(2.4)`;  .loop(@counter - 1); //遞歸調用自身}div{  .loop(2);}// 生成代碼如下div {  padding: 4;  padding: 3;}

所以我們總結出來在less里面使用js表達式的方法就是用~開頭,然后``包裹表達式

接著解決第三個問題,就是如何用box-shadow屬性生成 成百上千的星星

2.3 如何用less循環在box-shadow屬性上生成 成百上千的星星

這些星星其實就是正方形的小點,我們先生成4個正方形小點

// div{	width:10px;	height:10px;	box-shadow: 10px 0px #9bcded, 50px 0px #9bcded, 10px 40px #9bcded, 50px 40px #9bcded;}

效果如下

這里使用了box-shadow多個值來生成正方形

// 比如以下屬性10px 0px #9bcded 表示,在相對于div元素x軸10px,y軸0px處有一個#9bcded顏色的小點// 因為div本身是width 10px height 10px 是一個正方形,所以它的box-shadow也是正方形box-shadow: 10px 0px #9bcded,width:10px;height:10px;

接著,我們要結合less循環在box-shadow上生成更多的方塊(星星):

// 首先定義個mixin函數,參數是@n, 條件是只有@n > 0的時候才執行函數里的代碼.mixin(@n) when(@n > 0) {    box-shadow+ : ~`Math.round(Math.random() *  2000) + 'px' + ' ' +Math.round(Math.random() *  2000) + 'px #FFF' `;    .mixin((@n - 1)); }

上面函數主要是box-shadow中,主要包括3個參數

  • 生成了x軸是0-2000隨機數的值(Math.round(Math.random() * 2000) + 'px')
  • 生成了y軸是0-2000隨機數的值(Math.round(Math.random() * 2000) + 'px #FFF' `)
  • 顏色是#FFF

假如我們調用mixin(100),就生成了在2000 * 2000的背景上 100個白色方塊(星星)

第三步:結合html,生成星星

之前html結構如下

<div>    <div id="start1"></div>    <div id="start2"></div>    <div id="start3"></div></div>

less如下:

// start1生成了長1px,寬1px的星星700個,這是小星星// 小星星代表距離遠的星星,大星星代表距離近的,這樣就有了空間感#start1 {    .mixin(700);    width: 1px;    height: 1px;    animation: animStar 50s linear infinite;    animation-delay:-10s;}// start2生成了長2px,寬2px的星星200個#start2 {    .mixin(200);    width: 2px;    height: 2px;    animation: animStar 100s linear infinite;    animation-delay:-8s;}// start3生成了長3px,寬3px的星星100個#start3 {    .mixin(100);    width: 3px;    height: 3px;    animation	: animStar 150s linear infinite;    animation-delay:-5s;}// 動畫效果如下@keyframes animStar {    from { transform: translateY(0px) }    to { transform: translateY(-2000px) }}

本文完結,可以自己去codepen試試效果哦,嘿嘿

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黑人极品猛少妇色xxxxx| 亚洲电影天堂av| 97av在线视频免费播放| 中文字幕免费精品一区高清| 日韩在线中文字幕| 精品久久久香蕉免费精品视频| 91av在线精品| 欧美视频中文在线看| 亚洲人成电影在线播放| 亚洲成成品网站| 国内精品视频在线| 亚洲网址你懂得| 欧美xxxx18性欧美| 伊人青青综合网站| 亚洲一区中文字幕| 色综合男人天堂| 日韩有码在线播放| 国产日韩换脸av一区在线观看| 日韩在线中文字| 2018日韩中文字幕| 色av吧综合网| 久久国产精彩视频| 亚洲欧洲在线观看| 欧美一区二三区| 亚洲自拍偷拍福利| 国产精品中文字幕在线| 亚洲国内高清视频| 日韩av综合网站| 超碰97人人做人人爱少妇| 国产精品久久久久久久久男| 欧美在线一区二区三区四| 亚洲黄色www| 欧美性xxxx极品hd欧美风情| 国模视频一区二区三区| 亚洲伊人久久大香线蕉av| 亚洲欧美一区二区精品久久久| 欧美国产极速在线| 久久影视免费观看| 成人网页在线免费观看| 久久久www成人免费精品| 久久久精品欧美| 久久久久亚洲精品成人网小说| 国产精品自拍偷拍| 久久99国产综合精品女同| 日韩av大片在线| 日本一区二区三区四区视频| 黑人巨大精品欧美一区二区一视频| 91视频国产高清| 亚洲国产欧美一区二区丝袜黑人| 久久精品国产亚洲| 欧美超级免费视 在线| 国产欧美日韩综合精品| 国产精品99久久久久久人| 成人黄色片在线| 欧美日韩免费网站| 欧美日韩免费看| 欧美日韩xxx| 中文字幕国产亚洲| 亚洲精品小视频在线观看| 亚洲精品成人久久电影| www.xxxx欧美| 日本午夜在线亚洲.国产| 欧美在线一区二区三区四| 亚洲免费一在线| 欧美综合第一页| 亚洲欧美一区二区三区情侣bbw| 2019中文字幕在线| 国产精品流白浆视频| 亚洲精选在线观看| 国产一区二区三区毛片| 亚洲综合色激情五月| 中国china体内裑精亚洲片| 亚洲精品乱码久久久久久金桔影视| 欧美成人免费观看| 欧美高清一级大片| 亚洲二区中文字幕| 亚洲国内精品在线| 91超碰中文字幕久久精品| 日韩在线观看免费高清| 91精品久久久久久久久久| 国产69精品99久久久久久宅男| 日本人成精品视频在线| 日韩av综合网| 中文字幕九色91在线| 美女性感视频久久久| 精品中文字幕视频| 精品爽片免费看久久| 亚洲一区亚洲二区亚洲三区| 欧美在线观看视频| 91av在线免费观看视频| 国产mv久久久| 欧美孕妇性xx| 国产成人aa精品一区在线播放| 国产精品电影久久久久电影网| 亚洲色图校园春色| 日韩欧美一区二区在线| 亚洲欧美制服中文字幕| 成人激情在线播放| 精品久久久视频| 青草热久免费精品视频| 国产精品h在线观看| 日韩二区三区在线| 国产啪精品视频网站| 久久99国产精品自在自在app| 91精品国产综合久久男男| 热久久这里只有精品| 国产视频久久久久久久| 亚洲美女av电影| 欧美视频在线看| 亚洲欧美日韩网| 欧美黄色小视频| 精品无码久久久久久国产| 国产日韩欧美在线视频观看| 成人在线中文字幕| 久久久97精品| 国产欧美日韩中文| 国产欧亚日韩视频| 日韩av男人的天堂| 欧美激情a∨在线视频播放| 最近2019中文字幕mv免费看| 欧美成人免费观看| 日韩免费在线视频| 亚洲最新在线视频| 国产精品三级美女白浆呻吟| 国产精品自产拍在线观| 亚洲综合大片69999| 亚洲人高潮女人毛茸茸| 日韩av中文字幕在线| 亚洲a成v人在线观看| 亚洲国产精品电影在线观看| 久久成年人免费电影| 欧美亚洲国产精品| 色久欧美在线视频观看| 日韩成人在线播放| 亚洲视频axxx| 国产精品久久婷婷六月丁香| 久久影院模特热| 少妇高潮久久77777| 亚洲精品国产拍免费91在线| 精品中文字幕在线观看| 国产小视频91| 国产精品三级在线| 欧美丰满老妇厨房牲生活| 日韩暖暖在线视频| 日韩欧美国产黄色| 亚洲欧洲国产一区| 中文字幕亚洲精品| 在线亚洲午夜片av大片| www.日本久久久久com.| 国产成人综合一区二区三区| 亚洲电影免费观看高清完整版在线观看| 亚洲影院色无极综合| 高清欧美一区二区三区| 欧美日韩国产丝袜美女| 亚洲精品美女网站| 精品美女永久免费视频| 亚洲欧美精品一区| 国产精品美女www爽爽爽视频| 91精品国产91久久久久久不卡| 色综合91久久精品中文字幕| 成人午夜高潮视频| 国产精品日日摸夜夜添夜夜av| 国产精品免费视频久久久| www.欧美视频|