Remove trunk directory
This commit is contained in:
190
wise-webapp/src/main/webapp/js/slideShow.js
Normal file
190
wise-webapp/src/main/webapp/js/slideShow.js
Normal file
@@ -0,0 +1,190 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* $Id: file 64488 2006-03-10 17:32:09Z paulo $
|
||||
*/
|
||||
|
||||
/*
|
||||
var _START_TRANSITION_TIME = 2000;
|
||||
var _WAITING_PERIOD = 2800;
|
||||
var _TRANSITION_TIME = 800;
|
||||
|
||||
slideShow = {
|
||||
init: function (options) {
|
||||
// init default options
|
||||
this.options = Object.extend({
|
||||
startTransitionTime: _START_TRANSITION_TIME,
|
||||
waitingPeriod: _WAITING_PERIOD,
|
||||
transitionTime: _TRANSITION_TIME
|
||||
}, options || {});
|
||||
this.scanScreen();
|
||||
this.img = new Element('img').injectInside(this.screen);
|
||||
|
||||
var nextEffect = this.nextEffect.bind(this);
|
||||
|
||||
this.imgEffect = this.img.effect('opacity', { duration: this.options.startTransitionTime, onComplete: nextEffect }).hide();
|
||||
this.steps = 0;
|
||||
this.nextEffect();
|
||||
|
||||
},
|
||||
scanScreen: function () {
|
||||
var el = $E('img[rel]', $(window.body));
|
||||
el.rel = el.getProperty('rel');
|
||||
el.srcs = el.getProperty('srcs');
|
||||
if (el.rel.test('^slideShow', 'i'))
|
||||
{
|
||||
var parent = el.getParent();
|
||||
el.remove();
|
||||
var aDim = el.rel.match(/[0-9.]+(px|%)/g);
|
||||
var width = "500px";
|
||||
var height = "200px";
|
||||
if (aDim && aDim[0])
|
||||
{
|
||||
var w = aDim[0].toInt();
|
||||
if (w > 0)
|
||||
width = w;
|
||||
}
|
||||
if (aDim && aDim[1])
|
||||
{
|
||||
var h = aDim[1].toInt();
|
||||
if (h > 0)
|
||||
height = h;
|
||||
}
|
||||
this.screen = new Element('div').setProperties({width:width, height:height}).injectInside(parent);
|
||||
if (el.srcs)
|
||||
this.screen.srcs = el.srcs;
|
||||
}
|
||||
},
|
||||
nextEffect: function () {
|
||||
switch (this.steps++)
|
||||
{
|
||||
case 0:
|
||||
if (this.showing)
|
||||
this.imgEffect.options.duration = this.options.transitionTime;
|
||||
var srcs = this.screen.srcs.split(',');
|
||||
if (!$defined(this.index))
|
||||
{
|
||||
this.index = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.index++;
|
||||
if (this.index >= srcs.length)
|
||||
this.index = 0;
|
||||
}
|
||||
this.img.src = srcs[this.index];
|
||||
this.showing = true;
|
||||
this.imgEffect.start(0, 1);
|
||||
break;
|
||||
case 1:
|
||||
this.nextEffect.delay(this.options.waitingPeriod, this);
|
||||
break;
|
||||
case 2:
|
||||
this.steps = 0;
|
||||
this.imgEffect.start(1, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
window.onDomReady(slideShow.init.bind(slideShow));
|
||||
*/
|
||||
var SlideShow = new Class({
|
||||
options: {
|
||||
id: 'SlideShow',
|
||||
startTransitionTime: 2000,
|
||||
waitingPeriod: 6000,
|
||||
transitionTime: 800
|
||||
},
|
||||
|
||||
initialize: function(el, options) {
|
||||
// init default options
|
||||
this.setOptions(options);
|
||||
this.container = el;
|
||||
this.buildScreen();
|
||||
|
||||
var nextEffect = this.nextEffect.bind(this);
|
||||
|
||||
this.imgEffect = this.container.effect('opacity', { duration: this.options.startTransitionTime, onComplete: nextEffect }).hide();
|
||||
this.steps = 0;
|
||||
this.nextEffect();
|
||||
|
||||
},
|
||||
buildScreen: function () {
|
||||
this.container.rel = this.container.getProperty('rel');
|
||||
this.container.srcs = this.container.getProperty('srcs');
|
||||
if (this.container.rel.test('^slideShow', 'i'))
|
||||
{
|
||||
var aDim = this.container.rel.match(/[0-9.]+(px|%)/g);
|
||||
var width = "500px";
|
||||
var height = "200px";
|
||||
if (aDim && aDim[0])
|
||||
{
|
||||
var w = aDim[0].toInt();
|
||||
if (w > 0)
|
||||
width = w;
|
||||
}
|
||||
if (aDim && aDim[1])
|
||||
{
|
||||
var h = aDim[1].toInt();
|
||||
if (h > 0)
|
||||
height = h;
|
||||
}
|
||||
this.container.setProperties({width:width, height:height});
|
||||
if (this.container.srcs)
|
||||
this.srcs = this.container.srcs.split(',');
|
||||
}
|
||||
},
|
||||
nextEffect: function () {
|
||||
switch (this.steps++)
|
||||
{
|
||||
case 0:
|
||||
if (this.showing)
|
||||
this.imgEffect.options.duration = this.options.transitionTime;
|
||||
if (!$defined(this.index))
|
||||
{
|
||||
this.index = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.index++;
|
||||
if (this.index >= this.srcs.length)
|
||||
this.index = 0;
|
||||
var firstElem = this.container.getFirst();
|
||||
firstElem.remove();
|
||||
firstElem.setStyle('display', 'none');
|
||||
firstElem.injectInside(this.slidesContainer);
|
||||
}
|
||||
|
||||
var nextElem = $(this.srcs[this.index]);
|
||||
if (!$defined(this.slidesContainer))
|
||||
this.slidesContainer = nextElem.getParent();
|
||||
nextElem.injectInside(this.container);
|
||||
nextElem.setStyle('display', 'block');
|
||||
this.showing = true;
|
||||
this.imgEffect.start(0, 1);
|
||||
break;
|
||||
case 1:
|
||||
this.nextEffect.delay(this.options.waitingPeriod, this);
|
||||
break;
|
||||
case 2:
|
||||
this.steps = 0;
|
||||
this.imgEffect.start(1, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
SlideShow.implement(new Options);
|
Reference in New Issue
Block a user