jquery - 如何使父 div 跟随 45 度旋转子 div 的高度
问题描述
我正在尝试找到一种方法,可以让父 div 采用旋转子 div 的高度。
问题似乎在于子 div 被旋转,但父 div 知道子 div 的非旋转高度。
我需要红色盒子来覆盖整个绿色钻石。有推荐的小伙伴吗?
提前谢谢你们。
https://codepen.io/anon/pen/KOWXRB
.parent-container {
position: relative;
background: red;
}
.child-diamond {
position: relative;
width: 500px;
height: 500px;
background: #1eff00;
transform: rotate(-45deg);
transform-origin: 50% 50%;
}
<div class="parent-container">
<div class="child-diamond"></div>
</div>
更新 2:感谢 Rotem Lurx Horovitz 的建议。如果用户调整浏览器的大小,我添加了额外的 js 来重新计算 div。
$(window).resize(function () {
fixDiamondContainerHeight();
});
$(function () {
fixDiamondContainerHeight();
});
function fixDiamondContainerHeight() {
//Calculate the height of the parent div for diamond shape
let $a = $('.child-diamond').width(),
$b = $('.child-diamond').height(),
$c = Math.sqrt((Math.pow($a, 2)) + (Math.pow($b, 2)));
$('.parent-container').height($c);
}
解决方案
为了获得最大的灵活性(无论绿色正方形有多大) - 使用 javascript 来计算新高度,方法是将其视为直角三角形,并使用毕达哥拉斯定理:
如果公式是: a²+b²=c²
那么: c = √(a²+b²)
然后只需parent-container
使用 c 的值设置高度。
let $a = $('.child-diamond').width(),
$b = $('.child-diamond').height(),
$c = Math.sqrt((Math.pow($a, 2)) + (Math.pow($b, 2)));
$('.parent-container').height($c);
(示例使用 jQuery) https://codepen.io/anon/pen/jgBaVR
推荐阅读
- android - 工具栏后退按钮不会做任何事情
- java - 如何通过 Google Drive API v3 Java 使用服务帐户访问 Team Drive
- javascript - 如何按函数生成 HTML 并稍后在 JS React 中呈现
- spring-boot - pom.xml中依赖管理标签的作用是什么?
- google-apps-script - 在共享驱动器的电子表格下使用 SpreadsheetApp 的 addEditors 函数时出错
- python - 比较具有作为列表元素的值的 2 个字典以查找添加/删除的内容的有效方法
- c# - 如何从 JsonDocument 中提取具有指定名称的所有 JsonProperty 对象的所有值?
- heroku - 将 Cloudinary 与 Heroku 一起使用
- python - 无法执行“gcc-8”:没有这样的文件或目录错误:命令“gcc-8”失败,退出状态为 1. PySIT 包安装
- sql-server - 创建一个 DW,包括。星模式