最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

xmlplus組件設(shè)計(jì)系列之按鈕(2)

 更新時(shí)間:2017年04月26日 14:07:57   作者:qudou  
xmlplus 是一個(gè)JavaScript框架,用于快速開發(fā)前后端項(xiàng)目。這篇文章主要介紹了xmlplus組件設(shè)計(jì)系列之按鈕,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

除了圖標(biāo)以外,按鈕也許是最簡(jiǎn)單的組件了,現(xiàn)在來看看如何定義按鈕組件。

使用原生按鈕組件

在 xmlplus 中,HTML 元素也以組件的方式存在。所以,你可以直接通過使用 button 標(biāo)簽或者 input 標(biāo)簽來使用按鈕組件。如下示例所示:

Example: {
  xml: "<div id='example'>\
       <button>Default</button>\
       <input type='submit'>Primary</input>\
     </div>"
}

雖然原生按鈕外觀不那么吸引人,但原生按鈕未經(jīng)特殊包裝,所以渲染起來最快,執(zhí)行效率最高。

使用 Bootstrap 樣式的按鈕

如果你的項(xiàng)目在視覺上沒有特別要求的話。使用 Bootstrap 樣式來定義按鈕組件是一個(gè)好主意。按傳統(tǒng)方式使用 Bootstrap 按扭,你需要像下面這樣使用。

<button type="button" class="btn btn-default">Default</button>
<button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-success">Success</button>

請(qǐng)認(rèn)真觀察,你是不是覺得它給你的比你要求的要多。你不但發(fā)現(xiàn)了好多的 type=button,還發(fā)現(xiàn)了好多的 btn?,F(xiàn)在下面給出一個(gè)組件,它基于 Bootstrap 樣式,但它明顯地簡(jiǎn)化了按鈕的使用方式。

Button: {
  xml: "<button type='button' class='btn'/>",
  fun: function (sys, items, opts) {
    this.addClass("btn-" + opts.type);
  }
}

此按鈕組件封裝了原始按鈕需要重復(fù)書寫的內(nèi)容,在使用時(shí),僅需提供 type 屬性即可指明目標(biāo)按鈕,使用起來更為便捷。下面給出的是新按鈕組件的使用方式。

<Button type='default'>Default</Button>
<Button type='primary'>Primary</Button>
<Button type='success'>Success</Button>

帶有圖標(biāo)的按鈕

按鈕上除了文字外,還可以附帶圖標(biāo)。合適的圖標(biāo)可以使按扭的使用意圖更加生動(dòng)直觀。這里以 EasyUI 的圖標(biāo)按鈕為例來說明如何封裝并使用圖標(biāo)按鈕。我們首先來看看,EasyUI 圖標(biāo)按鈕的原始使用方式。

<div style="padding:5px 0;">
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="easyui-linkbutton" data-options="iconCls:'icon-add'">Add</a>
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="easyui-linkbutton" data-options="iconCls:'icon-remove'">Remove</a>
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="easyui-linkbutton" data-options="iconCls:'icon-save'">Save</a>
</div>

與上一節(jié)對(duì) Bootstrap 按鈕的封裝類似,通過觀察提煉出重復(fù)出現(xiàn)的部分,將變化的部分以接口形式展現(xiàn)。上面的按鈕僅圖標(biāo)類型名和文本是可變的,所以我們可以做出如下的設(shè)計(jì):

Button: {
  xml: "<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="easyui-linkbutton"/>",
  fun: function (sys, items, opts) {
    this.attr("data-options" + "iconCls:'icon-" + opts.type);
  }
}

下面是新圖標(biāo)的使用方式,它明顯比原始的使用方式簡(jiǎn)潔多了。

<div style="padding:5px 0;">
  <Button type='add'>Add</Button>
  <Button type='remove'>Reomve</Button>
  <Button type='save'>Save</Button>
  <Button type='cut'>Cut</Button>
</div>

自定義你的按鈕組件

使用類似 Bootstrap, EasyUI 等開源框架,可以避免重造輪子。然而,當(dāng)這些開源項(xiàng)目無法滿足你的需求時(shí),你就需要自己動(dòng)手了。

為簡(jiǎn)單起見,現(xiàn)在假定上述 Bootstrap 框架并不存在,那么如何設(shè)計(jì)一套上述的按鈕?這樣的實(shí)踐是非常有意義的,它有助于你舉一反三。

現(xiàn)在讓我們重新對(duì)上面的按鈕組件作觀察。你會(huì)發(fā)現(xiàn),Bootstrap 設(shè)計(jì)了一些可以組合的樣式類,其中 btn 是每一個(gè)按鈕都需要的,另外像 btn-default、btn-primary 等等都根據(jù)需要與 btn 形成組合樣式類。好了,根據(jù)這個(gè)思路,我們就可以設(shè)計(jì)出如下的組件框架。

