12.5 使用面向?qū)ο?創(chuàng)建矩形

這是一個(gè) 用 面向?qū)ο髞?創(chuàng)建對(duì)象 的典型的列子

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>使用面向?qū)ο髣?chuàng)建矩形</title>
</head>
<body>
<div class="box" id="box">

</div>
<script>
window.onload = function () {
//1. 創(chuàng)建構(gòu)造函數(shù)(創(chuàng)建類)
//要把屬性也放在原型庫中,使用一個(gè)初始化方法 _init
function Rect(option){
//然后在構(gòu)造函數(shù)中調(diào)用初始化方法, 同時(shí)也把這個(gè)初始化方法放在原型庫中,
//初始化方法是用來初始化屬性的
this._init(option);
}
// 2. 給原型屬性擴(kuò)展方法和初始化屬性 (原型庫的寫法)
Rect.prototype = {//注意 名字的第一個(gè)字要大寫
_init:function(option){
//優(yōu)化:就是使用json把參數(shù)保存起來,直接傳遞json
var option = option || {};
//設(shè)置屬性
//2.1 放在哪里
this.parentId = option.parentId;
//2.2 設(shè)置位置
this.left = option.left ||100;
this.top = option.top ||100;
//2.3 設(shè)置大小
this.width = option.width||100;
this.height = option.height||50;
//設(shè)置其他
this.backgroundColor = option.backgroundColor||'blue';
this.border = option.border||0;
this.borderRadius = option.borderRadius||10;
},
//繪制方法
render: function () {
// 1.獲取 parent 標(biāo)簽
var parentNode = document.getElementById(this.parentId);
//創(chuàng)建 div
var childNode = document.createElement('div');
//2.設(shè)置標(biāo)簽的相關(guān)屬性
parentNode.style.position = 'relative';//給父標(biāo)簽 設(shè)置 relative
childNode.style.position = 'absolute';

            childNode.style.left = this.left + 'px';//設(shè)置位置 左邊的多少
            childNode.style.top = this.top + 'px';

            childNode.style.width = this.width + 'px'; //設(shè)置對(duì)象的寬度
            childNode.style.height = this.height + 'px';
            //設(shè)置其他
            childNode.style.backgroundColor = this.backgroundColor;
            childNode.style.border = this.border;
            childNode.style.borderRadius = this.borderRadius + 'px';

            //添加
            parentNode.appendChild(childNode);
        }

    }
    //如果要進(jìn)行封裝也是可以的,直接把上面的全部放在js文件夾中
    //創(chuàng)建新的矩形
    var mrRect = new Rect({
        parentId:'box',
        left:200,
        top:200,
        width:500,
        height:300,
        backgroundColor:'yellow',
        border:'10px solid red',
        borderRadius:15
    });
    //繪制,調(diào)用方法
    mrRect.render();
}

</script>
</body>
</html>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 各種純css圖標(biāo) CSS3可以實(shí)現(xiàn)很多漂亮的圖形,我收集了32種圖形,在下面列出。直接用CSS3畫出這些圖形,要比...
    劍殘閱讀 9,992評(píng)論 0 8
  • 1. tab列表折疊效果 html: 能源系統(tǒng)事業(yè)部 崗位名稱: 工作地點(diǎn) 崗位名...
    lilyping閱讀 2,015評(píng)論 0 1
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,189評(píng)論 1 92
  • 深入理解傅里葉變換Mar 12, 2017 這原本是我在知乎上對(duì)傅立葉變換、拉普拉斯變換、Z變換的聯(lián)系?為什么要進(jìn)...
    價(jià)值趨勢技術(shù)派閱讀 5,950評(píng)論 2 2
  • 五月就象情竇初開的少女,熱情奔放的,脈脈含情的
    涓涓細(xì)流韻閱讀 402評(píng)論 0 0

友情鏈接更多精彩內(nèi)容