4

如果我调整窗口大小然后刷新滑块并且其中的图像将调整大小以匹配浏览器宽度,但是我需要在窗口调整大小时自动发生这种情况......这怎么办?

http://subzerostudio.com/Clients/perkinreveller/test.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.cycle.all.latest.js"></script>
<script type="text/javascript">

$(document).ready(function() {

$('.slideshow').cycle({
    timeout: 400,
    fx: 'scrollHorz',
    next: '#next',
    prev: '#prev',

});

});

</script>

</head>

<body>




<style>
body {
margin:0; padding:0;
height:100%;
width:100%;
position:absolute;
}

#slideshow-wrapper {
width:100%;
min-width:600px;
}

.slideshow {
width:100%;
}
.slideshow div,
.slideshow div img {
width:100% !important;
min-width:100%;
height:auto;
}

</style>


<div class="slideshow">

 <div>
     <img src="images/img1.jpg" alt="" />
 </div>

 <div>
     <img src="images/img1.jpg" alt="" />
 </div>

 <div>
     <img src="images/img1.jpg" alt="" />
 </div>

</div>    


</body>
</html>
4

4 回答 4

3

这就是我设法做到的方式......

$(document).ready(function() {


$('#slideshow').cycle({

slideResize: true,
containerResize: true,
width: '100%',
height: '100%',
fit: 1,

fx: 'fade',
next: '#next',
prev: '#prev',  

});

});

希望这可以帮助任何想要解决这个问题的人(我还没有完全测试它,当我输入寻呼机按钮时,它似乎在播放,同样,当使用诸如 scrollHorz 之类的 fx 时,它似乎把它搞砸了..)

于 2012-07-13T09:58:11.073 回答
2

实际上(如docs中所述),您唯一需要做的就是指定fit选项:

$('.slideshow').cycle({
  fit: 1
});

请注意,您可能还需要使用widthheight选项 - 对我来说这不是必需的。
它们仅在fit: 1设置并指定幻灯片应设置的宽度和高度时才起作用。

于 2013-12-05T03:35:43.983 回答
2

您可以将此代码添加到您的 javascript

$(window).resize(function() {

    var slideDiv = $('.slideshow');

    /* ratio = (width / height) is the aspect ratio of the image. 
       You can change this according to dimensions of the image you are
       using */

    var ratio = (640/426);  // width and height of your image 

    var w = slideDiv.parent().width();
    var h = w / ratio;

    slideDiv.width(w);
    slideDiv.height(h);

    slideDiv.children().each(function() {
        $(this).width(w);  // "this" is the img element inside your slideshow
        $(this).height(h);  // "this" is the img element inside your slideshow
    });

});

我已经完成了这个 JSFiddle https://jsfiddle.net/0x24u41f/25/所以你可以测试上面的解决方案。

无需使用标签“div”包装图像。

您的 html 代码可以是这样的:

<div class="slideshow">
    <img src="images/img1.jpg" alt="" />
    <img src="images/img2.jpg" alt="" />
    <img src="images/img3.jpg" alt="" />
</div>
于 2015-05-20T05:22:03.383 回答
0

类似的帖子可以在这里找到JavaScript 窗口调整大小事件

window.onresize = function(event) {
   $('.slideshow').cycle({
     timeout: 400,
     fx: 'scrollHorz',
     next: '#next',
     prev: '#prev',

   });

}

检查是否有帮助

于 2012-07-13T09:28:42.403 回答