国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【前端demo】CSS border-radius可視化 原生實現(xiàn)

這篇具有很好參考價值的文章主要介紹了【前端demo】CSS border-radius可視化 原生實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前端demo系列目錄:https://blog.csdn.net/karshey/article/details/132585901

效果

效果預(yù)覽:https://codepen.io/karshey/pen/zYyBPBR

【前端demo】CSS border-radius可視化 原生實現(xiàn),前端demo,前端,css

參考:

Fancy Border Radius Generator (9elements.github.io)

https://border-radius.com/

CSS border-radius 新玩法(含可視化生成工具) - 鬼小妞 - 博客園 (cnblogs.com)

GitHub - florinpop17/app-ideas: A Collection of application ideas which can be used to improve your coding skills.

原理

border-radius的值為百分號:

<!DOCTYPE html>
<html>
<head>
<style> 
div
{
	border:2px solid;
	padding:10px;
	width:300px;
	height:300px;
	border-top-left-radius: 25% 50%;
	border-bottom-right-radius: 25% 50%;
}
</style>
</head>
<body>

<div></div>

</body>
</html>

其中有css代碼:

border-top-left-radius: 25% 50%;
border-bottom-right-radius: 25% 50%;

因此:

  • top在左邊25%的地方開始有弧度
  • left在上面50%的地方有弧度
  • bottom在右邊25%的地方有弧度
  • right在下面50%的地方有弧度
    【前端demo】CSS border-radius可視化 原生實現(xiàn),前端demo,前端,css

值為px同理。

代碼

  • 此代碼的單位為px
  • 若想要為%的,將r[num] = event.target.value + 'px'改為r[num] = event.target.value + '%'
  • class中的one、two等數(shù)字是寫樣式(位置)用的
  • 每個input表單的data-index屬性,可以用來得知是哪個子元素發(fā)生了onchange事件(事件委托在父元素),通過event.target.attributes[2].value獲取data-index屬性

不知道在哪的話可以輸出event看看

class對應(yīng)位置:

