CSS Transform Math - 计算倾斜引起的div高度

2024-02-17

我很难弄清楚如何计算因倾斜而导致的 div 容器的额外高度。我正在屏蔽容器内的图像并使用plugin http://christianvarga.com/2011/05/jquery-resize-image-to-parent-container-plugin/.

容器并不总是具有相同的高度和宽度,因此使用固定尺寸是行不通的。

请看我的demo http://jsfiddle.net/RyU9W/6/. http://jsfiddle.net/RyU9W/6/ http://jsfiddle.net/RyU9W/6/

HTML

<div id="profiles" class="container">
        <div class="profile">
            <div class="image">
                <img src="http://placekitten.com/g/750/750" alt="">
            </div>
            <div class="detail">
            </div>
        </div>
        <div class="profile">
            <div class="image">
                <img src="http://placekitten.com/g/750/750" alt="">
            </div>          
            <div class="detail">
            </div>
        </div>        
        <div class="profile">
            <div class="image">
                <img src="http://placekitten.com/g/750/750" alt="">
            </div>          
            <div class="detail">
            </div>
        </div>
        <div class="profile">
            <div class="image">
                <img src="http://placekitten.com/g/750/750" alt="">
            </div>          
            <div class="detail">
            </div>
        </div>        
        <div class="profile">
            <div class="image">
                <img src="http://placekitten.com/g/750/750" alt="">
            </div>          
            <div class="detail">
            </div>
        </div>
        <div class="profile">
            <div class="image">
                <img src="http://placekitten.com/g/750/1200" alt="">
            </div>          
            <div class="detail">
            </div>
        </div>            
</div>

CSS

#profiles {
    margin-top: 300px;
    transform:skewY(-30deg);
    -ms-transform:skewY(-30deg); /* IE 9 */
    -webkit-transform:skewY(-30deg); /* Safari and Chrome */    
}
.profile {
    cursor: pointer;
    float: left;
    width: 32.25%;
    margin: 0.5%;
    position: relative;
}
.profile .image {
    position: relative;
    overflow: hidden;
    height: 400px;
    background: #000;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden; /* Chrome and Safari */
    -moz-backface-visibility:hidden; /* Firefox */
    -ms-backface-visibility:hidden; /* Internet Explorer */     
}
.profile .image * {
    position: relative;
    transform:skew(0deg,30deg);
    -ms-transform:skew(0deg,30deg); /* IE 9 */
    -webkit-transform:skew(0deg,30deg); /* Safari and Chrome */         
}

In skew we have a case of Right-angled triangle and the skew new width is equal to "Opposite" and we've the angle and the opposite so by this equation we can get the adjacent Opposite = Adjacent * tan(angle); Where opposite in case of skewX is the div height and in case of skewY will be the div width

检查这个https://codepen.io/minaalfy/pen/exgvjb https://codepen.io/minaalfy/pen/exgvjb

