真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用CSS怎么實現(xiàn)一個波浪效果

本篇文章為大家展示了使用CSS怎么實現(xiàn)一個波浪效果,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司主營玉州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),玉州h5微信小程序搭建,玉州網(wǎng)站營銷推廣歡迎玉州等地區(qū)企業(yè)咨詢

css是什么意思

css是一種用來表現(xiàn)HTML或XML等文件樣式的計算機語言,主要是用來設(shè)計網(wǎng)頁的樣式,使網(wǎng)頁更加美化。它也是一種定義樣式結(jié)構(gòu)如字體、顏色、位置等的語言,并且css樣式可以直接存儲于HTML網(wǎng)頁或者單獨的樣式單文件中,而樣式規(guī)則的優(yōu)先級由css根據(jù)這個層次結(jié)構(gòu)決定,從而實現(xiàn)級聯(lián)效果,發(fā)展至今,css不僅能裝飾網(wǎng)頁,也可以配合各種腳本對于網(wǎng)頁進行格式化。

SVG 實現(xiàn)波浪效果

借助 SVG ,是很容易畫出三次貝塞爾曲線的。

使用CSS怎么實現(xiàn)一個波浪效果


    50.0%
    
    
    
    
    
    
    
    

畫出三次貝塞爾曲線的核心在于 這一段。感興趣的可以自行去研究研究

canvas 實現(xiàn)波浪效果

使用 canvas 實現(xiàn)波浪效果的原理與 SVG 一樣,都是利用路徑繪制出三次貝塞爾曲線并賦予動畫效果。

使用CSS怎么實現(xiàn)一個波浪效果

$(function() {
    let canvas = $("canvas");
    let ctx = canvas[0].getContext('2d');
    let radians = (Math.PI / 180) * 180;
    let startTime = Date.now();
    let time = 2000;
    let clockwise = 1;
    let cp1x, cp1y, cp2x, cp2y;

    // 初始狀態(tài)
    // ctx.bezierCurveTo(90, 28, 92, 179, 200, 100);
    // 末尾狀態(tài)
    // ctx.bezierCurveTo(145, 100, 41, 100, 200, 100);

    requestAnimationFrame(function waveDraw() { 
        let t = Math.min(1.0, (Date.now() - startTime) / time);

        if(clockwise) {
            cp1x = 90 + (55 * t);
            cp1y = 28 + (72 * t);
            cp2x = 92 - (51 * t);
            cp2y = 179 - (79 * t);
        } else {
            cp1x = 145 - (55 * t);
            cp1y = 100 - (72 * t);
            cp2x = 41 + (51 * t);
            cp2y = 100 + (79 * t);
        }

        ctx.clearRect(0, 0, 200, 200); 
        ctx.beginPath();
        ctx.moveTo(0, 100);
        // 繪制三次貝塞爾曲線
        ctx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, 200, 100);
        // 繪制圓弧
        ctx.arc(100, 100, 100, 0, radians, 0);
        ctx.fillStyle = "rgba(154, 205, 50, .8)";
        ctx.fill();
        ctx.save(); 

        if( t == 1 ) {
            startTime = Date.now();
            clockwise = !clockwise;
        }

        requestAnimationFrame(waveDraw);
    });
})

主要是利用了動態(tài)繪制 ctx.bezierCurveTo() 三次貝塞爾曲線實現(xiàn)波浪的運動效果,感興趣的可以自行研究。

CSS實現(xiàn)波浪效果

最開始不是說css不能實現(xiàn)嗎?是,我們沒有辦法直接繪制出三次貝塞爾曲線,但是我們可以利用一些討巧的方法,模擬達到波浪運動時的效果,下面來看看這種方法。

原理

原理十分簡單,我們都知道,一個正方形,給它添加 border-radius: 50%,將會得到一個圓形。

使用CSS怎么實現(xiàn)一個波浪效果

width: 240px;
height: 240px;
background: #f13f84;
border-radius: 50%;

好的,如果 border-radius 沒到 50%,但是接近 50% ,我們會得到一個這樣的圖形(注意邊角,整個圖形給人的感覺是有點圓,卻不是很圓。)

使用CSS怎么實現(xiàn)一個波浪效果

width: 240px;
height: 240px;
background: #f13f84;
border-radius: 40%;

好的,那整這么個圖形又有什么用?還能變出波浪來不成?

我們讓上面這個圖形滾動起來(rotate) ,看看效果:

使用CSS怎么實現(xiàn)一個波浪效果

CSS實現(xiàn)波浪效果

@keyframes rotate{
    from{transform: rotate(0deg)}
    to{transform: rotate(359deg)}
}
.ripple{
    width: 240px;
    height: 240px;
    background: #f13f84;
    border-radius: 40%;
    animation: rotate 3s linear infinite;
}

上述內(nèi)容就是使用CSS怎么實現(xiàn)一個波浪效果,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


新聞標題:使用CSS怎么實現(xiàn)一個波浪效果
本文鏈接:http://weahome.cn/article/ihegcg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部