salve a tutti
vorrei chiedere una cortesia.
premesso che non ne capisco troppo di javascript, ho un problemino.
stpo usando un modulo joomla per il mio sito internet, che dopo un po di tempo di inutilizzo fa partire uno screensaver.
il problema è :
le immagini non sono fisse e centrate, si muovono per la pagina e spesso escono dallo schermo!!!
codice:
/**
* @version $Id: modscreensave.js 0.2.0 2008-11-30 21:18:41 ~0 $
* @package ScreenSave
* @license GPLv3
* @copyright Marko Zabreznik
*/
var ScreenSave = new Class({
options: {
imgUrls: [],
path: '/images/screensave/',
wait: 10000,
delay: 5000,
opacity: 0.7,
preload: 0
},
initialize: function(op){
this.setOptions(op);
this.imgNr = 0;
this.imgMx = 0;
this.options.imgUrls.each(function (e){
this.imgList.include(this.options.path+e);
this.imgMx++;
if (this.options.preload) new Element('img',{'src':this.options.path+e});
}.bind(this));
this.overlay=new Element('div',{'class': 'screensave', 'id': 'screensave'});
this.image = new Element('img',{'class': 'screensaveImg', 'id': 'screensaveImg'});
this.overlay.adopt(this.image);
$(document.body).adopt(this.overlay);
this.overlay.style.display = 'none';
this.createCSSRule('#screensave', {
'height' : getScrollHeight()+'px',
'-moz-opacity':this.options.opacity,
'filter': 'alpha(opacity='+(this.options.opacity*100)+')',
'opacity':this.options.opacity,
'position': 'absolute',
'top': '0',
'left': '0',
'z-index': '90',
'width': getScrollWidth()+'px',
'background': '#000'
});
this.createCSSRule('#screensaveImg', {
'position': 'absolute'
});
this.isOn = false;
this.delay = $clear(this.delay);
this.wait = this.startSS.bind(this).delay(this.options.wait);
$(document.body).addEvent('mousemove', function(e) {
if (this.isOn == true) {
this.stopSS();
}
else {
this.wait = $clear(this.wait);
this.wait = this.startSS.bind(this).delay(this.options.wait);
}
}.bindWithEvent(this));
},
imgList: [],
startSS: function () {
this.isOn = true;
this.ShowHide(true);
this.changeImage();
this.overlay.style.display = 'block';
this.delay = this.changeImage.bind(this).periodical(this.options.delay);
},
stopSS: function () {
this.isOn = false;
this.delay = $clear(this.delay);
this.ShowHide(false);
this.overlay.style.display = 'none';
},
changeImage : function () {
this.image.style.display = 'none';
this.image.src = this.imgList[(this.imgNr < this.imgMx)? this.imgNr++ : (this.imgNr = 0)];
this.image.style.top = $random(getScrollTop()+20,getScrollTop()+getHeight()-this.image.height-20)+'px';
this.image.style.left= $random(getScrollLeft()+20,getScrollLeft()+getWidth()-this.image.width-20)+'px';
this.image.style.display = 'block';
},
ShowHide: function (visible) {
$$("applet", "iframe", "select").visibility = (visible) ? "visible": "hidden";
},
createCSSRule: function(rule,attributes)
{
var newRule = "\n"+rule+"{\n";
for (var attribute in attributes){newRule += "\t" + attribute + ": " + attributes[attribute] + ";\n";}
newRule += "}\n";
var styleTag = $E('style[type="text/css"]') || new Element("style").setProperty('type','text/css').injectInside(document.head);
if(window.ie) styleTag.styleSheet.cssText += newRule;
else styleTag.appendText(newRule);
}
});
ScreenSave.implement(new Options);