CSS保持中间的图像在100%宽度的幻灯片总是在中心 [英] CSS to keep middle image in 100% width slideshow always in center
问题描述
我想要建立一个像这样的幻灯片。
Im trying to achive a slideshow that looks like this
http://ge.tt/api/1/files/2AjKcVM/0/blob/x675?noinc=1
其中宽度为100%,并保持无限向左或向右滚动,但总是在中心有一个图像,无论浏览器分辨率。这是ive到目前为止
where the width is 100%, and keeps scrolling infinitely left or right, but always having an image in the center no matter the browser resolution. This is what ive got so far
http:// fourcreeklandscape .com / index2.html
幻灯片图片的宽度为800像素,最左侧的图片左侧为-25%...它排序看起来像它的工作在一个1280px屏幕尺寸....但不看起来像它的假设当我调整窗口大小。
the slideshow images have a width of 800px, the left most image has a margin-left of -25%... which sorta looks like it works in a 1280px screen size.... but doesnt look like its suppose to when i resize the window.
使用
$(document).ready(function() {
//move he last list item before the first item. The purpose of this is if the user clicks to slide left he will be able to see the last item.
$('#carousel_ul li:first').before($('#carousel_ul li:last'));
//when user clicks the image for sliding right
$('#right_scroll img').click(function(){
//get the width of the items ( i like making the jquery part dynamic, so if you change the width in the css you won't have o change it here too ) '
var item_width = $('#carousel_ul li').outerWidth() + 10;
//calculae the new left indent of the unordered list
var left_indent = parseInt($('#carousel_ul').css('left')) - item_width;
//make the sliding effect using jquery's anumate function '
$('#carousel_ul:not(:animated)').animate({'left' : left_indent},500,function(){
//get the first list item and put it after the last list item (that's how the infinite effects is made) '
$('#carousel_ul li:last').after($('#carousel_ul li:first'));
//and get the left indent to the default -210px
$('#carousel_ul').css({'left' : '-210px'});
});
});
//when user clicks the image for sliding left
$('#left_scroll img').click(function(){
var item_width = $('#carousel_ul li').outerWidth() + 10;
/* same as for sliding right except that it's current left indent + the item width (for the sliding right it's - item_width) */
var left_indent = parseInt($('#carousel_ul').css('left')) + item_width;
$('#carousel_ul:not(:animated)').animate({'left' : left_indent},500,function(){
/* when sliding to left we are moving the last item before the first list item */
$('#carousel_ul li:first').before($('#carousel_ul li:last'));
/* and again, when we make that change we are setting the left indent of our unordered list to the default -210px */
$('#carousel_ul').css({'left' : '-210px'});
});
});});
任何想法?感谢
推荐答案
您可以将此CSS放在#carousel_ul
You can put this CSS on #carousel_ul
left: 50%;
margin-left: -1200px;
只需确保它从左到右。唯一的问题是,如果有人的显示器比2000px大,当幻灯片第一次开始时,他们会得到一个没有图像的左边,但我认为这是很少的人。
Just make sure it goes left to right. The only problem is if someone has a monitor wider than maybe 2000px, they will get a bit on the left with no image, when the slideshow first starts - but I think that is very few people.
这篇关于CSS保持中间的图像在100%宽度的幻灯片总是在中心的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!