我有这个问题,我无法在任何地方找到解决方案......
我在1 div中有3个div,这3个div各有3个图像,它们都是并排的。我用jQuery循环制作了3个幻灯片。这非常有效。如您所见,某些图像需要居中
http://jsfiddle.net/rBaWG/19/
或
http://www.willruppelglass.com/index.php
我已经尝试了一切,但看起来jQuery循环正在调整我的css代码以使这些图像居中,有没有人知道如何解决这个问题?
答案 0 :(得分:5)
试一试:
.pics {
padding: 0;
margin: 0 auto; /* CHANGE HERE */
width: 225px;
height: 200px;
}
.pics img {
background-color: #eee;
/* Removed top and left */
}
.contentImages {
text-align: center; /* Add */
border: 1px solid #CCC;
padding: 10px;
margin: 20px auto 0;
position: relative;
width: 675px;
overflow: hidden;
}
使用jsFiddle处理水平居中的图片,至少在Chrome中。问题:你想让三幅图像并排或彼此叠加吗?
如果您需要并排,则必须从上述CSS中的width
类中删除.pics
。
答案 1 :(得分:3)
我已经尝试并测试了它,它可以按要求运行:
HTML:
<div class="contentImages">
<div class="pics">
<div class="cc"><img src="http://www.willruppelglass.com/upload/home1.jpg" height="200"/></div>
<div class="cc"><img src="http://www.willruppelglass.com/upload/home2.jpg" height="200"/></div>
<div class="cc"><img src="http://www.willruppelglass.com/upload/home3.jpg" height="200"/></div>
</div>
<div class="pics2">
<div class="cc"><img src="http://www.willruppelglass.com/upload/home5.jpg" width="225"/></div>
<div class="cc"><img src="http://www.willruppelglass.com/upload/home4.jpg" height="200"/></div>
<div class="cc"><img src="http://www.willruppelglass.com/upload/home6.jpg" height="200"/></div>
</div>
<div class="pics3">
<div class="cc"><img src="http://www.willruppelglass.com/upload/home7.jpg" height="200"/></div>
<div class="cc"><img src="http://www.willruppelglass.com/upload/home8.jpg" height="200"/></div>
<div class="cc"><img src="http://www.willruppelglass.com/upload/home9.jpg" height="200"/></div>
</div>
</div>
CSS添加:
.cc img{
margin: auto;
}
.cc{
text-align:center;
width:225px !important;
overflow:hidden;
}
答案 2 :(得分:2)
以下是我将如何操作,使用一些jQuery魔法为图像添加边距,并确保容器始终与最大图像的大小相同,方法是使用Cycle中的containerResize
选项,如下所示:
$('img').each(function() {
var left = ($(this).parent().width() / 2) - ($(this).width() / 2);
var top = ($(this).parent().height() / 2) - ($(this).height() / 2);
$(this).css({marginLeft: left, marginTop: top});
});
$('.pics').cycle({
fx: 'fade',
timeout:5000,
containerResize: 1,
nowrap: 0,
random: 1,
});
$('.pics2').cycle({
fx: 'fade',
timeout: 8000,
containerResize: 1,
nowrap: 0,
random: 1
});
$('.pics3').cycle({
fx: 'fade',
timeout: 6000,
containerResize: 1,
nowrap: 0,
random: 1
});
这是一个DEMONSTRATION!
答案 3 :(得分:1)
最好循环一些div并将图像置于div中。
答案 4 :(得分:1)
我使用了一个小plugin of mine:
我改变了你的CSS,将每个图像(通过jQuery)包装成<span>
个元素
这样做我可以使用行高和你可以在我的CSS中找到的一些技巧来纵向和横向居中你的图像:
.contentImages{
border:1px solid #CCC;
padding:10px;
margin:20px auto 0;
position:relative;
width: 675px;
height:200px; /* added */
overflow:hidden;
background:#fff;
}
.pics{
position:relative; /* added */
display:block; /* added */
float:left; /* added */
width:225px;
height:180px;
}
.pics img {
position:relative;
vertical-align:middle;
background-color: #eee;
max-width:100%;
}
.pics span{ /* created by jQuery */
cursor:pointer; /* yes, I made your images swappable */
position:absolute;
margin-left:0px;
height:200px;
width:225px;
text-align:center;
background:#444;
line-height:196px;
}
HTML:您的所有父元素现在都有公共类pics
来简化CSS
<div class="pics pics1">
这是我的jQuery插件(fadeMe!):
/*FadeMe 'FPS'//jQuery_plugin//Author:Roko C.Buljan (2012)// www.roxon.in*/(function($){$.fn.fademe = function(F,P,S){F=F||700;S=S-1||0;P=P||3000;var E=this.children(),T;function a(){E.siblings(E).stop().fadeTo(F,0).eq(S=++S%E.length).stop().fadeTo(F,1);}E.on('mouseenter mouseleave click',function(e){var m=e.type==='mouseenter'?clearTimeout(T):(e.type==='click'?a():aa());}).hide().eq(S).show();function aa(){T=setTimeout(function(){a();aa();},F+P);}aa();};})(jQuery);
$('.pics img').each(function(){ // just added to wrap your images into spans.
$(this).wrap('<span />');
});
$('.pics1').fademe(1360,3500,2); //fadeTime,pause,StartSlideN
$('.pics2').fademe(1300); //fadeTime
$('.pics3').fademe(1240,3920); //fadeTime,pause
这就是全部。这个插件允许你:
默认设置为:
1.Fade time = 700,Pause = 3000,Start slide = 1;
您可以在我的页面HERE
上找到更多信息答案 5 :(得分:1)
背后的代码将图像放在图像div上:
$('.pics').cycle({
fx: 'fade',
timeout:5000,
random: 1,
height: 200,
width: 225,
center: true
});
$('.pics2').cycle({
fx: 'fade',
timeout: 8000,
random: 1,
height: 200,
width: 225,
center: true
});
$('.pics3').cycle({
fx: 'fade',
timeout: 6000,
random: 1,
height: 200,
width: 225,
center: true
});