function calculateSkew(){
  var el = document.getElementById('bluebox');
  var skewX = document.getElementById('skewX');
    skewX.value = skewX.value || 0;
  var skewY = document.getElementById('skewY');
    skewY.value = skewY.value || 0;
    
  var yRadians = skewY.value * Math.PI / 180;
  var newHeight = el.offsetWidth * Math.tan(yRadians);
  var calculatedHeight = el.offsetHeight + newHeight;
  
  var xRadians = skewX.value * Math.PI / 180;
  var newWidth = calculatedHeight * Math.tan(xRadians);
  var calculatedWidth = el.offsetWidth + newWidth;
  
  el.style.transform = ("skewX(" + skewX.value + "deg ) skewY(" + skewY.value  + "deg )");
  var output = document.getElementById('output');
  output.innerHTML = "skewY by "+skewY.value+ " and new height calculated is "+calculatedHeight+ "<br> skewX by "+skewX.value+ " and the new calculated width is "+ calculatedWidth;
}
body {text-align:center}
#bluebox {width:100px;height:100px;background:blue;margin: 20px auto;}
<h4>Enter any numeric value for skewX or skewY to calculate the new width&height for the box</h4>
<div id="bluebox"></div>
<input type="number" placeholder="skewX" id="skewX" onkeyup="calculateSkew()" />
<input type="number" placeholder="skewY" id="skewY" onkeyup="calculateSkew()" />
<h1 id="output"></h1>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS Transform Math - 计算倾斜引起的div高度 的相关文章

  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • 通过 JavaScript 单击按钮/页面提交

    我想了解 asp net 框架如何知道何时单击了按钮 因此一旦收到请求 就会在服务器上触发其单击事件 我需要了解它是如何工作的 因为我想从 JavaScript 触发按钮的服务器单击事件 我能够从 JavaScript 执行页面提交 doc
  • iphone jquery 移动闪烁问题

    我在 iPhone 上使用使用 jQuery mobile 开发的应用程序时遇到闪烁问题 我尝试了互联网上提供的几种解决方案 包括 CSS 更改 将过渡设置为 无 甚至在 jquerymobile js 中注释代码 但没有运气 我使用的 J
  • JQuery 菜单图标 RTL

    我正在尝试在阿拉伯语 RTL 页面中使用 jQuery 菜单 我可以将其设为 RTL 但图标应该是ui icon carat 1 w not ui icon carat 1 e 我创建jsfiddle在这里 http jsfiddle ne
  • Angular 4 Http POST 不起作用

    我希望每个人都做得很好 我最近开始使用 Angular 4 4 我一直在尝试将数据发布到我的 api 服务器 但不幸的是它不起作用 我花了大约两天的时间 但仍然没有成功 甚至已经尝试过 6 7 篇文章角 io https angular i
  • ES6 模块范围

    我有代码 lib js var a a export var b b main js console log a a variable is not available in a global scope import b from lib
  • 在反应中访问回调内的 event.target

    我有以下课程片段 constructor props super props this timeout null search e gt clearTimeout this timeout this timeout setTimeout f
  • 轮播滑动(未滑动)事件上的火灾事件,Bootstrap 3

    Bootstrap 2 似乎可以很好地处理幻灯片事件 请参阅这个问题 https stackoverflow com questions 9651466 how to attach slide slid events to the boot
  • WordPress 子主题包括包含文件

    我在一家WordPress使用 AMPPS 作为本地主机在我的本地计算机上进行设置 使用 Delta 主题 我创建了一个子主题 delta2 child 初始设置效果很好 但是 我需要更改包含文件夹中名为 home slider php 的
  • 使用flex-basis控制行上显示的项目数

    我想在使用 Flex 时将元素推出以隐藏它们 例如 如果flex basis为 50 仅显示两个项目弯曲到给定空间 而其他元素则在overflow hidden 领土 Or if flex basis为 25 则仅显示 4 个 Flex 元
  • 当php脚本通过ajax运行时显示进度条

    我有一个通过 ajax 向服务器提交值的表单
  • 如何在 React Native 中使用相同的 Firebase 数据库在两个应用程序之间进行通信?

    我有两个不同的应用程序使用相同的实时数据库 在第一个应用程序中 我发送的订单包含一些要保存在数据库中的数据字段 在另一个应用程序中 我只添加一个侦听器 firebase database ref userOrder currentUser
  • 为什么这些内联块元素会产生额外的宽度?

    这是这个问题的后续内容 仅使用 css 自动调整图像下的文本 https stackoverflow com questions 34185547 autofit text under image with only css 为什么这段代码
  • 选择子元素但不选择孙元素

    我有以下简化的代码 div p text p div div p text p div div p text p div div p text p div 每当我设置一些值时 content pCSS 文件中的元素 更改也适用于 col1
  • Graphql 将多个查询合并(组合)为一个?

    我正在尝试使用 JavaScript 将多个 GraphQL 查询合并为一个查询 我正在寻找这样的东西 let query3 mergeQueries query1 query2 我们事先不知道哪些查询将被组合 假设我有这样的查询 输入查询
  • 将 html 文本框的值分配给 div 的标题

    line 1
  • 从更多元素中仅获取唯一名称

    我动态渲染了 HTML 其中列出了未确定数量的单选按钮 这些按钮的名称代表数据库中的某些 id 我需要收集收音机的所有唯一名称 这是一个例子
  • 如果 POST 响应仅包含 ID,如何将数据保存到我的 Ember 存储?

    Ember 数据期望我的服务器在每次成功后返回完整的对象POST 但是 我的 API 只返回一种元对象 其中包含id 当 Ember 收到此对象时 记录中的现有数据将被删除 除了id 例如 当我这样做时 var asset App Asse
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h
  • JavaScript 阶乘防止无穷大

    我一直在 JavaScript 中使用这个函数来计算阶乘数 var f function factorial n if n 0 n 1 return 1 if f n gt 0 return f n return f n factorial

