for et stykke tid siden prøvede jeg at lave noget lignede for en kunde.
Jeg havde dog problemer med at mine billeder blev nogle grimme størrelser alt efter hvordan vinduet var sized (widescreen osv.) så jeg lavede et jQuery plugin til det:
- (function($){
- $.fn.resizeTo = function(id) {
- var fetchElement = $(id);
- if ($(fetchElement).length==1){
- this.each(function(){
- var aspectRadio = $(this).height() / $(this).width();
- if (aspectRadio < ($(fetchElement).height()/$(fetchElement).width())){
- $(this).height($(fetchElement).height());
- $(this).width($(this).height() / aspectRadio);
- } else {
- $(this).width($(fetchElement).width());
- $(this).height($(this).width() * aspectRadio);
- }
- });
- }
- };
- })(jQuery);
koden skulle virke og bliver kaldt sådan: $(element).resizeTo('#slideshow') hvis det er dit slideshow du vil have elementet skal fitte.
Derud over er du nød til at have de rigtige CSS instillinger på elementet:
- #slideshow {
- width:100%;
- height: 100%;
- position:fixed;
- top:0;
- left:0;
- z-index:1;
- overflow:hidden;
- }
jeg brugte følgende og satte mine billeder til at floate og cleare left.
Dog er det også vigtigt at du tilføjer dette til din css også:
- html, head {
- height:100%;
- }
da du ellers ikke vil kunne bruge height:100% på dit element.
til slut vil jeg foreslå dig at måske extende det jQuery plugin til at bruge resizeTo functionen hver gang nyt billede bliver loadet. At sætte display:none; på elementer som ikke vises. og måske lave en event listener på window.resize som resizer dit ligenu visende billede.
hvis du vil er du mere end velkommen til at kigge på min kode her:
http://www.annae.dk/html/index2.html og du tager bare så meget du lyster af koden.