【问题标题】:Responsive image that is fully visible完全可见的响应式图像
【发布时间】:2017-08-12 02:39:22
【问题描述】:

我有一个标题图像,当屏幕宽度短于高度时,我希望屏幕宽度为 100%,当屏幕高度短于高度时,我希望屏幕高度为 100%宽度。有没有办法让我做到这一点?

编辑——有些人想要所有相关的代码,所以就在这里!

HTML

<div id="home-slider" class="carousel slide carousel-fade" data-ride="carousel">
  <div class="carousel-inner">
    <div class="item active" style="background-image: url(images/logo.png)" >
      <div class="caption">
        <h1 class="animated fadeInLeftBig">The *** Organization  </h1>
        <p class="animated fadeInRightBig">***</p>
        <a data-scroll class="btn btn-start animated fadeInUpBig" href="#rescue">***</a>
      </div>
    </div>
  </div>
</div>

CSS

#home-slider {
  overflow: hidden;
  position: relative;
  attachment: fixed;
  size: cover;
  repeat: no-repeat;
  width: 100%;
  height: 100vh;
  max-width: 100%;
  height: auto;

}



#home-slider .caption {
  position: absolute;
  top: 50%;
  margin-top: -104px;
  left: 0;
  right: 0;
  text-align: center;
  text-transform: uppercase;
  z-index: 15;
  font-size: 18px;
  font-weight: 300;
  color: #fff;
  vertical-align: center;
  height: 100vh;
  font-size: 2em;
  background-size: contain;

}

#home-slider .caption h1 {
  color: #fff;
  size: 72px;
  font-weight: 800;
  margin-bottom: 30px;
  vertical-align: center;

}





.caption .btn-start {
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  padding:14px 40px;
  border: 2px solid #6e6d6c;
  border-radius: 4px;
  margin-top: 40px;
  vertical-align: center;
}

.caption .btn-start:hover {
  color: #fff
}

.carousel-fade .carousel-inner .item {
  opacity: 0;
  background-repeat: no-repeat;
  background-size: cover;
  height: 100%;
  width: 100%;
  /*  just in case if I want the image to be "parallax"
  background-attachment: fixed;
  */
  background-position: center;
  background-color: #6e6d6c;

}



.carousel-fade .carousel-inner .active {
  opacity: 1;
  background-size: 100%;
}

.carousel-fade .carousel-control {
  z-index: 2;
}

js

var slideHeight = $(window).height();
    $('#home .item').css('height',slideHeight);

    $(window).resize(function(){'use strict',
        $('#home .item').css('height',slideHeight);
    });

    $(function() {
var width = $(window).width();
var height = $(window).height();
if( width < height  ) {
        $('#home .item').css({width:'initial',height:height+'px'});
    }
    });

        var logoFix = function() {
              if( $(window).width() < $(window).height()  ) {
                $('.item').css('background-size','auto 100%');
              }
              else {
                $('.item').css('background-size','100%');
             }
        }
           $(function() {
             logoFix();
           });

【问题讨论】:

  • 这是网页版吗?如果是这样 - 您是否使用 bootstrap/jquery/任何其他插件?
  • 是网页,我用的是bootstrap和jquery。

标签: image responsive


【解决方案1】:

是的,

您可以使用

检测屏幕分辨率
window.screen.availHeight    
window.screen.availWidth

http://www.javascriptkit.com/howto/newtech3.shtml

然后你需要使用 JS 来做一个基本的 if 语句来调整图像的大小。 (非常基本的例子)

if (window.screen.availHeight > window.screen.availWidth){
height: 100%;
}

if (window.screen.availHeight > window.screen.availWidth){
width: 100%;
}

这是一个非常基本的例子,如果你复制粘贴肯定行不通。这只是为了让您了解您必须做什么。

Image sizing

【讨论】:

  • 谢谢!使用您的链接,我添加了: max-width: 100%;高度:自动;现在我有一个页面,当宽度短于高度时,至少我的标题宽度为 100%。但是,当我尝试相反时, max-height: 100%;宽度:自动;它不会做任何事情。所以,只完成了我想要的一部分。当高度小于宽度时,有什么方法可以使标题图像的高度为 100%?
  • @Nora 检查 if 语句 w3schools.com/js/js_if_else.asp
【解决方案2】:

原来您的图像是 .因此,您不能直接调整该图像的大小。你必须使用它的背景属性来实现你所追求的。

var logoFix = function() {
      if( $(window).width() < $(window).height()  ) {
        $('.item').css('background-size','auto 100%');
      }
      else {
        $('.item').css('background-size','100%'); 
     }  
}
   $(function() {
     logoFix();
   });

如果您希望徽标大小响应手动调整窗口大小,请添加以下内容:

$(window).resize(function(){
  logoFix();
});

【讨论】:

  • 谢谢!我得到的先前答案之一回答了我的问题,但它有问题,我和你的问题一样。 jQuery 是问题所在,但是如果 (height
  • 你的意思是,如果 (height
  • 如果你粘贴你的代码,实现你想要实现的目标会容易得多,否则我们会在黑暗中冒险,到目前为止,我们还没有找到。
  • 我粘贴了所有相关代码...另外,当我尝试实现 if (height
  • 原来你的图片是&lt;div&gt;的背景。因此,您不能直接调整该图像的大小。您必须使用 &lt;div&gt; 的背景属性来实现您所追求的。以上编辑。
猜你喜欢
  • 2021-08-20
  • 2016-04-30
  • 1970-01-01
  • 2013-03-27
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
  • 2014-02-27
  • 1970-01-01
相关资源
最近更新 更多