我们现在都知道,特别是那个不错的文章,我们应该更喜欢CSS-Transforms来动画位置. ,但我们在translate()和translate3d() ... 之间做出了选择 哪个是一般 解决方案 下面的本网站运行的测试比较translate(),translate3d()和其他几个属性.据此,translate3d()在大多数浏览器中都更快. http://jsperf.com/translate3d-vs-xy 其他解决方案 使用Translate3D的使用将CSS动画推入硬件加速度.即使您想进行基本的2D翻译,也使用Translate3D以获取更多功能!因此," T3D"效果更好,因为它告诉CSS动画以3D功率推动动画! 这就是为什么它更快的原因. (卡梅隆的答案很少是证明) 其他解决方案 正如卡梅隆建议的translate3d时,在许多浏览器中应该更快,大多数是那些使用GFX硬件加速度来加快渲染加速的浏览器.尤其是在webkit trans
以下是关于 css-transforms 的编程技术问答
我正在CSS3实验中将10,000个小元素从浏览器视口的顶部移动到底部.对于此测试,我使用两种不同的方法: 使用GPU加速使用translate3D(x, y, z)或translateZ(0) 通过简单地调整CSS 中的top属性,没有GPU加速 使用 no 硬件加速器在Google Chrome上运行相当光滑. 如果我启用硬件加速性能会变得更糟.太糟糕了,盒子甚至不再均匀地散开: 使用GPU/硬件加速度: 没有GPU/硬件加速度: 问题 为什么是这样?不应该使用GPU改善性能吗? 演示应用程序 来源 https://github.com/valnub/hwtest 我用于测试的硬件 Apple Macbook Pro 15" 2015型号 CPU 2,8 GHz Intel Core i7 16 GB RAM MacOS Big Sur 11.2 更新(2014-11-13):由于这个问题仍然引起
我正在尝试获得纯CSS视差效应,而无需具有固定的背景高度.这在少数 ploces ,但它们具有共同的约束,即背景层必须具有固定的,已知的高度./p> 我想在没有固定的,由于某些动态内容而具有固定的,已知的高度的效果. 我的最小示例在这里: https://jsfiddle.net/yf8oyben/ 在 #container { position: fixed; top: 0; left: 0; right: 0; bottom: 0; perspective: 1px; overflow-x: hidden; overflow-y: scroll; } .background { transform: translateZ(-1px) scale(2); width: 100%; background: lightgreen; height: 250px; /* Assumes bg heig
如何使用水平 css仅视频效应? 引导站点 要求 CSS仅视差 父层必须具有宽度/高度== 100VW/100VH 儿童层必须具有宽度/高度> 100VW/100VH 儿童层必须在视觉上与父层宽度100%保持一致 现在,从技术上讲,孩子层确实有100%的父母宽度,但由于perspective,它们在视觉上似乎不占100%的父母宽度 儿童层(第一个除外)必须相对于其父 具有最高的偏置 结果必须基于计算才能具有最大的灵活性 必须是交叉浏览器固体(至少最新版本的专业版) 我到目前为止所做的 实际上,这个问题是>后续问题. 这是我目前在 css . 工作模拟示例(jQuery) 在javascript中,实现我要寻找的东西非常简单.笔模拟我想模仿CSS的效果. 已经知道的问题 我现在最关心的问题是事实,浏览器似乎以不同的方式呈现这种情况.请参阅浏览器窗口(Chrome vs ff)的屏幕截图,滚动到下面的右下角.但我希望这可以避
与父母perspective>(关键字:" parallax")相对于其父母的宽度/高度,用translateZ内部计算带有translateZ的子元素的宽度/高度的配方是什么? 我想创建一个对两个轴都具有视差效应的站点.除了一件事,我能够弄清楚我所需的所有样本所需的一切.当儿童宽度/高度以上时,如何计算其高于100%的宽度/高度. 因为父母的观点和儿童翻译而翻译儿童宽度/高度在视觉上不再与父母的宽度/高度保持一致. 缩放子元素的形式是:1 + (translateZ * -1) / perspective.但是我找不到宽度/高度的公式.顺便说一句:当儿童宽度/高度 但是,当 width> = 100%时,请参见下图上图的结果(容器具有最高的偏移以使事物可见). 在我的特殊情况下要正确的方法是让所有子元素在视觉上具有相同的宽度/高度. 在sass(首选)中: pen 或笔 从规格的链接可以有所帮助: tr/css-transforms-1/#重新组合到-A
查看示例,当您单击元素时,它会从front到back旋转,问题是它不是在中心旋转,就像是不平衡的,将鼠标保持在front侧的左边框,单击元素,然后查看back端的位置现在如何关闭.它们应该位于完全相同的位置. 我注意到,当我卸下填充/边框/边框时,它会旋转良好,但是我需要在那里填充填充物和边框.有没有办法用填充和边框来执行此操作 - 以便它会绕中间旋转,而不是向侧面旋转? 解决方案 内部divs(#card div)太宽(235 + 50 + 2)和/或#card太窄(245).您必须在总宽度上添加填充和边框,或者或使用 box-sizing: border-box box-sizing: border-box (带有供应商前缀). 其他解决方案 您可以通过在"翻转" Div. #card .back { background: #DDD; margin-left: -40px; -webkit-transform: rotateY( 180deg )
我最近遇到了一个奇怪的事情.我将其设置为一个元素,然后我想用translate()转换其中的元素,当它以负面的方向翻译时,它将被隐藏,但是如果我朝着积极的方向翻译,它将不会被隐藏.在桌面浏览器中,它并没有真正显示出来,但是您可以通过一些鼠标工作来达到它.在移动设备上只是卷轴,所以这是最糟糕的. 这是一个显示它的示例: http://csssizer.com/klhlpshw 解决方案 所以我整天都在处理类似的事情,并意识到当我有 时 html, body {overflow:hidden; } ...如果我添加position:absolute,position:relative或position:fixed在HTML和身体中,它将解决问题. 其他解决方案 我将所有内容包装在容器Div中,并使用以下代码包装.在两个方向上明确设置溢出.这可以防止X轴在iOS Safari中滚动,即使在主内容区域的右侧翻译了元素. 但是,除非您添加-webkit-ove
我尚不完全清楚CSS转换如何影响文档的流程布局和元素的定位.根据有关MDN和W3C的文档,CSS变换不会干扰流布局: 来自 mdn上的mdn我的): 通过修改坐标空间,CSS会改变受影响内容的形状和位置而不会破坏正常文档流量. 因此,如果我们翻译一个元素,原始流程布局应保持完整,转换的结果应纯粹是视觉效果. 一个琐碎的例子如下: .container { background: white; margin: 0 auto; border: 1px solid grey; } .block { width: 100%; height: 100px; } .blue { background: blue; } .red { background: yellow; } .transform { transform: translateY(-200%); }
我的日期用php和吐出作为图像计算出的日期,读取诸如2月26日,3月3日等诸如字符长度明显不同的日期,我希望这些图像匹配特定的字体大小. 我遇到的问题是使这一切都符合网格,该网格响应灵敏,因为图像不会随着转换的网格而扩展.如果我在某个时候为网格设置了最大宽度,那么大图像逐渐捕捉到较小的图像,它们都变成相同的宽度,使字体大小出现. 有一个全局的IMG最大宽度:100%集,我从phpimages中删除了恢复.顺便说一句,我也必须在纯CSS中进行此操作,因为它是eBay列表,因此不允许JS.我希望这些图像能够响应地缩放,但我希望它们保持字体大小实际上,所以无论单词多长时间看起来都正确. img {max-width: 100%} .rounded-box { display: block; position: relative; z-index: 0; box-sizing: border-box; overflow: hidden; backgroun
我有一些元素
旋转转换样式 -webkit-transform: rotateX(-1100deg); 有没有一种方法可以从计算样式获得精确的(-1100)旋转角度? window.getComputedStyle返回matrix3d. var element = document.getElementById('element'), cs = getComputedStyle(element), matrix = new WebKitCSSMatrix(cs['-webkit-transform']); 但是如何从此矩阵中检索旋转角度? 我需要计算的样式,因为我试图在元素过渡过程中获得角度. 解决方案 我找不到一种简单的方法,但是借助本文我设法获得了值(一种). var myElement = document.getElementById('element');
我正在尝试使用输入/标签的组合创建一个3D动画滑块,以触发单击的过渡,但在Mozilla Firefox中不起作用. 它在铬中的工作原理很好,但是在Mozilla,当我单击 时,卡之间没有过渡 https://codepen.io/panfilov/panfilov/pen/pen/gogjvy * { margin: 0; padding: 0; } body { padding: 20px; background: #eee; user-select: none; } [type=radio] { display: none; -webkit-perspective:1000px; -moz-perspective:1000px; } #slider { height: 35vw; position: relative; perspective: 1000px; transform-style: pre
因此,基本上我想拥有一张手持卡的透明图像,然后我想在曲线上显示卡片,例如当您手中握住10张卡片时(当然不是修复10张卡片).因此,它们应该放在弯曲的圆顶上. 我正在Angular工作,我知道我必须通过位置绝对和转换来实现这一目标:翻译rotate CSS,只是不知道 如何 我还使用Bootstrap,因此该卡的图像应在Col-12中,并在较小的屏幕上兼容. 我只有一个我从一个将元素放置在圆圈中的家伙中的代码部分 - bootstrap 3将元素对准圆 我试图玩翻译和旋转,但无法正常工作 解决方案 这是我接近它的方式.这里有很多事情发生,但基本上是 设置一个整体宽度以与 一起工作 使用预定义的卡和总角度津贴 使用数学分配和倾斜卡片 使用transform-origin: bottom center;给出效果 let cards = document.querySelector('.cards'); let w = cards.offsetWidth; l
动画为什么会更改z索引? 如果您查看JSFIDDLE,您会看到红色图像在顶部,但是如果您评论动画,则蓝色图像在顶部.即使使用动画,我如何才能使蓝色图像始终处于顶部? html CSS .red { -webkit-animation-name: red; -webkit-animation-duration: 2s; -webkit-animation-iteration-count: infinite; animation-name: red; animation-duration: 2s; animation-iteration-count: infinite; } .blue {
我在codepen上看到了这个动画,我不知道为什么会以这种方式写下这种效果,但是我认为它将具有旋转360级旋转的效果左右 我对这些密钥帧动画感到特别困惑 @keyframes move{ from { transform: rotate(360deg) translateX(1.125em) rotate(-360deg); } to { transform: rotate(-360deg) translateX(1.125em) rotate(360deg); } } 结果以下 https://i.stack.imgur.com/9ownw.gif 解决方案 来自 如果从和到转换具有相同数量的变换函数, 每个变换函数对具有相同的名称,或者是 相同原始的衍生物:插值每个变换函数 对转换函数的插值中的描述.这 计算值是最终的变换函数列表. 因此,浏览器将将第一个rotate从360deg更改为
首次使用Perspective和Translatez合作,我遇到了Safari的问题. 我正在使用代码为我正在构建的站点创建一个简单的视差效果,该网站在Firefox和Chrome中正常工作,但在Safari中却没有. Safari似乎正在将填充物添加到应用透视属性的容器底部,而这些属性发生在另一个上述浏览器上. 我已经看了野生动物园的调试工具,以查看是否在任何地方都添加了任何填充物或边距,但事实并非如此.我将在下面附加代码,以演示所需的一些图像和不希望的行为. 提前欢呼. 所需的行为: 不希望的行为: @import url('https://fonts.googleapis.com/css?family=Staatliches&display=swap'); body, html { margin: 0; padding: 0; font-family: 'Staatliches', cursive; -webkit-m
我有以下 setTimeout(function(){ var sections = document.querySelectorAll('section'), main = document.querySelector('.grid-container'), //section = sections[Math.floor(Math.random() * 3)]; section = sections[1]; section.classList.add('expand'); section.parentElement.classList.add('expand'); main.classList.add('expanding'); }, 2000); *{ box-sizing : border-box; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
我尝试使用边框半径创建此CSS形状(功能区),但我无法做到,我能够获得的曲线与图像中的DIV曲线完全不匹配. background: #008712; width: 89px; height: 22px; box-shadow: #d0dae0; background-color: #008712; border-bottom-left-radius: 70px; } 如果我正确地解决了解决问题的正确曲线,我希望避免使用SVG. 解决方案 使用伪元素与某些偏斜转换: .box { width:200px; padding:8px; font-size:25px; color:#fff; position:relative; overflow:hidden; text-align:right; z-index:0; } .box:before { content:""; positi