ExtJS 4.2 評分組件

来源:http://www.cnblogs.com/polk6/archive/2016/10/16/5965570.html
-Advertisement-
Play Games

上一文章是擴展ExtJS自帶的Date組件。在這裡將創建一個評分組件。 ...


上一文章是擴展ExtJS自帶的Date組件。在這裡將創建一個評分組件。

目錄

1. 介紹

2. 示例

3. 資源下載

 

1. 介紹

代碼參考的是 Sencha Touch 2上的一個RatingStar擴展插件,在此基礎上做了移植到ExtJS 4.2,並擴展了預設值、form表單支持等功能。

1.1 JavaScript代碼

/*!
* 評分組件
*/
Ext.define('App.Demo.RatingStarFiledDemoTab', {
    extend: 'Ext.panel.Panel',
    layout: 'fit',
    closable: true,
    reload: function () {
    },
    initComponent: function () {
        var me = this; 
       
        // panel渲染後
        me.on('afterrender', function () {

        });
        var _container = AkExtJS.extjs.createPanel({
            layout: 'vbox',
            items: [
                Ext.create('Ext.form.Display', {
                    width: '100%',
                    value: '<h1>評分組件</h1>' +
                        '<p>文章地址:<a href="http://www.cnblogs.com/polk6/p/5965570.html" target="_blank">http://www.cnblogs.com/polk6/p/5965570.html</a></p>' +
                        '<p>此處為創建一個新的組件:評分組件</p>'
                }),
                Ext.create('Js.ux.RatingStarField', {
                    name: 'speedScore',
                    fieldLabel: '發貨速度',
                    labelWidth: 60,
                    width: 220,
                }),
                Ext.create('Js.ux.RatingStarField', {
                    name: 'serviceScore',
                    fieldLabel: '服務態度',
                    labelWidth: 60,
                    width: 220,
                }),
                Ext.create('Js.ux.RatingStarField', {
                    name: 'desScore',
                    fieldLabel: '描述相符',
                    labelWidth: 60,
                    width: 220,
                    value:3
                }),
                Ext.create('Ext.button.Button', {
                    text: '設置【發貨速度】為5星',
                    handler: function (thisControl, event) {
                        _container.down('[name=speedScore]').setValue(5);
                    }
                }),
                Ext.create('Ext.button.Button', {
                    text: '取值',
                    handler: function (thisControl, event) {
                        var txt = '發貨速度:' + _container.down('[name=speedScore]').getValue() + '<br/>' +
                                '服務態度:' + _container.down('[name=serviceScore]').getValue() + '<br/>' +
                                '描述相符:' + _container.down('[name=desScore]').getValue() + '<br/>';
                        Ext.Msg.alert('系統提示', txt);
                    }
                }),
            ]
        });

        Ext.applyIf(me, {
            items: [_container]
        });
        me.callParent(arguments);
    }
});

 

1.2 Css樣式

.x-rating{min-height:25px;}
.x-rating .x-component-outer{position: relative; padding:0.6em;min-height: 40px;}
.x-rating .starContainer, .x-rating .starFakeContainer{position:absolute; top:0px;left:0px; width:100%; height:100%; }
.x-rating .starFakeContainer{z-index:10;}
.x-rating .starContainer{display:-webkit-box; -webkit-box-align:center;-webkit-box-pack:center;}
.x-rating .starContainer .center, .x-rating .starContainer .left, .x-rating .starContainer .right{-webkit-box-flex:1}
.x-rating .star{border:0px !important;padding:0px !important;margin:0px 0px 0px -12.5px !important;position:absolute; left:16.66%; -webkit-mask:url(/images/star.png) left center no-repeat; -webkit-mask-size:25px 25px; background-color:#ff0000; width:25px; height:25px; opacity:.2; -webkit-transform: scale(1,1);}
.x-rating .star2{left:33.33%;}
.x-rating .star3{left:49.99%;}
.x-rating .star4{left:66.66%;}
.x-rating .star5{left:83.33%;}
.x-rating .star.active{-webkit-transform: scale(1,1); opacity:1;}

 

1.3 圖標

  

 

1.4 成員

名稱 類型 說明
value 屬性 初始化時指定星數,數值範圍0~5。預設為0。
setValue(value) 方法 設置評分組件的數值,數值範圍0~5。
getValue() 方法 獲取評分組件的數值。

 

2. 示例

2.1 運行圖

 

2.2 代碼

Ext.create('Js.ux.RatingStarField', {
    fieldLabel: '發貨速度',
    labelWidth: 60,
    width: 220,
}),
Ext.create('Js.ux.RatingStarField', {
    fieldLabel: '服務態度',
    labelWidth: 60,
    width: 220,
}),
Ext.create('Js.ux.RatingStarField', {
    fieldLabel: '描述相符',
    labelWidth: 60,
    width: 220,
    value:3
})

  

3. 資源下載

3.1 Demo下載

地址ExtJS4.2_RatingStarDemo.zip

 

3.2 線上示例

地址http://www.akmsg.com/ExtJS/index.html#App.Demo.RatingStarFiledDemoTab

  

==================================系列文章==========================================

本篇文章:7.10 ExtJS 4.2 評分組件

Web開發之路系列文章

 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上周開始試著來用appium,首先開始去官網看,然後下載appium客戶端,下載安裝後,然後筆者開始安裝android sdk ,進官網下載後,筆者下載安裝後,在更新下載SDK Manager的時候一直出錯,下載不下來,翻牆也不行,來到蟲師博客 ,看到方式後,就試著去做,可是按照蟲師的方式還是不行, ...
  • 首先,我們準備文件 jdbc.properties,用於保存連接資料庫的信息,利於我們在配置文件中的使用 一:Spring框架內置的連接池(內置jar包可以使用) 當然,它是使用到 spring-jdbc-4.2.0.RELEASE.jar 在applicationContext.xml(Sprin ...
  • spring 註解多選擇是好事嘛? Spring 經過十多年的快速發展和更新,以其獨特的創新帶來了大量的擁躉者,在選擇方面還帶來了更多選擇!譬如spring bean的裝配(在XML中進行顯式配置、在Java中進行顯式配置、隱式的bean發現機制和自動裝配),註解的多元化(基本註解、jsr250、j ...
  • Spring介紹: spring 使用基本的 JavaBean 來完成以前只可能由 EJB 完成的事情。然而, Spring的用途不僅限於伺服器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java 應用都可以從 Spring 中受益。 簡單來說, Spring 是一個輕量級的控制反轉(IoC ...
  • 【Python練習題 016】 猴子吃桃問題:猴子第一天摘下若幹個桃子,當即吃了一半,還不癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。 這題得倒著推。第10天還沒吃,就剩1 ...
  • 淺析設計模式中的策略模式,包含原理解讀和具體案例代碼的實現。僅為個人學習總結分享,希望圍觀者多提意見。 ...
  • 上一次的《微信小程式之小豆瓣圖書》製作了一個圖書的查詢功能,只是簡單地應用到了網路請求,其他大多數小程式應有的知識。而本次的示例是`知乎日報`,功能點比較多,頁面也比上次複雜了許多。在我編寫這個DEMO之前,網上已經有很多網友弄出了相同的DEMO,也是非常不錯的,畢竟這個案例很經典,有比較完整的AP... ...
  • 一、css文本屬性 (1)文本大小{font-size:value;} 單位:pt:9pt=12px;瀏覽器預設字體大小為16px em:1em=16px; 在CSS2.0中 xx-small:9px x-small:11px small:13px medium:16px large:19px x- ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...