亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? scroller.js

?? ajax框架原嗎,dojo目前很流行的,希望大家多多學(xué)習(xí)啊
?? JS
字號:
if(!dojo._hasResource['dojox.grid._grid.scroller']){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource['dojox.grid._grid.scroller'] = true;dojo.provide('dojox.grid._grid.scroller');dojo.declare('dojox.grid.scroller.base', null, {	// summary:	//	virtual scrollbox, abstract class	//	Content must in /rows/	//	Rows are managed in contiguous sets called /pages/	//	There are a fixed # of rows per page	//	The minimum rendered unit is a page	constructor: function(){		this.pageHeights = [];		this.stack = [];	},	// specified	rowCount: 0, // total number of rows to manage	defaultRowHeight: 10, // default height of a row	keepRows: 100, // maximum number of rows that should exist at one time	contentNode: null, // node to contain pages	scrollboxNode: null, // node that controls scrolling	// calculated	defaultPageHeight: 0, // default height of a page	keepPages: 10, // maximum number of pages that should exists at one time	pageCount: 0,	windowHeight: 0,	firstVisibleRow: 0,	lastVisibleRow: 0,	// private	page: 0,	pageTop: 0,	// init	init: function(inRowCount, inKeepRows, inRowsPerPage){		switch(arguments.length){			case 3: this.rowsPerPage = inRowsPerPage;			case 2: this.keepRows = inKeepRows;			case 1: this.rowCount = inRowCount;		}		this.defaultPageHeight = this.defaultRowHeight * this.rowsPerPage;		//this.defaultPageHeight = this.defaultRowHeight * Math.min(this.rowsPerPage, this.rowCount);		this.pageCount = Math.ceil(this.rowCount / this.rowsPerPage);		this.keepPages = Math.max(Math.ceil(this.keepRows / this.rowsPerPage), 2);		this.invalidate();		if(this.scrollboxNode){			this.scrollboxNode.scrollTop = 0;			this.scroll(0);			this.scrollboxNode.onscroll = dojo.hitch(this, 'onscroll');		}	},	// updating	invalidate: function(){		this.invalidateNodes();		this.pageHeights = [];		this.height = (this.pageCount ? (this.pageCount - 1)* this.defaultPageHeight + this.calcLastPageHeight() : 0);		this.resize();	},	updateRowCount: function(inRowCount){		this.invalidateNodes();		this.rowCount = inRowCount;		// update page count, adjust document height		oldPageCount = this.pageCount;		this.pageCount = Math.ceil(this.rowCount / this.rowsPerPage);		if(this.pageCount < oldPageCount){			for(var i=oldPageCount-1; i>=this.pageCount; i--){				this.height -= this.getPageHeight(i);				delete this.pageHeights[i]			}		}else if(this.pageCount > oldPageCount){			this.height += this.defaultPageHeight * (this.pageCount - oldPageCount - 1) + this.calcLastPageHeight();		}		this.resize();	},	// abstract interface	pageExists: function(inPageIndex){	},	measurePage: function(inPageIndex){	},	positionPage: function(inPageIndex, inPos){	},	repositionPages: function(inPageIndex){	},	installPage: function(inPageIndex){	},	preparePage: function(inPageIndex, inPos, inReuseNode){	},	renderPage: function(inPageIndex){	},	removePage: function(inPageIndex){	},	pacify: function(inShouldPacify){	},	// pacification	pacifying: false,	pacifyTicks: 200,	setPacifying: function(inPacifying){		if(this.pacifying != inPacifying){			this.pacifying = inPacifying;			this.pacify(this.pacifying);		}	},	startPacify: function(){		this.startPacifyTicks = new Date().getTime();	},	doPacify: function(){		var result = (new Date().getTime() - this.startPacifyTicks) > this.pacifyTicks;		this.setPacifying(true);		this.startPacify();		return result;	},	endPacify: function(){		this.setPacifying(false);	},	// default sizing implementation	resize: function(){		if(this.scrollboxNode){			this.windowHeight = this.scrollboxNode.clientHeight;		}		dojox.grid.setStyleHeightPx(this.contentNode, this.height);	},	calcLastPageHeight: function(){		if(!this.pageCount){			return 0;		}		var lastPage = this.pageCount - 1;		var lastPageHeight = ((this.rowCount % this.rowsPerPage)||(this.rowsPerPage)) * this.defaultRowHeight;		this.pageHeights[lastPage] = lastPageHeight;		return lastPageHeight;	},	updateContentHeight: function(inDh){		this.height += inDh;		this.resize();	},	updatePageHeight: function(inPageIndex){		if(this.pageExists(inPageIndex)){			var oh = this.getPageHeight(inPageIndex);			var h = (this.measurePage(inPageIndex))||(oh);			this.pageHeights[inPageIndex] = h;			if((h)&&(oh != h)){				this.updateContentHeight(h - oh)				this.repositionPages(inPageIndex);			}		}	},	rowHeightChanged: function(inRowIndex){		this.updatePageHeight(Math.floor(inRowIndex / this.rowsPerPage));	},	// scroller core	invalidateNodes: function(){		while(this.stack.length){			this.destroyPage(this.popPage());		}	},	createPageNode: function(){		var p = document.createElement('div');		p.style.position = 'absolute';		//p.style.width = '100%';		p.style.left = '0';		return p;	},	getPageHeight: function(inPageIndex){		var ph = this.pageHeights[inPageIndex];		return (ph !== undefined ? ph : this.defaultPageHeight);	},	// FIXME: this is not a stack, it's a FIFO list	pushPage: function(inPageIndex){		return this.stack.push(inPageIndex);	},	popPage: function(){		return this.stack.shift();	},	findPage: function(inTop){		var i = 0, h = 0;		for(var ph = 0; i<this.pageCount; i++, h += ph){			ph = this.getPageHeight(i);			if(h + ph >= inTop){				break;			}		}		this.page = i;		this.pageTop = h;	},	buildPage: function(inPageIndex, inReuseNode, inPos){		this.preparePage(inPageIndex, inReuseNode);		this.positionPage(inPageIndex, inPos);		// order of operations is key below		this.installPage(inPageIndex);		this.renderPage(inPageIndex);		// order of operations is key above		this.pushPage(inPageIndex);	},	needPage: function(inPageIndex, inPos){		var h = this.getPageHeight(inPageIndex), oh = h;		if(!this.pageExists(inPageIndex)){			this.buildPage(inPageIndex, (this.keepPages)&&(this.stack.length >= this.keepPages), inPos);			h = this.measurePage(inPageIndex) || h;			this.pageHeights[inPageIndex] = h;			if(h && (oh != h)){				this.updateContentHeight(h - oh)			}		}else{			this.positionPage(inPageIndex, inPos);		}		return h;	},	onscroll: function(){		this.scroll(this.scrollboxNode.scrollTop);	},	scroll: function(inTop){		this.startPacify();		this.findPage(inTop);		var h = this.height;		var b = this.getScrollBottom(inTop);		for(var p=this.page, y=this.pageTop; (p<this.pageCount)&&((b<0)||(y<b)); p++){			y += this.needPage(p, y);		}		this.firstVisibleRow = this.getFirstVisibleRow(this.page, this.pageTop, inTop);		this.lastVisibleRow = this.getLastVisibleRow(p - 1, y, b);		// indicates some page size has been updated		if(h != this.height){			this.repositionPages(p-1);		}		this.endPacify();	},	getScrollBottom: function(inTop){		return (this.windowHeight >= 0 ? inTop + this.windowHeight : -1);	},	// events	processNodeEvent: function(e, inNode){		var t = e.target;		while(t && (t != inNode) && t.parentNode && (t.parentNode.parentNode != inNode)){			t = t.parentNode;		}		if(!t || !t.parentNode || (t.parentNode.parentNode != inNode)){			return false;		}		var page = t.parentNode;		e.topRowIndex = page.pageIndex * this.rowsPerPage;		e.rowIndex = e.topRowIndex + dojox.grid.indexInParent(t);		e.rowTarget = t;		return true;	},	processEvent: function(e){		return this.processNodeEvent(e, this.contentNode);	},	dummy: 0});dojo.declare('dojox.grid.scroller', dojox.grid.scroller.base, {	// summary:	//	virtual scroller class, makes no assumption about shape of items being scrolled	constructor: function(){		this.pageNodes = [];	},	// virtual rendering interface	renderRow: function(inRowIndex, inPageNode){	},	removeRow: function(inRowIndex){	},	// page node operations	getDefaultNodes: function(){		return this.pageNodes;	},	getDefaultPageNode: function(inPageIndex){		return this.getDefaultNodes()[inPageIndex];	},	positionPageNode: function(inNode, inPos){		inNode.style.top = inPos + 'px';	},	getPageNodePosition: function(inNode){		return inNode.offsetTop;	},	repositionPageNodes: function(inPageIndex, inNodes){		var last = 0;		for(var i=0; i<this.stack.length; i++){			last = Math.max(this.stack[i], last);		}		//		var n = inNodes[inPageIndex];		var y = (n ? this.getPageNodePosition(n) + this.getPageHeight(inPageIndex) : 0);		//console.log('detected height change, repositioning from #%d (%d) @ %d ', inPageIndex + 1, last, y, this.pageHeights[0]);		//		for(var p=inPageIndex+1; p<=last; p++){			n = inNodes[p];			if(n){				//console.log('#%d @ %d', inPageIndex, y, this.getPageNodePosition(n));				if(this.getPageNodePosition(n) == y){					return;				}				//console.log('placing page %d at %d', p, y);				this.positionPage(p, y);			}			y += this.getPageHeight(p);		}	},	invalidatePageNode: function(inPageIndex, inNodes){		var p = inNodes[inPageIndex];		if(p){			delete inNodes[inPageIndex];			this.removePage(inPageIndex, p);			dojox.grid.cleanNode(p);			p.innerHTML = '';		}		return p;	},	preparePageNode: function(inPageIndex, inReusePageIndex, inNodes){		var p = (inReusePageIndex === null ? this.createPageNode() : this.invalidatePageNode(inReusePageIndex, inNodes));		p.pageIndex = inPageIndex;		p.id = 'page-' + inPageIndex;		inNodes[inPageIndex] = p;	},	// implementation for page manager	pageExists: function(inPageIndex){		return Boolean(this.getDefaultPageNode(inPageIndex));	},	measurePage: function(inPageIndex){		return this.getDefaultPageNode(inPageIndex).offsetHeight;	},	positionPage: function(inPageIndex, inPos){		this.positionPageNode(this.getDefaultPageNode(inPageIndex), inPos);	},	repositionPages: function(inPageIndex){		this.repositionPageNodes(inPageIndex, this.getDefaultNodes());	},	preparePage: function(inPageIndex, inReuseNode){		this.preparePageNode(inPageIndex, (inReuseNode ? this.popPage() : null), this.getDefaultNodes());	},	installPage: function(inPageIndex){		this.contentNode.appendChild(this.getDefaultPageNode(inPageIndex));	},	destroyPage: function(inPageIndex){		var p = this.invalidatePageNode(inPageIndex, this.getDefaultNodes());		dojox.grid.removeNode(p);	},	// rendering implementation	renderPage: function(inPageIndex){		var node = this.pageNodes[inPageIndex];		for(var i=0, j=inPageIndex*this.rowsPerPage; (i<this.rowsPerPage)&&(j<this.rowCount); i++, j++){			this.renderRow(j, node);		}	},	removePage: function(inPageIndex){		for(var i=0, j=inPageIndex*this.rowsPerPage; i<this.rowsPerPage; i++, j++){			this.removeRow(j);		}	},	// scroll control	getPageRow: function(inPage){		return inPage * this.rowsPerPage;	},	getLastPageRow: function(inPage){		return Math.min(this.rowCount, this.getPageRow(inPage + 1)) - 1;	},	getFirstVisibleRowNodes: function(inPage, inPageTop, inScrollTop, inNodes){		var row = this.getPageRow(inPage);		var rows = dojox.grid.divkids(inNodes[inPage]);		for(var i=0,l=rows.length; i<l && inPageTop<inScrollTop; i++, row++){			inPageTop += rows[i].offsetHeight;		}		return (row ? row - 1 : row);	},	getFirstVisibleRow: function(inPage, inPageTop, inScrollTop){		if(!this.pageExists(inPage)){			return 0;		}		return this.getFirstVisibleRowNodes(inPage, inPageTop, inScrollTop, this.getDefaultNodes());	},	getLastVisibleRowNodes: function(inPage, inBottom, inScrollBottom, inNodes){		var row = this.getLastPageRow(inPage);		var rows = dojox.grid.divkids(inNodes[inPage]);		for(var i=rows.length-1; i>=0 && inBottom>inScrollBottom; i--, row--){			inBottom -= rows[i].offsetHeight;		}		return row + 1;	},	getLastVisibleRow: function(inPage, inBottom, inScrollBottom){		if(!this.pageExists(inPage)){			return 0;		}		return this.getLastVisibleRowNodes(inPage, inBottom, inScrollBottom, this.getDefaultNodes());	},	findTopRowForNodes: function(inScrollTop, inNodes){		var rows = dojox.grid.divkids(inNodes[this.page]);		for(var i=0,l=rows.length,t=this.pageTop,h; i<l; i++){			h = rows[i].offsetHeight;			t += h;			if(t >= inScrollTop){				this.offset = h - (t - inScrollTop);				return i + this.page * this.rowsPerPage;			}		}		return -1;	},	findScrollTopForNodes: function(inRow, inNodes){		var rowPage = Math.floor(inRow / this.rowsPerPage);		var t = 0;		for(var i=0; i<rowPage; i++){			t += this.getPageHeight(i);		}		this.pageTop = t;		this.needPage(rowPage, this.pageTop);		var rows = dojox.grid.divkids(inNodes[rowPage]);		var r = inRow - this.rowsPerPage * rowPage;		for(var i=0,l=rows.length; i<l && i<r; i++){			t += rows[i].offsetHeight;		}		return t;	},	findTopRow: function(inScrollTop){		return this.findTopRowForNodes(inScrollTop, this.getDefaultNodes());	},	findScrollTop: function(inRow){		return this.findScrollTopForNodes(inRow, this.getDefaultNodes());	},	dummy: 0});dojo.declare('dojox.grid.scroller.columns', dojox.grid.scroller, {	// summary:	//	Virtual scroller class that scrolls list of columns. Owned by grid and used internally	//	for virtual scrolling.	constructor: function(inContentNodes){		this.setContentNodes(inContentNodes);	},	// nodes	setContentNodes: function(inNodes){		this.contentNodes = inNodes;		this.colCount = (this.contentNodes ? this.contentNodes.length : 0);		this.pageNodes = [];		for(var i=0; i<this.colCount; i++){			this.pageNodes[i] = [];		}	},	getDefaultNodes: function(){		return this.pageNodes[0] || [];	},	scroll: function(inTop) {		if(this.colCount){			dojox.grid.scroller.prototype.scroll.call(this, inTop);		}	},	// resize	resize: function(){		if(this.scrollboxNode){			this.windowHeight = this.scrollboxNode.clientHeight;		}		for(var i=0; i<this.colCount; i++){			dojox.grid.setStyleHeightPx(this.contentNodes[i], this.height);		}	},	// implementation for page manager	positionPage: function(inPageIndex, inPos){		for(var i=0; i<this.colCount; i++){			this.positionPageNode(this.pageNodes[i][inPageIndex], inPos);		}	},	preparePage: function(inPageIndex, inReuseNode){		var p = (inReuseNode ? this.popPage() : null);		for(var i=0; i<this.colCount; i++){			this.preparePageNode(inPageIndex, p, this.pageNodes[i]);		}	},	installPage: function(inPageIndex){		for(var i=0; i<this.colCount; i++){			this.contentNodes[i].appendChild(this.pageNodes[i][inPageIndex]);		}	},	destroyPage: function(inPageIndex){		for(var i=0; i<this.colCount; i++){			dojox.grid.removeNode(this.invalidatePageNode(inPageIndex, this.pageNodes[i]));		}	},	// rendering implementation	renderPage: function(inPageIndex){		var nodes = [];		for(var i=0; i<this.colCount; i++){			nodes[i] = this.pageNodes[i][inPageIndex];		}		//this.renderRows(inPageIndex*this.rowsPerPage, this.rowsPerPage, nodes);		for(var i=0, j=inPageIndex*this.rowsPerPage; (i<this.rowsPerPage)&&(j<this.rowCount); i++, j++){			this.renderRow(j, nodes);		}	}});}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品资源二区在线| 欧美日韩一区二区三区四区五区| 国产喷白浆一区二区三区| 成人黄色777网| 亚洲一线二线三线视频| 5566中文字幕一区二区电影| 国产一区二区按摩在线观看| 久久久精品蜜桃| 色噜噜狠狠色综合欧洲selulu| 日本欧美韩国一区三区| 日本一区二区在线不卡| 欧美日韩黄色影视| 国产成人免费视| 亚洲成a人片在线不卡一二三区| 欧美mv和日韩mv的网站| 99精品1区2区| 久久机这里只有精品| 国产精品国产成人国产三级 | 成人黄色a**站在线观看| 一区二区三区久久久| 欧美精品 国产精品| 国产91精品一区二区麻豆亚洲| 亚洲成人综合视频| 精品国产一区二区三区四区四| 91亚洲精品久久久蜜桃网站 | 粉嫩av一区二区三区| 自拍偷拍亚洲综合| 精品美女在线播放| 欧美在线高清视频| 国产91清纯白嫩初高中在线观看 | 日本中文字幕不卡| 国产精品毛片久久久久久| 欧美一级片在线看| 在线看不卡av| 成人动漫av在线| 精品一区二区成人精品| 一区二区三区视频在线看| 国产婷婷一区二区| 日韩欧美第一区| 在线不卡一区二区| 欧美亚洲国产一区二区三区| 国产在线视频不卡二| 无吗不卡中文字幕| 亚洲一区在线观看免费| 17c精品麻豆一区二区免费| 国产欧美日韩综合| 久久久久久久久免费| 欧美一级黄色片| 欧美日韩激情一区二区三区| 欧洲激情一区二区| 色系网站成人免费| 色综合色综合色综合| 91在线观看成人| 成人激情电影免费在线观看| 国产精品一区二区三区乱码| 国内精品自线一区二区三区视频| 国产精品久久久久久久久久久免费看| 久久综合色婷婷| 精品久久久网站| 日韩一区二区三区电影在线观看| 在线观看亚洲专区| 欧美日韩成人一区二区| 日韩三级.com| 国产女同性恋一区二区| 亚洲精品国产a| 性做久久久久久免费观看欧美| 日本欧美加勒比视频| 国产一区91精品张津瑜| 99久久婷婷国产综合精品电影| 色婷婷av一区| 欧美福利电影网| 久久久噜噜噜久久中文字幕色伊伊| 国产欧美视频一区二区| 亚洲免费资源在线播放| 日本91福利区| 波多野结衣中文一区| 欧美日韩免费高清一区色橹橹 | 亚洲国产日韩在线一区模特| 免费在线视频一区| 成人永久免费视频| 欧美日韩在线免费视频| 久久综合色综合88| 亚洲午夜电影在线观看| 激情综合色播激情啊| 99精品久久久久久| 日韩精品一区二区在线| 亚洲天堂福利av| 精品一区二区综合| 99久久久久久| 日韩精品最新网址| 亚洲影视在线播放| 国产成a人无v码亚洲福利| 欧美视频一区二区三区在线观看| 久久影院电视剧免费观看| 一区二区三区日韩| 国产**成人网毛片九色| 在线电影院国产精品| 日韩理论电影院| 狠狠色丁香久久婷婷综合丁香| 91精彩视频在线观看| 日本一区二区三区国色天香| 午夜精品在线看| 99免费精品视频| 欧美变态凌虐bdsm| 亚洲国产美女搞黄色| 成人精品gif动图一区| 日韩欧美精品三级| 亚洲妇熟xx妇色黄| 成年人国产精品| 精品国产精品一区二区夜夜嗨 | 国产精品一区二区在线观看网站| 欧美伦理电影网| 亚洲精品一二三| 国产精品主播直播| 欧美电视剧在线观看完整版| 亚洲综合一区二区精品导航| 粉嫩av一区二区三区在线播放| 日韩免费看网站| 天天综合色天天综合色h| 日本久久精品电影| 中文字幕字幕中文在线中不卡视频| 国产精品主播直播| 久久影音资源网| 韩国女主播一区二区三区| 欧美一区二区三区色| 三级欧美在线一区| 欧美日韩一区二区三区高清| 亚洲日本在线观看| 97精品久久久久中文字幕| 国产色一区二区| 国产99久久久国产精品潘金网站| 久久伊人中文字幕| 久久精品国产精品亚洲综合| 日韩欧美中文字幕制服| 日本成人在线不卡视频| 91精品婷婷国产综合久久| 午夜国产精品一区| 9191久久久久久久久久久| 亚洲成人先锋电影| 69成人精品免费视频| 天天影视涩香欲综合网| 制服丝袜中文字幕一区| 日韩成人伦理电影在线观看| 欧美精品免费视频| 麻豆国产精品一区二区三区| 日韩欧美123| 国产精品99久久久久| 欧美激情在线免费观看| av不卡免费电影| 亚洲欧美区自拍先锋| 在线观看免费视频综合| 亚洲国产中文字幕| 3d动漫精品啪啪| 韩国成人福利片在线播放| 久久综合久久鬼色中文字| 国产精品一二一区| 国产精品国产三级国产a| 97成人超碰视| 一区二区三区精品| 88在线观看91蜜桃国自产| 韩国欧美国产一区| 亚洲欧洲av一区二区三区久久| 在线精品亚洲一区二区不卡| 日韩制服丝袜av| 欧美精品一区二区不卡| 成人黄色av网站在线| 亚洲综合精品自拍| 日韩精品专区在线影院观看| 成人va在线观看| 一区二区三区日韩精品视频| 日韩一级黄色片| 成人高清免费观看| 午夜精品一区二区三区电影天堂| 亚洲精品一区二区三区在线观看| 成人午夜看片网址| 亚洲第一福利一区| 久久精品亚洲乱码伦伦中文| 91猫先生在线| 美女国产一区二区三区| 国产精品久久久久永久免费观看 | 一级特黄大欧美久久久| 91精品国产高清一区二区三区 | 日产国产欧美视频一区精品| 国产人成亚洲第一网站在线播放| 欧美最新大片在线看| 国产一区二区三区不卡在线观看| 伊人色综合久久天天人手人婷| 日韩欧美黄色影院| 一本大道综合伊人精品热热| 久久成人麻豆午夜电影| 亚洲一区二区三区影院| 国产亚洲美州欧州综合国| 欧美日韩免费电影| 99视频精品在线| 久久99热狠狠色一区二区| 亚洲精选视频免费看| 久久日韩粉嫩一区二区三区| 欧美午夜片在线观看| 岛国精品在线观看| 美女视频黄a大片欧美|