随机推荐

  • 这是什么意思?

    我安装了 pychecker 并注意到我应该用来运行 pychecker 的批处理文件包含以下条目 C Python26 python exe C Python26 Lib site packages pychecker checker p
  • 运行 Angular e2e 测试时如何禁用或绕过 MSAL 身份验证?

    我想为我的 Angular 应用程序设置一些端到端测试 这需要使用 MSAL 库对某些下游服务进行身份验证 当我尝试在本地运行 e2e 测试时 MSAL 库强制我使用用户名 密码进行身份验证 这是一个问题 因为我们的 CI CD e2e 测
  • 来自谷歌云存储的文件列表

    对于我正在做的一个项目 我将文件存储在 Google 的云存储中 并正在构建一个网络应用程序来连接这些文件 我希望我的应用程序显示存储在我的存储桶中的文件列表 或对象可能是适当的名称 我对网络开发和谷歌 API 完全陌生 我一直在研究如何做
  • 如何在 Gradle 中启用自动下载缺少的 Android SDK 包

    2016 年 Google I O 大会期间Android 开发工具的新增功能 https www youtube com watch v csaXml4xtN8很快就提到了一个很棒的新功能 Android Gradle 插件现在可以自动从
  • 我可以扩展参数包并用它定义参数列表吗?

    From 温度变量 http eel is c draft temp variadic 4 工作草案 在我看来 可以在定义另一个模板类或函数的参数列表时扩展参数包 考虑下面的类 template
  • 如何在 Aptana Studio 的文本编辑器中激活自动换行?

    如何在 Aptana Studio 的文本编辑器中激活换行 我对在视图模式下换行感兴趣 以便不必进行水平滚动 尝试在编辑器中右键单击并从上下文菜单中选择 自动换行
  • HTML5网页是否可以接受手写笔输入

    我想创建一个网页 用户可以在其中使用手写笔书写签名 就像您签署包裹或包裹时一样 有谁知道这是否可能 我不确定从哪里开始 但我猜我必须使用元素和 javascript 只要您的客户使用的设备支持使用手写笔进行触摸输入 就完全有可能 你可以看到
  • 是否可以在 Lambda 触发器中修改 AWS Cognito 用户属性

    查看AWS文档 https docs aws amazon com cognito latest developerguide cognito user identity pools working with aws lambda trig
  • 覆盖 jOOQ 对 UpdatableRecords 的异常处理

    我使用的是 jOOQ v2 6 因为我使用的是 SQL Server 2008 R2 并且 jOOQ v3 1 中存在一个错误 导致代码生成失败 我知道这将在 v3 2 中修复 从手册中 Create a new record BookRe
  • scenebulider 无法打开 fxml 文件

    我正在 JavaFX 中创建一个应用程序 我在打开场景构建器时收到此错误 无法打开 Loggin fxml 打开操作失败 请确保所选文件是有效的 fxml 文档 单击 显示详细信息 它向我显示了此错误 java io IOException
  • 如何将二进制值字符串转换回 char

    Example 注意 我只关心字母 所以位集 000001 是a or A 我有一个string named s与价值 abc 我把每一个char of the string并将其转换为二进制值通过 指某东西的用途bitset e g bi
  • (自定义)RestAuthenticationProcessingFilter 排序的异常

    我尝试将令牌的 Rest 身份验证添加到我的应用程序中 我创建了一个简单的过滤器 不执行任何其他操作来打印消息 public class RestAuthenticationProcessingFilter extends GenericF
  • Justadistraction:标记化没有空格的英语。村上羊人

    我想知道如何you如果删除空格 会用英语 或其他西方语言 对字符串进行标记吗 这个问题的灵感来源于村上小说 羊人 中的角色舞蹈 舞蹈 舞蹈 http en wikipedia org wiki Dance Dance Dance 在小说中
  • 如何将本地数据库复制到heroku?

    我正在开发一个简单的 Rails 基于 activeRecord 应用程序 并且正在本地进行测试 现在是时候转移到网上了 但是 我需要在应用程序的数据库中再次插入所有记录吗 我希望不是 你知道是否可以复制我的整个本地数据库并将其导入到her
  • 透明 ViewController 可以看到下面的父级吗?

    我想以模态方式添加一个具有透明背景的视图控制器 以便可以看到下面的父视图控制器 这是适用于 iPhone 的应用程序 不适用于 iPad 我已经尝试过这个 TextFieldViewController vc self storyboard
  • 计算布尔数组中真(或假)元素的数量?

    假设我有一个充满布尔值的数组 我想知道有多少元素为 true private bool testArray new bool 10 true false true true false true true true false false
  • Firebase .get() 与 .once() - 有什么区别?

    文档here https firebase google com docs database web read and write read data once with get但我不明白 get 和 once 有什么区别 我的理解是 ge
  • iPhone - 将选定的单元格移动到 uitableview 的顶部

    我寻找这个问题 但我不相信我能找到答案 我有一个自定义单元格的表格视图 单击该单元格时 所选单元格会推送包含信息的新单元格 我想知道是否有人知道如何将选定的单元格推到 uitableview 的顶部 或者让它填满整个表格视图 我的 uita
  • 将嵌入的视频资源作为流播放

    EDIT 我改变了我的问题以更好地澄清问题 如何使用字节数组 取自嵌入式资源 播放视频DirectShow Net http directshownet sourceforge net about html图书馆 由于我要阻止用户访问视频文
  • CSS Transform Math - 计算倾斜引起的div高度

    我很难弄清楚如何计算因倾斜而导致的 div 容器的额外高度 我正在屏蔽容器内的图像并使用plugin http christianvarga com 2011 05 jquery resize image to parent contain