www.gusucode.com > 一个基于extjs的强大聊天插件源码程序 > 一个基于extjs的强大聊天插件/extjame/ext-jame/js/ext2/examples/slider/SliderField.js
/* * Ext JS Library 2.0.2 * Copyright(c) 2006-2008, Ext JS, LLC. * licensing@extjs.com * * http://extjs.com/license */ // vim: fdc=4:nu:ts=4:sw=4:nospell /** * @class Ext.form.SliderField * @extends Ext.form.Field * Slider form field. * @constructor * Creates a new SliderField * @param {Object} config Configuration options */ Ext.form.SliderField = Ext.extend(Ext.form.Field, { defaultAutoCreate : {tag:'input', type:'hidden'}, // private initComponent : function() { Ext.form.SliderField.superclass.initComponent.call(this); this.minValue = this.minValue || 0; this.maxValue = this.maxValue || 1; }, // private onRender: function(ct, position) { Ext.form.SliderField.superclass.onRender.call(this, ct, position); this.setValue(this.getValue() || this.minValue); this.sbar = Ext.DomHelper.insertFirst(ct, {tag:'div', cls:'x-slider-hbar'}, true); this.sthumb = Ext.DomHelper.append(ct, {tag:'img', src:Ext.BLANK_IMAGE_URL, cls:'x-slider-thumb'}, true); this.sthumb.addClassOnOver('x-slider-thumb-over'); }, // private afterRender: function() { Ext.form.SliderField.superclass.afterRender.call(this); this.sbar.setWidth(parseInt(this.el.dom.style.width, 10)); this.dd = new Ext.dd.DD(this.sthumb.id, 'slider-' + this.sthumb.id, {}); this.dd.slider = this; this.dd.onDrag = this.onDrag; this.dd.startDrag = this.startDrag; }, startDrag: function(x, y) { var slider = this.slider; var bb = slider.sbar.getBox(); var tb = slider.sthumb.getBox(); this.resetConstraints(); this.setYConstraint(0, 0); this.setXConstraint(tb.x - bb.x + 1, bb.x + bb.width - tb.x - tb.width - 1); slider.pixelMax = bb.width - tb.width; // debugger; }, onDrag: function(e) { var min = this.slider.minValue; var max = this.slider.maxValue; var pixelPos = parseInt(this.getEl().style.left,10); this.slider.setValue(min + (max - min) * pixelPos / this.slider.pixelMax); } }); Ext.reg('sliderfield', Ext.form.SliderField); // end of file