欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

使用CSS和D3實現(xiàn)黑白交疊的動畫效果的方法

使用CSS和D3實現(xiàn)黑白交疊的動畫效果的方法?這個問題可能是我們?nèi)粘W習或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了晉安免費建站歡迎大家使用!

效果預(yù)覽

使用CSS和D3實現(xiàn)黑白交疊的動畫效果的方法

代碼解讀

定義 dom,容器中包含 3 個子元素,每個子元素代表一個圓:

<div class="circles">
    <span></span>
    <span></span>
    <span></span>
</div>

居中顯示:

body {
    margin: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: black;
}

定義容器尺寸:

.circles {
    width: 60vmin;
    height: 60vmin;
}

畫出容器中的1個圓:

.circles {
    position: relative;
}

.circles span {
    position: absolute;
    box-sizing: border-box;
    width: 50%;
    height: 50%;
    background-color: white;
    border-radius: 50%;
    left: 25%;
}

定義變量,畫出多個圓,每個圓圍繞著第 1 個圓的底部中點旋轉(zhuǎn),圍成一個更大的圓形:

.circles {
    --particles: 3;
}

.circles span {
    transform-origin: bottom center;
    --deg: calc(360deg / var(--particles) * (var(--n) - 1));
    transform: rotate(var(--deg));
}

.circles span:nth-child(1) {
    --n: 1;
}

.circles span:nth-child(2) {
    --n: 2;
}

.circles span:nth-child(3) {
    --n: 3;
}

為子元素增加動畫效果:

.circles span {
    animation: rotating 5s ease-in-out infinite;
}

@keyframes rotating {
    0% {
        transform: rotate(0);
    }

    50% {
        transform: rotate(var(--deg)) translateY(0);
    }

    100% {
        transform: rotate(var(--deg)) translateY(100%) scale(2);
    }
}

設(shè)置子元素混色模式,使子元素間交疊的部分顯示成黑色:

.circles span {
    mix-blend-mode: difference;
}

為容器增加動畫效果,抵銷子元素放大,使動畫流暢銜接:

.circles {
    animation: zoom 5s linear infinite;
}

@keyframes zoom {
    to {
        transform: scale(0.5) translateY(-50%);
    }
}

接下來用 d3 批量處理 dom 元素和 css 變量。
引入 d3 庫:

<script src="https://d3js.org/d3.v5.min.js"></script>

用 d3 為表示圓數(shù)量的變量賦值:

const COUNT_OF_PARTICLES = 30;

d3.select('.circles')
    .style('--particles', COUNT_OF_PARTICLES)

用 d3 生成 dom 元素:

d3.select('.circles')
    .style('--particles', COUNT_OF_PARTICLES)
    .selectAll('span')
    .data(d3.range(COUNT_OF_PARTICLES))
    .enter()
    .append('span');

用 d3 為表示子元素下標的變量賦值:

d3.select('.circles')
    .style('--particles', COUNT_OF_PARTICLES)
    .selectAll('span')
    .data(d3.range(COUNT_OF_PARTICLES))
    .enter()
    .append('span')
    .style('--n', (d) => d + 1);

刪除掉 html 文件中的相關(guān) dom 元素和 css 文件中相關(guān)的 css 變量。

最后,把圓的數(shù)量調(diào)整為 30 個:

const COUNT_OF_PARTICLES = 30;

感謝各位的閱讀!看完上述內(nèi)容,你們對使用CSS和D3實現(xiàn)黑白交疊的動畫效果的方法大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱:使用CSS和D3實現(xiàn)黑白交疊的動畫效果的方法
本文URL:http://aaarwkj.com/article12/jeiigc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、網(wǎng)站導(dǎo)航、微信小程序網(wǎng)站改版、App開發(fā)關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
伊人久久大香线蕉av网站| 亚洲精品欧美日韩久久| 麻豆国产传媒片在线观看 | 日本中文字幕三级专区| 搡老女人老91妇女老熟女| 日韩精品在线观看一| 91九色国产原创在线观看| 国产黄片一区二区不卡| 日韩一区二区三区视频在线看| 亚洲日本av一区二区| 国产成人自拍激情视频| 精品国产熟女成人av| 国产丝袜美女一区二区| 日韩蜜桃av一二三四区| 自拍偷拍欧美日韩第一页| 日韩一二三四区免费观看 | 草草视频在线观看网站| 国产原创av剧情在线播放| 亚洲精品免费一区二区三区| 亚洲永久精品天码野外| 黄色三级欧美一区二区| 日韩精品一区二区三区夜色| 91麻豆国产在线视频| 欧美亚洲另类色自拍偷拍| 91免费福利激情视频| 人妻在线中文字幕一区| 91麻豆亚洲国产成人久久| 国产一区二区麻豆视频| 欧美劲爆三级免费观看| 欧美+亚洲+精品+三区| 欧美日韩精品福利一区二区| av电影网站中文字幕| 丰满少妇一区二区三区在线观看| 国产成人精品亚洲日本片| 偷拍偷窥女厕一区二区视频| 色哟哟在线观看国产精品| 久久五十路六十路熟妇中出| 日韩欧美国产午夜精品| 东京一区二区三区四区黄片| 国产无遮挡又黄又爽网站| 日韩欧美一级性生活片|