我想保持一个“幻灯片”在我的可滚动div中心在任何时候。由于某种原因,脚本似乎将其设置为偏离中心,我无法弄清楚原因。下面是代码:居中脚本稍微偏离中心
HTML:
<div id="carousel">
<div class="slide"><img src="http://placehold.it/300x150"/></div>
<div class="slide"><img src="http://placehold.it/300x150"/></div>
<div class="slide"><img src="http://placehold.it/300x150"/></div>
<div class="slide"><img src="http://placehold.it/300x150"/></div>
<div class="slide"><img src="http://placehold.it/300x150"/></div>
<div class="slide"><img src="http://placehold.it/300x150"/></div>
</div>
的JavaScript(jQuery的):
$(document).ready(function() {
// setup handlers
var carouselTimeout = null;
var scrollStop = function() {
var carousel = $('#carousel');
var carouselWidth = carousel.width();
var slideWidth = carousel.find('.slide:first-child').width();
var margin = carouselWidth/20; // assumes margin of 5% on slides
var snapVal = slideWidth/2 + margin;
var offset = carousel.scrollLeft();
slideNum = Math.round(offset/snapVal/2);
var newOffset = slideNum * snapVal * 2;
carousel.animate({
scrollLeft: newOffset
});
};
$('#carousel').scroll(function() {
if (carouselTimeout) {
clearTimeout(carouselTimeout);
}
carouselTimeout = setTimeout(scrollStop, 500);
});
});
CSS:
#carousel {
width: 100%;
height: 150px;
background-color: rgba(0, 0, 0, 0.3);
overflow-x: scroll;
overflow-y: hidden;
white-space: nowrap;
}
#carousel .slide {
display: inline-block;
margin: 0 5%;
}
#carousel .slide:first-child {
margin: 0 5% 0 calc(50% - 150px);
}
#carousel .slide:last-child {
margin: 0 calc(50% - 150px) 0 5%;
}
什么是 “轻微” 呢?这可能是一个'内联块/空白'问题? –
@Paulie_D它可能是,但我认为它可能是页面宽度依赖意味着它更像是一个像素分割问题。尽管如果你看到一个可能的空白问题,随意玩它。 – carloabelli
这杀死了空白:http://jsfiddle.net/5cp0unwj/1/和对我来说,第一个和最后一个块都完全居中 – Marcel