这是我的幻灯片放映标记。正如您在我的样式表中所看到的,我明确指定了幻灯片的高度,但我真的想避免这种情况,因此当我使浏览器变大或变小时,幻灯片大小也会发生变化。
<section class="contentSlider">
<section class="contentSliderControls">
<a href="#" class="controlPrev">Prev</a>
<a href="#" class="controlNext">Next</a>
<ul class="controlSlides"></ul>
</section>
<ul class="slides">
<li><img class="sliderImage" src="/images/sliderContent_1.png" alt="" /></li>
<li><img class="sliderImage" src="/images/sliderContent_1.png" alt="" /></li>
<li><img class="sliderImage" src="/images/sliderContent_1.png" alt="" /></li>
<li><img class="sliderImage" src="/images/sliderContent_1.png" alt="" /></li>
<li><img class="sliderImage" src="/images/sliderContent_1.png" alt="" /></li>
<li><img class="sliderImage" src="/images/sliderContent_1.png" alt="" /></li>
<li><img class="sliderImage" src="/images/sliderContent_1.png" alt="" /></li>
<li><img class="sliderImage" src="/images/sliderContent_1.png" alt="" /></li>
</ul>
这是我的javascript
$(function() {
$('.slides').cycle({
fx: 'scrollHorz',
timeout: 0,
prev: '.contentSliderControls > .controlPrev',
next: '.contentSliderControls > .controlNext',
pager: '.contentSliderControls > .controlSlides',
pagerAnchorBuilder: pagerFactory
});
function pagerFactory(idx, slide) {
return '<li><a href="#">'+(idx+1)+'</a></li>';
};
});
和我的css
/* Content Slider */
.contentSlider {
position: relative;
}
.contentSlider, .contentSlider > .slides {
height: 504px;
}
.controlSlides > li {
float: left;
}
.contentSlider > .slides {
z-index: 1;
}
.sliderImage {
width: 100%;
}
.contentSliderControls {
height: 504px;
position: absolute;
width: 100%;
z-index: 2;
}
.contentSliderControls > .controlPrev {
background-color: #ffffff;
color: #000000;
display: block;
float:left;
height: 504px;
opacity: .5;
width: 10%;
}
.contentSliderControls > .controlNext {
background-color: #ffffff;
color: #000000;
display: block;
float:right;
height: 504px;
opacity: .5;
width: 10%;
}
非常感谢任何帮助
答案 0 :(得分:8)
我已经解决了这个问题:
var activeSlide;
$(document).ready(function() {
$('.cycle').cycle({
containerResize: 1,
width: 'fit',
after: function(curr, next, obj) {
activeSlide = obj.currSlide;
}
});
$(window).resize(function(){
$('.cycle').cycle('destroy');
$('.cycle').each(function(){
newWidth = $(this).parent('div').width();
$(this).width(newWidth);
$(this).height('auto');
$(this).children('div').width(newWidth);
$(this).children('div').height('auto');
});
$('.cycle').cycle({
containerResize: 1,
width: 'fit',
after: function(curr, next, obj) {
activeSlide = obj.currSlide;
},
startingSlide: activeSlide
});
});
});
答案 1 :(得分:6)
试试这个:
$('.slides').cycle({
fx: 'scrollHorz',
timeout: 0,
prev: '.contentSliderControls > .controlPrev',
next: '.contentSliderControls > .controlNext',
pager: '.contentSliderControls > .controlSlides',
pagerAnchorBuilder: pagerFactory,
slideResize: true,
containerResize: false,
width: '100%',
fit: 1
});
答案 2 :(得分:2)
我遇到了类似的问题。
我找到了一个适合我的解决方案http://forum.jquery.com/topic/integrate-cycle-plugin-in-a-responsive-layout-using-media-queries
希望这会有所帮助。 jQuery Cycle插件按预期调整大小。
答案 3 :(得分:1)
您需要为.sliderImage类设置max-width:100%。这应该解决问题。 请记住,您需要足够大的图像,并且循环容器的高度仍然是固定值。
以下是max-width的示例:添加了100%css属性: http://jsfiddle.net/vfonic/YH5je/
答案 4 :(得分:0)
只需添加最大宽度的虚拟图像,如下所示:
http://www.bluebit.co.uk/blog/Using_jQuery_Cycle_in_a_Responsive_Layout
以下是一个例子:
http://dev.bluebit.co.uk/mark/cycle/index-basic.html
我猜有人已经告诉过你了。
答案 5 :(得分:0)