⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _timepicker.js

📁 这是一个ajax的例子大家好好的看看就是一个鱼眼的效果
💻 JS
字号:
if(!dojo._hasResource["dijit._TimePicker"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dijit._TimePicker"] = true;dojo.provide("dijit._TimePicker");dojo.require("dijit.form._FormWidget");dojo.require("dojo.date.locale");/*=====dojo.declare(	"dijit._TimePicker.__Constraints",	[dojo.date.locale.__FormatOptions],	{		// clickableIncrement: String		//		see dijit._TimePicker.clickableIncrement		clickableIncrement: "T00:15:00",		// visibleIncrement: String		//		see dijit._TimePicker.visibleIncrement		visibleIncrement: "T01:00:00",		// visibleRange: String		//		see dijit._TimePicker.visibleRange		visibleRange: "T05:00:00"	});=====*/dojo.declare("dijit._TimePicker",	[dijit._Widget, dijit._Templated],	{		//	summary:		//		A graphical time picker.		//		This widget is used internally by other widgets and is not accessible		//		as a standalone widget.		templateString:"<div id=\"widget_${id}\" class=\"dijitMenu\"\n    ><div dojoAttachPoint=\"upArrow\" class=\"dijitButtonNode\"><span class=\"dijitTimePickerA11yText\">&#9650;</span></div\n    ><div dojoAttachPoint=\"timeMenu,focusNode\" dojoAttachEvent=\"onclick:_onOptionSelected,onmouseover,onmouseout\"></div\n    ><div dojoAttachPoint=\"downArrow\" class=\"dijitButtonNode\"><span class=\"dijitTimePickerA11yText\">&#9660;</span></div\n></div>\n",		baseClass: "dijitTimePicker",		// clickableIncrement: String		//		ISO-8601 string representing the amount by which		//		every clickable element in the time picker increases.		//		Set in local time, without a time zone.		//		Example: `T00:15:00` creates 15 minute increments		//		Must divide dijit._TimePicker.visibleIncrement evenly		clickableIncrement: "T00:15:00",		// visibleIncrement: String		//		ISO-8601 string representing the amount by which		//		every element with a visible time in the time picker increases.		//		Set in local time, without a time zone.		//		Example: `T01:00:00` creates text in every 1 hour increment		visibleIncrement: "T01:00:00",		// visibleRange: String		//		ISO-8601 string representing the range of this TimePicker.		//		The TimePicker will only display times in this range.		//		Example: `T05:00:00` displays 5 hours of options		visibleRange: "T05:00:00",		// value: String		//		Date to display.		//		Defaults to current time and date.		//		Can be a Date object or an ISO-8601 string.		//		If you specify the GMT time zone (`-01:00`),		//		the time will be converted to the local time in the local time zone.		//		Otherwise, the time is considered to be in the local time zone.		//		If you specify the date and isDate is true, the date is used.		//		Example: if your local time zone is `GMT -05:00`,		//		`T10:00:00` becomes `T10:00:00-05:00` (considered to be local time),		//		`T10:00:00-01:00` becomes `T06:00:00-05:00` (4 hour difference),		//		`T10:00:00Z` becomes `T05:00:00-05:00` (5 hour difference between Zulu and local time)		//		`yyyy-mm-ddThh:mm:ss` is the format to set the date and time		//		Example: `2007-06-01T09:00:00`		value: new Date(),		_visibleIncrement:2,		_clickableIncrement:1,		_totalIncrements:10,		// constraints: dijit._TimePicker.__Constraints 		constraints:{},		serialize: dojo.date.stamp.toISOString,//TODOC: what is priority?		setValue:function(/*Date*/ date, /*Boolean*/ priority){			// summary:			//	Set the value of the TimePicker			//	Redraws the TimePicker around the new date			//dijit._TimePicker.superclass.setValue.apply(this, arguments);			this.value=date;			this._showText();		},		isDisabledDate: function(/*Date*/dateObject, /*String?*/locale){			// summary:			//	May be overridden to disable certain dates in the TimePicker e.g. `isDisabledDate=dojo.date.locale.isWeekend`			return false; // Boolean		},		_showText:function(){			this.timeMenu.innerHTML = "";			var fromIso = dojo.date.stamp.fromISOString;			this._clickableIncrementDate=fromIso(this.clickableIncrement);			this._visibleIncrementDate=fromIso(this.visibleIncrement);			this._visibleRangeDate=fromIso(this.visibleRange);			// get the value of the increments and the range in seconds (since 00:00:00) to find out how many divs to create			var sinceMidnight = function(/*Date*/ date){				return date.getHours() * 60 * 60 + date.getMinutes() * 60 + date.getSeconds();			};			var clickableIncrementSeconds = sinceMidnight(this._clickableIncrementDate);			var visibleIncrementSeconds = sinceMidnight(this._visibleIncrementDate);			var visibleRangeSeconds = sinceMidnight(this._visibleRangeDate);			// round reference date to previous visible increment			var time = this.value.getTime();			this._refDate = new Date(time - time % (visibleIncrementSeconds*1000));			this._refDate.setFullYear(1970,0,1); // match parse defaults			// assume clickable increment is the smallest unit			this._clickableIncrement = 1;			// divide the visible range by the clickable increment to get the number of divs to create			// example: 10:00:00/00:15:00 -> display 40 divs			this._totalIncrements = visibleRangeSeconds / clickableIncrementSeconds;			// divide the visible increments by the clickable increments to get how often to display the time inline			// example: 01:00:00/00:15:00 -> display the time every 4 divs			this._visibleIncrement = visibleIncrementSeconds / clickableIncrementSeconds;			for(var i = -(this._totalIncrements >> 1); i < (this._totalIncrements >> 1); i += this._clickableIncrement){				this.timeMenu.appendChild(this._createOption(i));			}						// TODO:			// I commented this out because it			// causes problems for a TimeTextBox in a Dialog, or as the editor of an InlineEditBox,			// because the timeMenu node isn't visible yet. -- Bill (Bug #????)			// dijit.focus(this.timeMenu);		},		postCreate:function(){			// instantiate constraints			if(this.constraints===dijit._TimePicker.prototype.constraints){				this.constraints={};			}			// brings in visibleRange, increments, etc.			dojo.mixin(this, this.constraints);			// dojo.date.locale needs the lang in the constraints as locale			if(!this.constraints.locale){				this.constraints.locale=this.lang;			}			// assign typematic mouse listeners to the arrow buttons			this.connect(this.timeMenu, dojo.isIE ? "onmousewheel" : 'DOMMouseScroll', "_mouseWheeled");			var typematic = dijit.typematic.addMouseListener;			typematic(this.upArrow,this,this._onArrowUp, 0.8, 500);			typematic(this.downArrow,this,this._onArrowDown, 0.8, 500);			//dijit.typematic.addListener(this.upArrow,this.timeMenu, {keyCode:dojo.keys.UP_ARROW,ctrlKey:false,altKey:false,shiftKey:false}, this, "_onArrowUp", 0.8, 500);			//dijit.typematic.addListener(this.downArrow, this.timeMenu, {keyCode:dojo.keys.DOWN_ARROW,ctrlKey:false,altKey:false,shiftKey:false}, this, "_onArrowDown", 0.8,500);			this.inherited(arguments);			this.setValue(this.value);		},		_createOption:function(/*Number*/ index){			// summary: creates a clickable time option			var div = dojo.doc.createElement("div");			var date = (div.date = new Date(this._refDate));			div.index = index;			var incrementDate = this._clickableIncrementDate;			date.setHours(date.getHours() + incrementDate.getHours() * index,				date.getMinutes() + incrementDate.getMinutes() * index,				date.getSeconds() + incrementDate.getSeconds() * index);			var innerDiv = dojo.doc.createElement('div');			dojo.addClass(div,this.baseClass+"Item");			dojo.addClass(innerDiv,this.baseClass+"ItemInner");			innerDiv.innerHTML = dojo.date.locale.format(date, this.constraints);							div.appendChild(innerDiv);			if(index%this._visibleIncrement<1 && index%this._visibleIncrement>-1){				dojo.addClass(div, this.baseClass+"Marker");			}else if(!(index%this._clickableIncrement)){				dojo.addClass(div, this.baseClass+"Tick");			}									if(this.isDisabledDate(date)){				// set disabled				dojo.addClass(div, this.baseClass+"ItemDisabled");			}			if(!dojo.date.compare(this.value, date, this.constraints.selector)){				div.selected = true;				dojo.addClass(div, this.baseClass+"ItemSelected");			}			return div;		},		_onOptionSelected:function(/*Object*/ tgt){			var tdate = tgt.target.date || tgt.target.parentNode.date;						if(!tdate || this.isDisabledDate(tdate)){ return; }			this.setValue(tdate);			this.onValueSelected(tdate);		},		onValueSelected:function(value){		},		onmouseover:function(/*Event*/ e){			var tgr = (e.target.parentNode === this.timeMenu) ? e.target : e.target.parentNode;						this._highlighted_option=tgr;			dojo.addClass(tgr, this.baseClass+"ItemHover");		},		onmouseout:function(/*Event*/ e){			var tgr = (e.target.parentNode === this.timeMenu) ? e.target : e.target.parentNode;			if(this._highlighted_option===tgr){							dojo.removeClass(tgr, this.baseClass+"ItemHover");			}		},		_mouseWheeled:function(/*Event*/e){			// summary: handle the mouse wheel listener			dojo.stopEvent(e);			// we're not _measuring_ the scroll amount, just direction			var scrollAmount = (dojo.isIE ? e.wheelDelta : -e.detail);			this[(scrollAmount>0 ? "_onArrowUp" : "_onArrowDown")](); // yes, we're making a new dom node every time you mousewheel, or click		},		_onArrowUp:function(){			// summary: remove the bottom time and add one to the top			var index = this.timeMenu.childNodes[0].index - 1;			var div = this._createOption(index);			this.timeMenu.removeChild(this.timeMenu.childNodes[this.timeMenu.childNodes.length - 1]);			this.timeMenu.insertBefore(div, this.timeMenu.childNodes[0]);		},		_onArrowDown:function(){			// summary: remove the top time and add one to the bottom			var index = this.timeMenu.childNodes[this.timeMenu.childNodes.length - 1].index + 1;			var div = this._createOption(index);			this.timeMenu.removeChild(this.timeMenu.childNodes[0]);			this.timeMenu.appendChild(div);		}	});}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -