【问题标题】:The background images don't cover the div背景图像不覆盖 div
【发布时间】:2016-01-14 00:42:21
【问题描述】:

在图片旋转器 js 中,标签 background-size 不起作用,图片不能覆盖整个 div...有人可以帮帮我吗?

 <script language="JavaScript" type="text/javascript">
 $(document).ready(function(){

 var imgArr = new Array( // relative paths of images
 'imgs/contact/01.png',
 'imgs/contact/03.png',
 'imgs/contact/02.jpg'
 );

 var preloadArr = new Array();
 var i;

 /* preload images */
 for(i=0; i < imgArr.length; i++){
 preloadArr[i] = new Image();
 preloadArr[i].src = imgArr[i];
 }

 var currImg = 1;
 var intID = setInterval(changeImg, 6000);

 /* image rotator */
 function changeImg(){
 $('#contact #banner').animate({opacity: 0}, 1000, function(){
 $(this).css('background','url(' + preloadArr[currImg++%preloadArr.length].src +') top center no-repeat','background-attachment', 'fixed','background-size','cover');
 }).animate({opacity: 1}, 1000);
 }

 });
</script>

不知道js上的css写的好不好,写对了……

html:

<div id="contact">
    <div id="banner" style="background-size: cover;"></div>
</div>

CSS:

#contact {
            background: #fff;
            width: 100%;
            height: 950px;
        }
#contact #banner {
            background: url('imgs/contact/01.png') center center no-repeat;
            background-size: cover;
            background-position-y: 40%;
            width: 100%; height: 500px; margin-top: -50px;
        }

https://jsfiddle.net/87z5p17e/

【问题讨论】:

  • 请发布您的 html
  • 发布了html部分
  • 请提供 jsfiddle,因为您的图片没有绝对路径

标签: javascript jquery css image slider


【解决方案1】:

height:100%; 添加到#banner 元素,因为#bannerheight: 500px; 小于其父元素(#contact height:950px;)。

Jsfiddle

#contact #banner {
    background: url('http://www.barrymellorphotography.co.uk/assets/Uploads/landscapes-13.jpg') center center no-repeat;
    background-size: cover;
    background-position-y: 40%;
    width: 100%;
    // height: 500px;
    height: 100%;
    margin-top: -50px;
}

【讨论】:

  • 但是background-size:cover; 使图像覆盖任何高度大小的 div,第一个 img,在 css 上的工作完美,而我通过 js 添加的其他图像不适用于此background-size:cover;
  • 对不起。我没有得到你。你能解释更多吗?
  • 第一张图片,在 css 中,适合 500pxdiv,其他 3 张图片在 js 上,不适合 500pxdiv,background-size:cover 在这 3 张图片中没有任何效果,明白吗?
  • I fixed it。你有 jquery 一个错误。您尝试将几个 css 属性传递给 css() method 而不使用大括号。我建议您在样式表中添加这些样式,而不是使用 jquery
  • 不错的一个!这真的很有帮助,非常感谢你!