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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? carousel.js

?? 由ajax實現的圖片走馬燈效果的純jsp.
?? JS
字號:
// Copyright (c) 2006 Sébastien Gruhier (http://xilinus.com, http://itseb.com)// // Permission is hereby granted, free of charge, to any person obtaining// a copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to// permit persons to whom the Software is furnished to do so, subject to// the following conditions:// // The above copyright notice and this permission notice shall be// included in all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.//// VERSION 0.26var Carousel = Class.create();Carousel.prototype = {  // Constructor  initialize: function(carouselElemID) {    this.carouselElemID = carouselElemID;        this.options = Object.extend({      numVisible:           4,      scrollInc:            3,      animParameters:      {},      buttonStateHandler:  null,      animHandler:         null,      ajaxHandler:         null,      initDoneHandler:     null,      queue:               "carousel",      size:                0,      prevElementID:       "prev-arrow",      nextElementID:       "next-arrow",      ajaxParameters:      null,      url:                 null		}, arguments[1] || {});		this.initDone = false;		this.animRunning = "none";    this.requestIsRunning = false;    		// add afterFinish options to animParameters (store old function)		this.animAfterFinish = this.options.animParameters.afterFinish;		Object.extend(this.options.animParameters, {afterFinish:  this._animDone.bind(this), queue: { position:'end', scope: this.options.queue }});	  		// Event bindings		this.prevScroll = this._prevScroll.bindAsEventListener(this);		this.nextScroll = this._nextScroll.bindAsEventListener(this);		this.onComplete = this._onComplete.bindAsEventListener(this);		this.onFailure  = this._onFailure.bindAsEventListener(this);		Event.observe(this.options.prevElementID, "click", this.prevScroll);		Event.observe(this.options.nextElementID, "click", this.nextScroll);				// Get DOM UL element		var carouselListClass = "carousel-list";		this.carouselList = document.getElementsByClassName(carouselListClass, $(carouselElemID))[0]		this.options.size =  $(this.carouselList.getElementsByTagName("li")).length;		// Init data		this._init();  },    // Destructor 	destroy: function() {  	Event.stopObserving(this.options.prevElementID, "click", this.prevScroll);  	Event.stopObserving(this.options.nextElementID, "click", this.nextScroll);	},		scrollTo: function(newStart) {		var old_inc = this.options.scrollInc;		this.ignoreNoMoreImages = true;		if(newStart > this.currentIndex) {			this.options.scrollInc = newStart - this.currentIndex;			this._nextScroll(this);		} else {			this.options.scrollInc = this.currentIndex - newStart;			this._prevScroll(this);		}    this.options.scrollInc = old_inc;	},	  /* "Private" functions */  _init: function() {    this.currentIndex = 0;          // Ajax content    if (this.options.url)  	  this._request(this.currentIndex, this.options.numVisible);	  // Static content  	else {  	  this._getLiElementSize();  		this._updateButtonStateHandler(this.options.prevElementID, false);  		this._updateButtonStateHandler(this.options.nextElementID, this.options.size > this.options.numVisible);  	}  },    _prevScroll: function(event) {    if (this.animRunning != "none" || this.currentIndex == 0)      return;    var inc = this.options.scrollInc;    if (this.currentIndex - inc < 0)      inc = this.currentIndex;    this._scroll(inc)		  	  return false;  },    _nextScroll: function(event) {        if (this.animRunning != "none")      return false;                // Check if there are enough elements in cache    if (this.currentIndex + this.options.numVisible + this.options.scrollInc <= this.options.size)       this._scroll(-this.options.scrollInc);    else {      // Compute how many are in the cache      this.nbInCache = this.options.size - (this.currentIndex + this.options.numVisible);      if (this.options.url && this.noMoreImages == false) 		    this._request(this.currentIndex + this.options.numVisible + this.nbInCache, this.options.scrollInc - this.nbInCache);	    else  {	      if (this.nbInCache > 0)          this._scroll(-this.nbInCache);        }	  }	  return false;  },    _request: function(start, nb) {    if (this.options.url && ! this.requestIsRunning) {      this.requestIsRunning = true;            if (this.options.ajaxHandler)        this.options.ajaxHandler(this, "before");            var params = "start=" + start + "&nb=" + nb;      if (this.options.ajaxParameters != null)        params += "&" + this.options.ajaxParameters        		new Ajax.Request(this.options.url, {parameters: params, onComplete: this.onComplete, onFailure: this.onFailure});		}  },    _onComplete: function(originalRequest){    this.requestIsRunning = false;    this.carouselList.innerHTML += originalRequest.responseText;    // Compute how many new elements we have    var size = this.options.size;    this.options.size = this.carouselList.getElementsByTagName("li").length;    var inc = this.options.size - size;    		// First run, compute li size		if (this.initDone == false) {  		this._getLiElementSize()  		this.currentIndex = 0;  		this.initDone = true;      if (this.options.initDoneHandler)         this.options.initDoneHandler(this);           		// Update button states		  this._updateButtonStateHandler(this.options.prevElementID, false);		  this._updateButtonStateHandler(this.options.nextElementID, this.options.size == this.options.numVisible);		  this.noMoreImages = this.options.size < this.options.numVisible		}		// Add images		else {		  if (!this.ignoreNoMoreImages)		    this.noMoreImages = inc != this.options.scrollInc;		  else		    this.ignoreNoMoreImages = false;		  // Add images		  if (inc > 0) {        this._scroll(-inc, this.noMoreImages)      }      // No more images, disable next button		  else {		    if (this.nbInCache >0)          this._scroll(-this.nbInCache, true);		    		    this._updateButtonStateHandler(this.options.nextElementID, false);	    }		}		if (this.options.ajaxHandler)      this.options.ajaxHandler(this, "after");  },    _onFailure: function(originalRequest){        this.requestIsRunning = false;  },  _animDone: function(event){       if (this.options.animHandler)      this.options.animHandler(this.carouselElemID, "after", this.animRunning);         this.animRunning = "none";    // Call animAfterFinish if exists    if (this.animAfterFinish)      this.animAfterFinish(event);  },    _updateButtonStateHandler: function(button, state) {		if (this.options.buttonStateHandler) 		    this.options.buttonStateHandler(button, state)   },    _scroll: function(delta, forceDisableNext) {          this.animRunning = delta > 0 ? "prev" : "next";        if (this.options.animHandler)      this.options.animHandler(this.carouselElemID, "before", this.animRunning);    new Effect.MoveBy(this.carouselList, 0, delta * this.elementSize, this.options.animParameters);    this.currentIndex -= delta;    this._updateButtonStateHandler(this.options.prevElementID, this.currentIndex != 0);        if (this.options.url && this.noMoreImages == false)      enable = true;    else      enable = (this.currentIndex + this.options.numVisible < this.options.size);    this._updateButtonStateHandler(this.options.nextElementID, (forceDisableNext ? false : enable));  },    _getLiElementSize: function() {    var li = $(this.carouselList.getElementsByTagName("li")[0]);		this.elementSize = li.getDimensions().width + parseFloat(li.getStyle("margin-left")) + parseFloat(li.getStyle("margin-right"));  }}	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本色道久久综合精品竹菊| 99久久婷婷国产| 国产sm精品调教视频网站| 91麻豆蜜桃一区二区三区| 91麻豆精品国产91久久久使用方法| 精品嫩草影院久久| 亚洲欧美日韩人成在线播放| 免费不卡在线视频| 色狠狠色噜噜噜综合网| 久久久久久久久久久久久女国产乱 | 国内精品免费在线观看| 色婷婷综合久色| 亚洲精品一区二区三区精华液| 一区av在线播放| 成人av资源在线| 欧美不卡激情三级在线观看| 亚洲午夜久久久久久久久电影网| 国产91精品露脸国语对白| 欧美成人综合网站| 五月综合激情日本mⅴ| 色先锋aa成人| 亚洲精品免费在线观看| 成人教育av在线| 国产精品美女久久久久高潮| 精品一区二区三区在线视频| 884aa四虎影成人精品一区| 亚洲黄色小说网站| 97se狠狠狠综合亚洲狠狠| 久久综合网色—综合色88| 日日夜夜精品视频免费| 欧美日韩免费在线视频| 一区二区三国产精华液| 一区二区三区日韩在线观看| 精品精品国产高清一毛片一天堂| 91免费视频大全| 国产精品欧美久久久久一区二区| 国产在线精品一区二区不卡了 | 99re6这里只有精品视频在线观看| 久久精品人人做人人综合| 精品亚洲免费视频| 精品国产91乱码一区二区三区| 人禽交欧美网站| 日韩美女一区二区三区四区| 日本不卡视频在线观看| 日韩一卡二卡三卡四卡| 美女一区二区三区| 精品国产百合女同互慰| 精品亚洲成a人| 日本一区二区三区四区在线视频| 国产成人精品aa毛片| 国产精品入口麻豆九色| 色偷偷久久人人79超碰人人澡| 亚洲超碰97人人做人人爱| 日韩欧美色综合| 成人美女视频在线观看18| 亚洲欧美激情插| 欧美一区三区二区| 国产91对白在线观看九色| 日韩理论在线观看| 这里是久久伊人| 国产丶欧美丶日本不卡视频| 亚洲少妇中出一区| 欧美一卡2卡三卡4卡5免费| 国产成人综合在线| 亚洲一区二区欧美| 欧美精品一区二区三| 欧美一级高清大全免费观看| 久久99久久久久| 欧美日韩国产高清一区| 日韩精品一区第一页| 91精品福利在线一区二区三区| 亚洲444eee在线观看| 91精品国产入口| av网站一区二区三区| 亚洲视频一区在线| 91精品免费在线观看| 精品亚洲porn| 亚洲婷婷在线视频| 在线观看免费一区| 国产精品538一区二区在线| 国产精品久久久久影视| 在线亚洲一区观看| 精品一区二区三区免费视频| 欧美激情一区二区三区在线| 91激情五月电影| 美女网站色91| 日韩码欧中文字| 91精品国产综合久久久蜜臀粉嫩| 国产a级毛片一区| 久久伊99综合婷婷久久伊| 图片区小说区国产精品视频| 2021国产精品久久精品| 91色婷婷久久久久合中文| 日韩精品福利网| 国产精品免费视频观看| 日韩一区二区精品在线观看| 成人精品视频一区| 日本视频中文字幕一区二区三区| 国产精品美女久久久久av爽李琼| 欧美日韩另类国产亚洲欧美一级| 韩国成人精品a∨在线观看| 亚洲欧美另类久久久精品| 精品电影一区二区三区| 欧美丝袜第三区| 成人在线综合网| 精品一区二区久久久| 亚洲午夜影视影院在线观看| 亚洲国产成人自拍| 日韩欧美视频在线| 欧美精品一级二级| 色综合久久88色综合天天免费| 老司机免费视频一区二区| 亚洲你懂的在线视频| 久久精子c满五个校花| 欧美伊人精品成人久久综合97| 6080日韩午夜伦伦午夜伦| 91女人视频在线观看| 国产成人免费视| 国产一区二区久久| 国产一区 二区| 另类成人小视频在线| 水蜜桃久久夜色精品一区的特点| 国产精品国产三级国产aⅴ中文| 欧美一区二区三级| 欧美人与性动xxxx| 欧美网站大全在线观看| 欧美高清视频在线高清观看mv色露露十八 | 亚洲精品成人精品456| 国产精品久久久久一区二区三区共| 91精品国产综合久久久蜜臀粉嫩| 91精品国产aⅴ一区二区| 欧美日韩久久久一区| 欧美午夜电影一区| 欧美性受极品xxxx喷水| 国产一区二区91| aaa欧美大片| 97久久精品人人做人人爽| 不卡的电视剧免费网站有什么| 国产成人啪免费观看软件| 国产成人av影院| 久久99精品久久久| av不卡一区二区三区| 91尤物视频在线观看| 91社区在线播放| 韩日av一区二区| www.成人在线| 欧美tk—视频vk| 欧美精品自拍偷拍| 日韩欧美国产wwwww| 26uuu久久综合| 欧美国产国产综合| 亚洲欧美日韩中文字幕一区二区三区| 亚洲三级小视频| 午夜一区二区三区视频| 午夜国产精品影院在线观看| 国产精选一区二区三区| www.日韩精品| 欧美挠脚心视频网站| 欧美成人一区二区三区片免费| 久久久久久久久久久久久夜| 国产精品美女久久久久高潮| 日韩在线播放一区二区| 国模娜娜一区二区三区| 成人av电影在线| 欧美日韩你懂得| 久久精品亚洲乱码伦伦中文 | 国产一区免费电影| 成人网页在线观看| 欧美一级二级在线观看| 国产精品精品国产色婷婷| 亚洲国产精品久久久久婷婷884| 久久精品国产网站| av午夜一区麻豆| 日韩一级免费观看| 一区二区成人在线观看| 精彩视频一区二区三区| 91丝袜高跟美女视频| 69av一区二区三区| 中文字幕在线视频一区| 午夜视频久久久久久| 91啪在线观看| 亚洲精品在线观| 午夜精品久久久久久久久久| 成人免费视频一区| 制服丝袜亚洲播放| 亚洲福利视频导航| 东方aⅴ免费观看久久av| 欧美高清你懂得| 亚洲欧洲综合另类在线| 国产一区二区三区在线看麻豆 | 一个色在线综合| 97se亚洲国产综合自在线观| 日韩女优电影在线观看| 一区二区三区在线免费播放| 国产原创一区二区三区| 欧美男男青年gay1069videost| 国产精品成人在线观看| 国产不卡视频一区| xnxx国产精品| 免费欧美在线视频|