Cytat(CuteOne @ 9.02.2012, 16:33:42 )

Pokaż ciało funkcji vSlide.
ps. jeżeli to autoslider to tak łatwo się nie da

function vSlide
(container
, max, height
) { $.ajax({
type: "POST",
url : container + ".html",
load: function (XMLHttpRequest) {
$("#" + container + " .slider").html("Trwa pobieranie danych…");
},
success: function(str) {
var dir = "images/" + container
+ "/"; var loaded = 0;
var progress = (100 / temp.length);
var objects = [];
var preloader = null;
var progressBar = null;
function startLoading() {
preloader = document.createElement('div');
preloader.id = 'preloader';
progressBar = document.createElement('div');
progressBar.id = 'progressBar';
preloader.appendChild(progressBar);
$(preloader).appendTo("#" + container + " .slider");
var bw = $("#" + container + " .slider").width();
var bh = $("#" + container + " .slider").height();
var lw = $("#" + container + " .slider #preloader").width();
var lh = $("#" + container + " .slider #preloader").height();
$("#" + container + " .slider #preloader").css({
'margin-top' : (bh - lh) / 2 + "px",
'margin-left' : (bw - lw) / 2 + "px"
});
for(var x=0; x<temp.length; x++) {
objects[x] = new Image();
objects[x].onload = progressing;
objects
[x
].src
= dir + temp
[x
]; }
}
function progressing() {
loaded++;
progressBar.style.width = loaded * progress + "%";
if(loaded >= temp.length) {
slider();
$("#" + container + " #preloader").remove();
}
}
window.onload = startLoading;
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#" + container + " .slider").html('Błąd ładowania danych !');
}
});
function slider() {
var id = 0;
var start = 1;
var stop = 0;
var active = 1;
$.ajax({
type: "POST",
url : container + ".html",
load: function (XMLHttpRequest) {
$("#" + container + " .slider").html("Trwa pobieranie danych…");
},
success: function(str) {
var mV = 15;
var mH = 10;
var dir = "images/" + container
+ "/"; var bs
= ($
("#" + container
+ " .slider").width
() / max) - (mH
* 2
); for(var i=0; i<temp.length; i++) {
id += 1;
stop += 1;
var block = document.createElement("span");
block.setAttribute('id', id);
block.setAttribute('style', 'width:' + bs + 'px; height:' + height + 'px; margin:0 ' + mH + 'px');
$(block).appendTo("#" + container + " .slider");
var img = document.createElement("img");
img
.setAttribute
('src', dir + temp
[i
]); img.setAttribute('style', 'max-width:' + bs + 'px; max-height:' + height + 'px');
$(img).appendTo("#" + id);
$("#" + container + " .slider").css({
'margin-top' : mV + "px",
'margin-bottom' : mV + "px"
});
var ah = $("#" + container + " .action").height();
$("#" + container + " .action").css({
'margin-top' : ((height - ah) / 2) + mV + "px",
'margin-bottom' : ((height - ah) / 2) + mV + "px"
});
var bw = $("#" + container + " .slider span#" + id).width();
var bh = $("#" + container + " .slider span#" + id).height();
var iw = $("#" + container + " .slider span#" + id).children().width();
var ih = $("#" + container + " .slider span#" + id).children().height();
$("#" + container + " .slider span#" + id).children().css({
'margin-top' : (bh - ih) / 2 + "px",
'margin-left' : (bw - iw) / 2 + "px"
});
if($
("#" + container
+ " .slider span#" + id
).attr
("id") <= max) { $("#" + container + " .slider span#" + id).fadeIn();
} else {
$("#" + container + " .slider span#" + id).hide();
}
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#" + container + " .slider").html('Błąd ładowania danych !');
}
});
function slide() {
$
("#" + container
+ " .slider span").each(function() { if($
(this
).attr
("id") >= active
&& $
(this
).attr
("id") <= max) { $(this).fadeIn();
} else {
$(this).hide();
}
});
};
$("#" + container + " .action.prev").click(function() {
if(document.getElementById(start).style.display == "none") {
active -= 1;
slide();
}
});
$("#" + container + " .action.next").click(function() {
if(document.getElementById(stop).style.display == "none") {
active += 1;
slide();
}
});
}
}
Dodałem dwie zmienne do funkcji tj.
max i
height, a więc teraz wywołuję funkcję w taki sposób:
(function () {
vSlide("sponsors", 4, 75);
vSlide("partners", 5, 50);
}());
Pomyślałem trochę nad tym i sądzę, że problem może tkwić w zmiennej
id, próbowałem jednak ze zmienną globalną:
id = 0;
jednak nie przyniosło to oczekiwanego rezultatu...