javascript - 在保持宽高比的同时缩放 div 以填满屏幕

标签 javascript html css layout

这是我正在谈论的页面的 JSFiddle:http://jsfiddle.net/nmUuU/

我需要外部 div(带有 class="page")来扩展或收缩以填充用户的屏幕。我希望 div(显然还有它的子项)的纵横比保持不变。我试过使用 jQuery 插件,如 TextFill , 但没有成功。

我已经用一张图片做了一千次,但这次我有一个 div,里面有一堆元素。还能做吗?

编辑:似乎我可能没有强调这一点,但我希望 div 的子项也增加大小。它应该看起来好像 div 是刚刚放大的图像;内部的元素应该保持彼此之间的关系,同时扩展以填充父元素。它应该看起来像 this看起来像this (添加边框以指示屏幕边缘)。

虽然纯 CSS 总是不错,但我猜它会涉及一些 Javascript。即使只是一些建议,我们也会非常感激。

最佳答案

我认为这目前只能通过 CSS 完成,因为您需要能够读取某些元素的宽度,目前无法完成。但是既然 JS 现在对你来说没问题,你可以使用 jQuery 来做这样的事情。 :

function zoomit() {
  $("#page1").css('zoom', $(window).width() / $("#page1").width());
}

$(document).ready(zoomit);

$(window).resize(zoomit);

这是一个 jsFiddle

这是一个 jsFiddle 的最新版本不使用 zoom 但仅使用 -transform vendor 标签。

编辑:

我刚刚意识到 zoom 在 Firefox 上实际上不起作用。相反,您可以为 Firefox 使用 -moz-transform: scale(x, y); 并将 xy 设置为适当的值,这您可以按照我在上面的示例中所做的相同方式进行锻炼。

编辑2

这是 a link to w3schools一些关于 CSS 2D 转换和其他浏览器前缀的信息,正如你在评论中提到的,写一些东西来检查 width > height 和其他方式,然后基于它进行转换,应该适用于所有浏览器。如果你让它工作,请发布 jsFiddle,我会将它添加到答案中,如果你不让它工作,我很乐意试一试。

关于javascript - 在保持宽高比的同时缩放 div 以填满屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16662085/

相关文章:

javascript - 在 JavaScript 中,如果在 HTML 元素及其祖先上声明事件触发器,哪个先触发?

javascript - jQuery/Javascript 基本对象属性

html - CSS 标签定位

javascript - 如何根据单击的图像播放声音

javascript - 即使鼠标悬停在子项上也解除绑定(bind)

javascript - 创建两个日期之间的可用时间段数组

javascript - 如何在javascript中获取数组列表中的数组中的值

javascript - Ant Design 中的 Step 内嵌套下拉菜单

html - HTTP 请求未经客户端身份验证方案 'Anonymous' 授权。从服务器收到的身份验证 header 是 'NTLM’

javascript - 如何删除部分 HTML