Lid |
|
Beste,
ik heb een canvas welke ik geanimeerd heb (uit eindelijk een parallax effect) door de achtergrond te veranderen (om alles te testen)... echter loopt het niet helemaal lekker... dit komt denk ik omdat er elke keer een ander plaatje geladen word... jullie enig idee hoe je iets als dit kunt optimaliseren?
voorbeeld: http://animation.devbizz.nl/
code:
$(document).ready(function(e) {
$.preloadImages = function() {
for (var i = 0; i < arguments.length; i++) {
$("<img />").attr("src", arguments[i]);
}
}
$.preloadImages(
<?php
for($i = 1; $i <= 90; $i++) {
if($i <= 9){
$name = 'watch000'.$i;
}elseif($nr >= 10 && $i <= 99) {
$name = 'watch00'.$i;
} else {
$name = 'watch0'.$i;
}
if($i == 90) {
echo '"'.$name.'.png"';
} else {
echo '"'.$name.'.png",';
}
}
?>
);
});
$(document).scroll(function(){
// get scrolled position
var scrolled = $(document).scrollTop();
$('#position').html( Math.round(scrolled * 0.02) );
// get the correct name
var nr = Math.round(scrolled * 0.02);
if(nr <= 9){
var name = 'watch000' + nr;
}else if(nr >= 10 && nr <= 99) {
var name = 'watch00' + nr;
} else {
var name = 'watch0' + nr;
}
if(nr >= 71) {
$('.kiekeboo').fadeIn(2000)
$('.background').slideDown(2000);
} else {
$('.kiekeboo').fadeOut(2000);
$('.background').slideUp(2000);
}
// update canvas background accordingly to the
// numbers of frames we scrolled
$('.canvas').css('background-image', 'url(' + name + '.png)');
});
$(document).ready(function(e) { $.preloadImages = function() { for (var i = 0; i < arguments.length; i++) { $("<img />").attr("src", arguments[i]); } } $.preloadImages( <?php for($i = 1; $i <= 90; $i++) { if($i <= 9){ $name = 'watch000'.$i; }elseif($nr >= 10 && $i <= 99) { $name = 'watch00'.$i; } else { $name = 'watch0'.$i; } if($i == 90) { echo '"'.$name.'.png"'; } else { echo '"'.$name.'.png",'; } } ?> ); }); $(document).scroll(function(){ // get scrolled position var scrolled = $(document).scrollTop(); $('#position').html( Math.round(scrolled * 0.02) ); // get the correct name var nr = Math.round(scrolled * 0.02); if(nr <= 9){ var name = 'watch000' + nr; }else if(nr >= 10 && nr <= 99) { var name = 'watch00' + nr; } else { var name = 'watch0' + nr; } if(nr >= 71) { $('.kiekeboo').fadeIn(2000) $('.background').slideDown(2000); } else { $('.kiekeboo').fadeOut(2000); $('.background').slideUp(2000); } // update canvas background accordingly to the // numbers of frames we scrolled $('.canvas').css('background-image', 'url(' + name + '.png)'); });
P.S. staat niet meer in een canvas haha
Ik heb een "pre-load images" script toegevoegd dat zou moeten werken alleen zie ik totaal geen verschil om eerlijk te zijn.
Probleem nu is dat als je te snel scrolt dat je ziet dat hij moet "laden"... de overgang is gewoon niet mooi (snel genoeg?)
|