javascript - 如何动态调整 HTML 文档的大小?
问题描述
单击带有 JavaScript 的按钮后,如何动态调整 HTML 文档的大小?
transform: scale()
单击菜单按钮后,有一个“站点包装器” div 会减少。但是单击前文档的高度仍然存在。这是它的外观:
$('.hamburger').click(function(){
$(this).toggleClass('is-active');
if ($(this).hasClass('is-active')) {
$('.site-wrapper').css('transform', 'scale(0.5)');
$('.top-line').css('position', 'relative');
$('header').css('margin-top', '0');
}
else{
$('.site-wrapper').css('transform', 'scale(1)');
}
});
解决方案
所以事情transform: scale()
只是为了视觉效果而不是实际调整元素的大小。按照检查元素中的盒子模型进行确认。
所以你需要的黑客可能是
将立即包装器元素添加到.site-wrapper - (例如
.fluid-site-wrapper
)。将样式规则添加
transform-origin: top;
到.site-wrapper。- 在将 transform: scale() 规则应用于.site-wrapper时,还要降低.fluid-site-wrapper的高度,反之亦然。
这会将您的代码更改为:
$('.hamburger').click(function(){
var $fluidSiteWrapper = $('.fluid-site-wrapper');
$(this).toggleClass('is-active');
if ($(this).hasClass('is-active')) {
$('.site-wrapper').css('transform', 'scale(0.5)');
$('.top-line').css('position', 'relative');
$('header').css('margin-top', '0');
$fluidSiteWrapper.css("height",$fluidSiteWrapper.height()/2); // if scale if 0.5
}
else{
$('.site-wrapper').css('transform', 'scale(1)');
$fluidSiteWrapper.css('height, '');
}
});
我会进一步建议您使用添加/删除类来代替添加/删除内联样式。还请学习有关 jQuery 和 DOM 缓存中的链接。
推荐阅读
- python - 如何使用 set_xlabel 标记正负 x 轴?
- f# - 如何像在 C# 中一样在 F# 中进行显式重载转换?
- python - 操作 Pandas 数据框
- elasticsearch - Logstash 是否支持 Elasticsearch 的 _update_by_query?
- awk - 计算一个字符的实例数并在条件中使用它
- html - Bootstrap 4垂直对齐对我来说根本不起作用
- python - Selenium 在谷歌日历(Python)中找不到表单元素
- java - jsonrpc4j:java.net.SocketException:来自服务器的文件意外结束
- git - git push --mirror 自动添加不正确工作项的链接
- javascript - 我的 vuejs 动画/过渡滞后于路径更改。