垂直居中的jquery wmu滑块

时间:2012-07-09 16:44:52

标签: jquery css slider positioning

我有一个我设置的滑块,我很难让图像全屏显示溢出,并保持垂直居中并将导航点保持在屏幕的最底部。

我能得到的任何帮助都将非常感激。

这是网站网址:

http://www.klossal.com/js/wmuSlider/demo/demo3.html

这是代码,

HTML:

<div style="top:50%;">

<div class="wmuSlider example1">
<div class="wmuSliderWrapper" style="height:100%;">
<article>
<img width="612" height="612" src="http://www.klossal.com/portfolio/space_1_header.png"  
/>
</article>
<article>
<img width="612" height="612" src="http://www.klossal.com/portfolio/space_2_header.png" 
/>
</article>
<article>
<img width="612" height="612"     
src="http://farm6.static.flickr.com/5201/5296457034_5688b25c15_z.jpg" />
</article>
<article>
<img width="612" height="612"    
src="http://farm6.static.flickr.com/5245/5291874922_35ca47cc3d_z.jpg" />
</article>
</div>
</div>


</div>
<script>
    $('.example1').wmuSlider({
        touch: Modernizr.touch,
        animation: 'slide',
        slideshow: false
    });
</script>

和CSS:

/* Demo */
.wmuSlider,
.wmuGallery {
margin-bottom: 20px;
}

/* mwuSlider */
.wmuSlider {
position: relative;
overflow: hidden;
}
.wmuSlider .wmuSliderWrapper {
display: none;
}
.wmuSlider .wmuSliderWrapper article {
position: relative;
text-align: center;
}
.wmuSlider .wmuSliderWrapper article img {
max-width: 100%;
height: auto;
}

/* mwuGallery */
.wmuGallery .wmuGalleryImage {
position: relative;
text-align: center;
}
.wmuGallery .wmuGalleryImage img {
max-width: 100%;
height: 100%;
}

/* Default Skin */
.wmuGallery .wmuGalleryImage {
margin-bottom: 10px;
}
 .wmuSliderPrev, .wmuSliderNext {
position: absolute;
width: 40px;
height: 80px;
text-indent: -9999px;
background: url(http://klossal.com/js/wmuSlider/demo/images/sprites.png) no-repeat 0 0;
top: 50%;
margin-top: -40px;
z-index: 2;
}
.wmuSliderPrev {
background-position: 100% 0;
left: 20px;
}
.wmuSliderNext {
right: 20px;
}
.wmuSliderPagination {
z-index: 2;
position: absolute;
left: 50%;
bottom: 0px;
}
.wmuSliderPagination li {
float: left;
margin: 0 5px 0 0;
list-style-type: none;
}
.wmuSliderPagination a {
display: block;
text-indent: -9999px;
width: 10px;
height: 10px;
background: url(http://klossal.com/js/wmuSlider/demo/images/sprites.png) no-repeat 0   
-80px;
}
.wmuSliderPagination a.wmuActive {
background-position: -10px -80px;
}

body{
background:#141414;
}

1 个答案:

答案 0 :(得分:0)

这是向下跑

您有一个容器 - <div class="wmuSlider"> - 此容器的高度为612px

然后你有一个滑块图像的包装器 - <div class="wmuSliderWrapper"> - 这个元素的高度设置为100%。这意味着它将使用页面包装器的高度 - <div class="wmuSlider"> - 这是612px。

所以我们还没有间距,我们必然会受到包装器的确切尺寸的限制。我们继续吧。

您有<article>个帖子,每个<article>都有<img> - 这些图片的高度为 - 您猜对了 - 612px

因此图像的高度与周围的所有容器的高度相同。

最后我们有<ul class="wmuSliderPagination">。此元素位于元素<div class="wmuSliderWrapper">的底部。但是,由于图片的高度与包装器的高度相同,因此根据您的<ul class="wmuSliderPagination">612px将包含跨越整个z-index:2的任何图片。

如果我们想要改变这一点,以便分页没有任何问题,我们可以做一些事情。

我们可以将<div class="wmuSliderWrapper">的高度从100%更改为98%并添加overflow:hidden;,例如 - &gt;

.wmuSliderWrapper{
  height:98%;
  overflow:hidden;
}

然而,这将切断图像的底部,我们可能不想这样做。相反,我们可以更改<div class="wmuSlider">的整体高度,并将<div class="wmuSliderWapper">的高度设置为固定高度。

.wmuSlider{
  height:632px; //20px is the average line-height of a single element
}
.wmuSliderWrapper{
  height:612px;//give 20pxs of room for the pagination wrapper
}

你的<img>有硬编码的宽度和高度,所以使用上面的解决方案,你不应该再次遇到这个问题;但是,如果图像在某些时候的高度不同,则需要包括

.wmuSliderWrapper{
  height:612px;
  overflow:hidden; // stop any element that has dimensions larger than the container from overflowing
}