Trying to do window resize with jquery cycle slideshow

cycle, jquery, resize, slideshow

Solution

Thanks Nick, that was a step in the right direction. Ive managed to get it to work with the below. Oddly it doesnt work if I dont have animIn: height/width set to a different value than they are in cssBefore: Any ideas on that?

 $('.slideshow').cycle({ 
    fx: 'custom', 
    speed: 200,
    timeout : 1000,
    pause:  1,
    cssBefore: {  
       left: 0,  
       top:  0,  
       width: imagewidth,  
       height: imageheight,  
       opacity: 0, 
       zIndex: 1 
   }, 
   animOut: {  
       opacity: 0  
   }, 
   animIn: {  
       left: 0,  
       top:  0,  
       width: imagewidth +1,  
       height: imageheight +1,  
       opacity: 1, 
       zIndex: 1  
   }, 
   cssAfter: {  
       zIndex: 0 
   }
});

Problem

I'm trying to run a JavaScript window resize script on a page with a jQuery cycle slideshow but I'm hitting some bugs I cant seem to work out. It resizes the first image fine on page load but then forgets the new height/width attributes for subsequent slides. I can set these again on before and after using jQuery but the images always flash in at full size for a brief moment before resizing. Is jQuery.cycle resizing the slides back to their native size? If so how do I stop this? ``` $(document).ready(function () { $('.slideshow').cycle({ fx: 'fade', speed: 200, timeout: 1000, pause: 1, before: function (currSlideElement, nextSlideElement, options, forwardFlag) { resize(); }, after: function (currSlideElement, nextSlideElement, options, forwardFlag) { resize(); } }); $('.slideshow').find('img').css("height", "0"); $('#image').hide().idle(1000).fadeIn(); resize(); }); $(window).resize(function () { resize(); }); function resize() { var theheight = window.innerHeight; var thewidth = window.innerWidth; var imageheight = theheight - 200; if (imageheight > 540) { imageheight = 540; } if (imageheight < 300) { imageheight = 300; } var imagewidth = imageheight / 0.6585365; $(".slide").css("height", imageheight); $(".slide").css("width", imagewidth); $(".slide").attr("height", imageheight); $(".slide").attr("width", imagewidth); } ```

Original source

Related problems