背景图片的高度和宽度适应每个屏幕尺寸

时间:2012-04-29 15:27:14

标签: javascript jquery resolution onload screen-resolution

我已经在我的第一个网站上工作了一段时间。我有CSS工作,但我仍然需要修复一些简单,但没有那么简单的问题。在index.html文件中,我有一个附加到html的背景图片。所以我有一个通过CSS附加到html标签的全屏背景图片。这是CSS代码:

html{   background: no-repeat center center fixed; 
-webkit-background-size: cover;     -moz-background-size: cover;
-o-background-size: cover;  -ms-background-size: cover;
background-size: cover; }

但我正在通过Javascript加载图片。我的目标是拥有一系列图片,每次用户加载网站或触发网站时,都会显示随机图片。所以我在Javascript中使用了这个代码:

$(document).ready(function()  {
  var randomImages = ['img1','img2','img3','img4','img5'];
   var rndNum = Math.floor(Math.random() * randomImages.length);
   $("html").css({
      background: "url(_img/bg/index_rnd/" + randomImages[rndNum] + ".jpg)
      no-repeat"
    });
});

所有这些代码都有效。从数组中选择图片并在加载后随机显示。但我有一个很大的问题,我找不到一个明确的答案,我被卡住了。我希望宽度和高度重新设置,因此整个画面显示在屏幕上。当然每个屏幕都不同......我读了一些关于innerhieght和innerwidth属性的内容,但我不知道如何继续。我应该怎么做才能将图片调整到每个不同的屏幕?

此时图片的分辨率为1024x683。我的电脑屏幕为15“”,分辨率为1440x900。我的照片总是有点像素化,并且要在高度上显示,所以图片的一部分被切割。

问题:

我该怎么做才能将图片调整为每种不同的屏幕分辨率?

推荐的图片分辨率,以便正确显示图片?

有没有办法将图片显示到屏幕的确切大小?即使它的原始格式有点修改了吗?

在收到答复后回复------------------------------------------- ------------------ 新问题------------------------------------------------ -----------------------------

你好,最后我有时间使用代码......它确实可以正常工作。我只需要将url添加到我的图像文件夹和魔法!所以我的代码实际上是这样的:

$(window).load(function() {
    var randomImages = ['img1','img2','img3','img4','img5'];
    var rndNum = Math.floor(Math.random() * randomImages.length);

     var $win = $(this);
     var $img = $('#background').attr('src', '_img/bg/index_rnd/' + randomImages[rndNum] + '.jpg').css({'position':'fixed','top':0,'left':0});
        function resize() {
            if (($win.width() / $win.height()) < ($img.width() / $img.height())) {
              $img.css({'height':'100%','width':'auto'});
            } else {
              $img.css({'width':'100%','height':'auto'});
            }
        }
        $win.resize(function() { resize(); }).trigger('resize');
    });

关于我的html,我现在有一个id背景的图像。我想把图像置于中心位置。所以我的问题是我是否应该把这个图像放在div中。如果是这样,我怎样才能使这个图像居中在屏幕的中心?

另一个问题,在我将图像附加到html之前,现在附加到图像上。因此,影像正在影响我体内的其他元素。如何让这张图片显示在我身体的所有其他元素后面?!?!例如,当我的img id =“background”被加载时,我的logo和header_bg被转换。

你能帮忙吗?

这是我对任何疑惑的HTML ...

<body>
        <img id="background" src="" alt="" />
        <div id="header_img">
            <nav>
                <div id="header-bg-left">
                    <div id="nav-content">
                        <div id="logo">
                                <a href="index.html"><img alt="./_img/nav/logo.rosa.png" src="">logo</a>
                        </div>
                        <div id="categories">       
                                <ul>
                                    <li id="nav-quien"><a href="#">quien es</a>
                                        <ul>
                                            <li id="nav-biografia" class="drop1"><a href="biografia.html">biografia</a></li>
                                            <li id="nav-curriculum" class="drop2"><a href="curriculum.html">curriculum</a></li>
                                        </ul>
                                    </li>
                                    <li id="nav-galeria" class="marginli"><a href="gallery.html">galeria</a>
                                        <ul>
                                            <li id="nav-gal-nat" class="drop3"><a href="gallery.html">paisaje natural</a></li>
                                            <li id="nav-gal-urb" class="drop4"><a href="gallery.html">paisaje urbano</a></li>
                                        </ul>
                                    </li>
                                    <li id="nav-prensa" class="marginli"><a href="prensa.html">prensa</a></li>
                                    <li id="nav-links" class="marginli"><a href="links.html">links</a></li>
                                    <li id="nav-contacto" class="marginli"><a href="contacto.html">contacto</a></li>
                                </ul>
                        </div>
                    </div>
                </div>
            </nav>
        </div>
        <footer>    
            <div id="footer-bg-left">
                <div id="foot-content">
                    <p>Diseñado por <a href="mailto:daniramirezescudero@gmail.com">Daniel. R-Escudero</a> <span>|</span> Todos los derechos reservados <span>|</span> <a href="mailto:info@scalesplanet.com">info@rosasusaeta.com</a> <span>|</span><a href="http://www.linkedin.com/"><img src="./_img/footer/logo.linked.png"></a> <a href="http://www.facebook.com/"><img src="./_img/footer/logo.facebook.png"></a></p>
                </div>
            </div>  
        </footer>
    </body>

1 个答案:

答案 0 :(得分:3)

2012年11月29日更新

  
        $(window).resize(function() {
            resize();
        });
        $(function() {
            $('#background').attr('src', 'http://cdn.com/bg.png').css({
                'position' : 'fixed',
                'top' : 0,
                'left' : 0
            });
            resize();             
        });
        function resize() {
            var $img = $('#background');
            if (($(window).width() / $(window).height()) < ($img.width() / $img.height())) {
                $img.css({
                    'height' : '100%',
                    'width' : 'auto'
                });
            } else {
                $img.css({
                    'width' : 'auto',
                    'height' : $(window).height() + 'px'
                });
            }
        }

<body>
  <img id="background" src="" alt=""/>
</body>