javascript - 通过 Javascript 改变 Div 宽度

标签 javascript html css

我正在为我的美术馆制作一个网站。我需要做的部分工作是以观众可以查看的方式向他们展示图像。我希望在不降低图像质量的情况下执行此操作,或者不必以多种不同尺寸保存我的所有图像以满足每个用户的需求。

因此,我创建了一个 Javascript 函数来调整图像大小以完全适合查看者的屏幕。我的代码看起来像

<img src="[image.png]" onload="setGoodHeight(this);">

其中函数 setGoodHeight(element) 定义为:

function setGoodHeight (element) {
    if(window.innerHeight-50 < element.height) {
        var h = element.height;
        var w = element.width;
        element.height = window.innerHeight - 50;
        element.width = w * element.height / h;
    }
    if (window.innerWidth-100 < element.width) {
        var h = element.height;
        var w = element.width;
        element.width = window.innerWidth - 100;
        element.height = h * element.width / w;
    }   
}

简而言之,这首先检查图像是否高于它试图显示的屏幕,如果是(通常是),图像将调整大小以舒适地适应屏幕。然后它检查图像是否比屏幕宽,如果是,它会进一步缩小。我已验证此代码有效。

但是,图片包含在一个名为 .post 的类中我添加了这段代码:

element.parentNode.width = element.width + 40;

但是帖子不会自行调整大小。作为引用,实际网页上的代码可以归结为

<div class="post">
    <img src="[image.jpg]" onload="setGoodHeight(this);">
</div>

如果您需要多看看它,可以在 this link 找到它.

最佳答案

纯 CSS 解决方案怎么样,如果用户调整浏览器大小,它也会神奇地更新。

html, body, #fullscreen {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}

#fullscreen {
  background: url('http://www.nathanrouse.org/wp-content/uploads/2014/01/CrashTestDummy.jpg') center center no-repeat;
  background-size: cover;
}
<div id="fullscreen"></div>

查看 background-size 的文档. “包含”等其他值可能更适合您。

关于javascript - 通过 Javascript 改变 Div 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32101718/

相关文章:

javascript - 另一个ajax请求中的jquery ajax

javascript - MVC JavaScript 相对路径

jquery - 使用 JQuery 更改悬停类

css - 如何控制内联 block div 元素之间的间隙,以便允许间隙在视口(viewport)后面进行剪辑?

javascript - JavaScript 对象属性浏览器

html - 如何使文本适合页脚边距

javascript - 如何防止固定标题下的内容消失?

html - 动画高度从底部到顶部

javascript - 没有 html 元素的 AngularJS ng-repeat

javascript - 缓存函数的返回结果,来自 John Resig 的 Learning Advanced JavaScript