【前端demo】CSS border-radius可視化 原生實現(xiàn),前端demo,前端,css
注意:文章來源地址http://www.zghlxwxcb.cn/news/detail-685606.html

  • borderTopLeftRadius :是上和左,即1和8
  • borderTopRightRadius :是上和右,即2和3
  • borderBottomRightRadius :是下和右,即5和4(注意順序?。?/li>
  • borderBottomLeftRadius :是下和左,即6和7
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS border-radius</title>
    <style>
        .box {
            height: 400px;
            width: 400px;
            margin: 100px auto;
            position: relative;
            border: 1px solid #9E9E9E;
            background: linear-gradient(45deg, #00bcd4, #d135ec);
        }


        .item {
            width: 40px;
            height: 25px;
            background-color: #d1d0d0;
            border: 1px solid #9e9e9e;
            position: absolute;
        }

        .one {
            top: -35px;
        }

        .two {
            top: -35px;
            right: 0;
        }

        .there {
            right: -55px;
        }

        .four {
            right: -55px;
            bottom: 0;
        }

        .five {
            bottom: -35px;
            right: 0;
        }

        .six {
            bottom: -35px;
        }

        .seven {
            left: -55px;
            bottom: 0;
        }

        .eight {
            left: -55px;
        }
    </style>
</head>

<body>
    <div class="box" id="box" onchange="Onchange(event)">
        <input type="text" class="item one" data-index="1">
        <input type="text" class="item two" data-index="2">
        <input type="text" class="item there" data-index="3">
        <input type="text" class="item four" data-index="4">
        <input type="text" class="item five" data-index="5">
        <input type="text" class="item six" data-index="6">
        <input type="text" class="item seven" data-index="7">
        <input type="text" class="item eight" data-index="8">
    </div>
</body>

</html>

<script>
    // 左上18
    // 右上23
    // 下右54
    // 左下67
    let r = new Array(9).fill(0);

    function Onchange(event) {
        // 事件委托 獲取子元素的data-index:event.target.attributes[2].value
        let num = event.target.attributes[2].value
        r[num] = event.target.value + 'px'
        console.log(r)

        borderRadiusChange()
    }

    function borderRadiusChange() {
        let box = document.getElementById('box')
        let rr = new Array()
        rr.push(r[1], r[8])
        box.style.borderTopLeftRadius = rr.join(' ')
        box.style.borderTopRightRadius = r.slice(2, 4).join(' ')
        // 清空數(shù)組
        rr.length = 0
        rr.push(r[5], r[4])
        box.style.borderBottomRightRadius = rr.join(' ')
        box.style.borderBottomLeftRadius = r.slice(6, 8).join(' ')
    }

</script>

到了這里,關(guān)于【前端demo】CSS border-radius可視化 原生實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【前端可視化】前端大屏適配方案

    動態(tài)設(shè)置 html 根字體的大小和 body 字體大小(使用 lib_flexible.js) 將設(shè)計稿的寬(1920)平均分成 24 等份,每一份 80px; html 根字體大小就設(shè)置為 80px,即 1rem = 80px,24rem = 1920px(移動端推薦分為 10 份); 將 body 字體大小設(shè)置為 16px; 最后需要使用插件或者其他方式將 px 轉(zhuǎn)為 rem 單位:

    2024年02月11日
    瀏覽(32)
  • 大數(shù)據(jù)前端可視化大屏--前端開發(fā)之路

    大數(shù)據(jù)前端可視化大屏--前端開發(fā)之路

    從2016年開始接觸可視化方向,一直想寫一篇文章回顧一下這幾年踩過的坑,接下來的這段時間里我會不定時的給大家分享一些可視化方面的經(jīng)驗和感悟,發(fā)出來跟大家一塊分享一下、一起討論討論、共同學(xué)習(xí)進(jìn)步。 這篇文章作為開端,之后會不定時的發(fā)出一系列的采坑記錄

    2023年04月09日
    瀏覽(31)
  • 前端可視化數(shù)據(jù)大屏(1)

    前端可視化數(shù)據(jù)大屏(1)

    效果圖 技術(shù)架構(gòu):datav,vue2,echarts 我們一步一步的來實現(xiàn)一個簡單的可視化數(shù)據(jù)大屏,開始吧!! ? ? ? ? 太簡單了,百度上可以搜索,我這里就不多說了,把router裝好就行 ? ? ? ? 2.1在控制臺上輸入命令下載datav ? ? ? ? 2.2 將datav的組件注冊為全局組件 ? ? ? ? ? ? ?

    2024年02月06日
    瀏覽(30)
  • HTML5+CSS3+JS小實例:音頻可視化

    HTML5+CSS3+JS小實例:音頻可視化

    實例:音頻可視化 技術(shù)棧:HTML+CSS+JS 效果: 源碼: 【HTML】 【CSS】

    2024年01月18日
    瀏覽(17)
  • 基于HTML+CSS+Echarts大屏數(shù)據(jù)可視化集合共99套

    基于HTML+CSS+Echarts大屏數(shù)據(jù)可視化集合共99套

    基于HTML/CSS/Echarts的會議展覽、業(yè)務(wù)監(jiān)控、風(fēng)險預(yù)警、數(shù)據(jù)分析展示等多種展示需求可視化集合。 Java+Swing實現(xiàn)學(xué)生選課管理系統(tǒng) Java+Swing實現(xiàn)學(xué)校教務(wù)管理系統(tǒng) Java+Swing+sqlserver學(xué)生成績管理系統(tǒng) Java+Swing用戶信息管理系統(tǒng) Java+Swing實現(xiàn)的五子棋游戲 基于JavaSwing 銀行管理系統(tǒng)

    2024年02月12日
    瀏覽(20)
  • html+css+js本地音樂播放器,實現(xiàn)可視化音頻頻譜

    html+css+js本地音樂播放器,實現(xiàn)可視化音頻頻譜

    html+css+js本地音樂播放器,實現(xiàn)可視化音頻頻譜 之前用swing寫了個本地音樂播放器(如下圖),但是效果一言難盡,界面丑,功能bug也多,唉 所以后面又重新用html寫了個,界面樣式和功能方面,比swing寫的好看、完善多了。 導(dǎo)入音樂(已完成) 展示列表(已完成) 列表雙擊

    2024年02月09日
    瀏覽(28)
  • Echarts前端可視化庫使用教程

    Echarts前端可視化庫使用教程

    ECharts是一個使用 JavaScript 實現(xiàn)的開源可視化庫,可以流暢的運(yùn)行在 PC 和移動設(shè)備上,兼容當(dāng)前絕大部分瀏覽器(IE8/9/10/11,Chrome,F(xiàn)irefox,Safari等),底層依賴矢量圖形庫 ZRender,提供直觀,交互豐富,可高度個性化定制的數(shù)據(jù)可視化圖表。 官網(wǎng):https://echarts.apache.org/zh/inde

    2024年02月10日
    瀏覽(28)
  • 前端大屏可視化適配方案(通用模板,快速上手)

    在日常前端開發(fā)中,大屏項目是每個前端開發(fā)者必備技能,但是目前設(shè)備尺寸大小和分辨率都不相同,所以大屏適配成了一個頭疼的問題??吹骄W(wǎng)上的實現(xiàn)方案有rem,flexible,zoom,百分比,總感覺沒那么完美,于是自己研究了一下也借鑒了網(wǎng)上大神的方法,實現(xiàn)了一下這三種

    2024年02月12日
    瀏覽(27)
  • ChatGPT 與前端技術(shù)實現(xiàn)制作大屏可視化

    ChatGPT 與前端技術(shù)實現(xiàn)制作大屏可視化

    像這樣的綜合案例實分析,我們可以提供案例,維度與指標(biāo)數(shù)據(jù),讓ChatGPT與AIGC 幫寫出完整代碼,并進(jìn)行一個2行2列的布局設(shè)置。 數(shù)據(jù)與指令如下: 商品名稱?? ?銷量?? ?目標(biāo)?? ?完成率 可樂?? ?479?? ?600?? ?79.83% 雪碧?? ?324?? ?600?? ?54.00% 紅茶?? ?379?? ?600??

    2024年02月11日
    瀏覽(28)
  • 前端數(shù)據(jù)可視化:D3.js的實踐

    數(shù)據(jù)可視化是指將數(shù)據(jù)以圖形、圖表、圖片的形式呈現(xiàn)給用戶,以幫助用戶更好地理解數(shù)據(jù)。隨著數(shù)據(jù)的增長,數(shù)據(jù)可視化也越來越重要。前端數(shù)據(jù)可視化是指在網(wǎng)頁上使用HTML、CSS、JavaScript等技術(shù)來呈現(xiàn)數(shù)據(jù),以幫助用戶更好地理解數(shù)據(jù)。D3.js是一個用于創(chuàng)建動態(tài)、交互式數(shù)

    2024年04月13日
    瀏覽(82)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包