Button: {
  css: "#btn { 這里是按鈕基本的樣式 }\
     #default { 這里是default樣式 }\
     #primary { 這里是primary樣式 }",
  xml: "<button type='button'/>",
  fun: function (sys, items, opts) {
    this.addClass("#btn #" + opts.type, this);
  }
}

上述的設(shè)計(jì)思路與前面直接使用 Bootstrap 樣式定義按鈕不同點(diǎn)在于,前者已經(jīng)為你定義好了各個(gè)全局的樣式類,你只需要直接引用就可以了。而此處你需要在按扭組件內(nèi)部自行定義相關(guān)樣式類。從封裝的角度看,后者的內(nèi)聚性要強(qiáng)于前者,因?yàn)樗⒉槐┞度诸惷?。下面是該組件的使用示例。

Example: {
  xml: "<div id='example'>\
       <Button type='default'>Default</Button>\
       <Button type='primary'>Primary</Button>\
       <Button type='success'>Success</Button>\
     </div>"
}

注意,為了簡(jiǎn)化起見,這里的自定義按鈕組件略去了 hover、active 樣式,所以與 Bootstrap 按鈕有些不一樣。

本系列文章基于 xmlplus 框架。如果你對(duì) xmlplus 沒有多少了解,可以訪問 www.xmlplus.cn。這里有詳盡的入門文檔可供參考。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript采用遞歸算法計(jì)算階乘實(shí)例

    JavaScript采用遞歸算法計(jì)算階乘實(shí)例

    這篇文章主要介紹了JavaScript采用遞歸算法計(jì)算階乘,簡(jiǎn)單分析了javascript遞歸算法的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • XMLHttpRequest對(duì)象_Ajax異步請(qǐng)求重點(diǎn)(推薦)

    XMLHttpRequest對(duì)象_Ajax異步請(qǐng)求重點(diǎn)(推薦)

    下面小編就為大家?guī)硪黄猉MLHttpRequest對(duì)象_Ajax異步請(qǐng)求重點(diǎn)(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • 詳解用async/await來處理異步

    詳解用async/await來處理異步

    這篇文章主要介紹了詳解用async/await來處理異步,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 詳解JavaScript的懶加載是如何實(shí)現(xiàn)的

    詳解JavaScript的懶加載是如何實(shí)現(xiàn)的

    懶加載(Lazy Loading)是一種在軟件開發(fā)中常用的優(yōu)化技術(shù),它主要用于延遲加載資源,直到真正需要使用的時(shí)候才進(jìn)行加載,這樣可以減少初始加載的時(shí)間和資源消耗,并提升用戶體驗(yàn),本文給大家詳細(xì)介紹了JavaScript的懶加載是如何實(shí)現(xiàn)的,需要的朋友可以參考下
    2024-01-01
  • Input 特殊事件onpopertychange和oninput

    Input 特殊事件onpopertychange和oninput

    onpopertychange和oninput的區(qū)別。
    2009-06-06
  • JS+CSS實(shí)現(xiàn)下拉刷新/上拉加載插件

    JS+CSS實(shí)現(xiàn)下拉刷新/上拉加載插件

    這篇文章主要介紹了JS+CSS實(shí)現(xiàn)下拉刷新/上拉加載插件,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • JS中如何將base64轉(zhuǎn)換成file

    JS中如何將base64轉(zhuǎn)換成file

    這篇文章主要介紹了JS中如何將base64轉(zhuǎn)換成file的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Javascript String 字符串操作包

    Javascript String 字符串操作包

    提供一個(gè) JS String 包,包含了一些常用的對(duì)字符串操作的函數(shù),詳細(xì)的請(qǐng)看源碼及演示
    2010-10-10
  • 使用tree?shaking?移除無用代碼

    使用tree?shaking?移除無用代碼

    這篇文章主要為大家介紹了使用tree?shaking?移除無用代碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • JavaScript Blob對(duì)象原理及用法詳解

    JavaScript Blob對(duì)象原理及用法詳解

    這篇文章主要介紹了JavaScript Blob對(duì)象原理及用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論

连江县| 额济纳旗| 凤凰县| 建瓯市| 砀山县| 龙川县| 关岭| 关岭| 黔西县| 宁晋县| 宁晋县| 江门市| 新乡县| 武平县| 丹寨县| 东阳市| 黑山县| 潼南县| 武冈市| 青浦区| 且末县| 六安市| 田东县| 喀喇沁旗| 海盐县| 台湾省| 罗田县| 读书| 抚远县| 紫金县| 湘阴县| 阿勒泰市| 横峰县| 辛集市| 额尔古纳市| 清水县| 信阳市| 漳州市| 固镇县| 安溪县| 特克斯县|