<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-57  評論-129  文章-0  trackbacks-0

    Spinner(微調器)裝飾器開發:


    組件介紹:


    仿照 window時間日期管理中,年份調節的控件,原型是一個文本輸入筐,一般用于數字輸入。筐后有上下微調按鈕,用于增減控件值。

    這種控件在
    backbase框架中也有出現,JSIspinner就是仿照其外形設計。


    顯示效果:




    在線演示見:http://www.xidea.org/project/jsi/decorator/spinner.html

    代碼:


    org/xidea/decorator/spinner.js


     


    1. /** 

    2.  * @public 

    3.  * @decorator spinner 

    4.  * @attribute start 

    5.  * @attribute end  

    6.  * @attribute step 

    7.  */  

    8. function Spinner(){  

    9. }  

    10.   

    11. Spinner.prototype = new Decorator();  

    12. Spinner.prototype.decorate = function(){  

    13.   this.start = parseInt(this.attributes.get('start'))  

    14.   this.end = parseInt(this.attributes.get('end'))  

    15.   this.step = parseInt(this.attributes.get('step'))||1;  

    16.   var container = this.getContainer();  

    17.   var table = document.createElement('table');  

    18.   var outerDiv = document.createElement("div");  

    19.   var upDiv = document.createElement("div");  

    20.   var downDiv = document.createElement("div");  

    21.   table.border = 0;  

    22.   table.cellSpacing=0;  

    23.   table.cellPadding=0;  

    24.   container.insertBefore(table,container.firstChild);  

    25.   var row = table.insertRow(0);  

    26.   var cell = row.insertCell(0);   

    27.   var ele = table.nextSibling;  

    28.   do{  

    29.     container.removeChild(ele);  

    30.     cell.appendChild(ele);  

    31.   }while(ele = table.nextSibling)  

    32.   cell = row.insertCell(1);  

    33.   cell.style.verticalAlign = 'middle',  

    34.   cell.appendChild(outerDiv);  

    35.   outerDiv.style.position = 'relative'  

    36.   outerDiv.style.top = '0px'  

    37.   outerDiv.style.left = '0px'  

    38.   outerDiv.style.height = '0px'  

    39.   outerDiv.style.width = '0px'  

    40.   outerDiv.style.zIndex= 2;  

    41.   //outerDiv.style.border= "solid 1px red";  

    42.   outerDiv.appendChild(upDiv);  

    43.   initializeHandleDiv(this,upDiv);  

    44.   outerDiv.appendChild(downDiv);  

    45.   initializeHandleDiv(this,downDiv);  

    46.   //alert(this.start+'/'+this.end+'/'+this.step+':'+(this.start<0))  

    47. }  

    48. Spinner.prototype.jump = function(offset){  

    49.   if(offset){  

    50.     var input = this.getContainer().getElementsByTagName('input')[0];  

    51.     var value = value = input.value * 1 + offset*this.step;  

    52.     if(value>this.end){  

    53.       value=this.end;  

    54.     }else if(value<this.start){  

    55.       value = this.start;  

    56.     }  

    57.     input.value = value;  

    58.   }  

    59. }  

    60. /** 

    61.  * @internal 

    62.  */  

    63. var imagePath = 'url("'+this.scriptBase + 'spinner.gif")';  

    64. /** 

    65.  * @internal 

    66.  */  

    67. function initializeHandleDiv(spinner,handleDiv){  

    68.   var position = 0;  

    69.   var style = handleDiv.style;  

    70.   style.backgroundImage=imagePath;  

    71.   style.position='absolute';  

    72.   style.width='12px';  

    73.   style.height='8px';  

    74.   style.margin='1px';  

    75.   style.left = '-14px'  

    76.   style.overflow = 'hidden'  

    77.   if(handleDiv.previousSibling){  

    78.     style.backgroundPosition = '0 -32px';  

    79.     position = -32;  

    80.     style.top = '0px'  

    81.   }else{  

    82.     style.top = '-10px'  

    83.   }  

    84.   handleDiv.onmouseout = buildMouseHandle(spinner,position,0)  

    85.   position -= 8;  

    86.   handleDiv.onmouseup=handleDiv.onmouseover = buildMouseHandle(spinner,position,0)  

    87.   position -= 8;  

    88.   handleDiv.onmousedown = buildMouseHandle(spinner,position,0)  

    89.   handleDiv.onclick = buildMouseHandle(spinner,position,position<-32?-1:1)  

    90. }  

    91. /** 

    92.  * @internal 

    93.  */  

    94. function buildMouseHandle(spinner,imagePosition,offset){  

    95.   imagePosition = '0 '+imagePosition+'px';  

    96.   return function(){  

    97.     this.style.backgroundPosition = imagePosition;  

    98.     spinner.jump(offset);  

    99.   }  

    100. }  











    使用方法見在 基于FCKEditor 開發JSI Editor裝飾器已有詳細介紹,不再敘述。


    見:http://www.javaeye.com/article/79063




    評論也很精彩,請點擊查看精彩評論。歡迎您也添加評論。查看詳細 >>





    JavaEye推薦
    杭州:外企高薪聘請系統維護工程師(10-15K)
    杭州:國內大型網絡公司高薪招聘系統架構師,資深JAVA開發工程師
    北京:優秀公司NHNChina招聘:WEB開發,系統管理,JAVA開發, DBA
    廣州:急招 JAVA開發經理/系統架構師(10-15K/月)也招聘java程序員



    文章來源: http://jindw.javaeye.com/blog/79064
    posted on 2007-05-12 11:17 金大為 閱讀(70) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产一区视频在线免费观看| 51视频精品全部免费最新| 成人免费无码大片A毛片抽搐色欲| 亚洲AV无码不卡无码| 美女巨胸喷奶水视频www免费| 亚洲精品国产电影| 免费人成在线观看播放a| 可以免费观看的一级毛片| 国产av无码专区亚洲av毛片搜| 日本二区免费一片黄2019| 最新亚洲人成网站在线观看| 日韩精品视频免费在线观看| 男男gay做爽爽的视频免费| MM131亚洲国产美女久久| 美女巨胸喷奶水视频www免费| 亚洲av无码国产精品色午夜字幕| 久久99热精品免费观看牛牛| 亚洲精品白色在线发布| 人禽杂交18禁网站免费| 亚洲AV无码专区亚洲AV桃| mm1313亚洲精品无码又大又粗| 国产精品一区二区三区免费| 亚洲国产精品无码专区影院| 16女性下面无遮挡免费| 亚洲人成人网毛片在线播放| 免费大片在线观看网站| a级成人毛片免费图片| 亚洲国产日韩在线成人蜜芽 | 亚洲AV成人潮喷综合网| 国产在线精品一区免费香蕉| 亚洲精品在线网站| 日本大片在线看黄a∨免费| 狠狠躁狠狠爱免费视频无码| 日韩精品一区二区亚洲AV观看 | 国产亚洲精品岁国产微拍精品| 久99久精品免费视频热77| 亚洲人成在线中文字幕| 亚洲精品成人网久久久久久| 亚洲毛片免费视频| 免费福利资源站在线视频| 亚洲一区综合在线播放|