CSS保持中间的图像在100%宽度的幻灯片总是在中心 [英] CSS to keep middle image in 100% width slideshow always in center

查看:103
本文介绍了CSS保持中间的图像在100%宽度的幻灯片总是在中心的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要建立一个像这样的幻灯片。

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