页面上元素的批量调整大小
Mass Resizing of Elements on Page
我想添加一个侧边菜单,它会弹出并占据屏幕宽度的 30%。我还希望页面上当前的所有元素都保持正确定位,但会自动缩小以适应屏幕空间损失(假设所有元素都使用视口宽度调整大小,即 vw
)。
我怎样才能通过 jQuery 大规模调整页面上每个元素的大小——或者甚至只是构建一个目标数组? (如果 jQuery 不是性能的理想选择,我会对另一种方法感兴趣,尤其是 CSS。)
不寻求深入的例子。只有一张有文字和图片 (<h1>, <p>, and <img>
)。
为清楚起见进行编辑:我将如何大量捕获页面上每个元素的大小,然后同时将所有元素减少 30%?我很好奇是否有人在这样的事情上取得了成功,以及对性能的影响是什么。我显然预计它会很糟糕,但在轻量级页面(即登陆站点)上它可能是可以容忍的。我有兴趣查看其他人的代码并 运行 通过它在 jsperf 等方面的步伐
这 suuuuper 又快又脏:
$('h1, p, img').each(function(){
$(this).width($(this).width() * .7);
$(this).height($(this).height() * .7);
$(this).css('font-size', '70%');
});
当然,jQuery 选择器可以包含您想要的任何元素类型。我包含了 font-size 位,因为我使用的 <p>
标签几乎保持不变!您也可以这样做:
$('*').each(function(){
$(this).width($(this).width() * .7);
$(this).height($(this).height() * .7);
$(this).css('font-size', '70%');
});
...但它使字体 suuuuper 变小了。 OTOH,离开 font-size 行意味着和以前一样,它实际上根本没有改变。
但这也许足以让您开始!
我认为到目前为止最简单的方法是使用转换; scale(0.7) 在某种容器上。容器的所有子项都会自动缩放。
.container {
position: absolute;
left: 30%;
top: 0px;
background-color: lightblue;
transform: scale(0.7);
transform-origin: top left;
}
.sidebar {
width: 30%;
background-color: yellow;
}
<div class="container">
<p>TEST 1</p>
<img src="http://lorempixel.com/400/200/sports/1/">
</div>
<div class="sidebar">SIDEBAR
</div>
您在 jQuery 中需要做的就是分配容器 class
我想添加一个侧边菜单,它会弹出并占据屏幕宽度的 30%。我还希望页面上当前的所有元素都保持正确定位,但会自动缩小以适应屏幕空间损失(假设所有元素都使用视口宽度调整大小,即 vw
)。
我怎样才能通过 jQuery 大规模调整页面上每个元素的大小——或者甚至只是构建一个目标数组? (如果 jQuery 不是性能的理想选择,我会对另一种方法感兴趣,尤其是 CSS。)
不寻求深入的例子。只有一张有文字和图片 (<h1>, <p>, and <img>
)。
为清楚起见进行编辑:我将如何大量捕获页面上每个元素的大小,然后同时将所有元素减少 30%?我很好奇是否有人在这样的事情上取得了成功,以及对性能的影响是什么。我显然预计它会很糟糕,但在轻量级页面(即登陆站点)上它可能是可以容忍的。我有兴趣查看其他人的代码并 运行 通过它在 jsperf 等方面的步伐
这 suuuuper 又快又脏:
$('h1, p, img').each(function(){
$(this).width($(this).width() * .7);
$(this).height($(this).height() * .7);
$(this).css('font-size', '70%');
});
当然,jQuery 选择器可以包含您想要的任何元素类型。我包含了 font-size 位,因为我使用的 <p>
标签几乎保持不变!您也可以这样做:
$('*').each(function(){
$(this).width($(this).width() * .7);
$(this).height($(this).height() * .7);
$(this).css('font-size', '70%');
});
...但它使字体 suuuuper 变小了。 OTOH,离开 font-size 行意味着和以前一样,它实际上根本没有改变。
但这也许足以让您开始!
我认为到目前为止最简单的方法是使用转换; scale(0.7) 在某种容器上。容器的所有子项都会自动缩放。
.container {
position: absolute;
left: 30%;
top: 0px;
background-color: lightblue;
transform: scale(0.7);
transform-origin: top left;
}
.sidebar {
width: 30%;
background-color: yellow;
}
<div class="container">
<p>TEST 1</p>
<img src="http://lorempixel.com/400/200/sports/1/">
</div>
<div class="sidebar">SIDEBAR
</div>
您在 jQuery 中需要做的就是分配容器 class