【发布时间】:2016-02-01 21:00:50
【问题描述】:
例如给予时a <div> box-shadow 以及旋转它会导致 box-shadow 方向的旋转 - 当 box-shadow 应该产生照明错觉时这是有问题的。
示例:https://jsfiddle.net/5h7z4swk/
div {
width: 50px;
height: 50px;
margin: 20px;
box-shadow: 10px 10px 10px #000;
display: inline-block;
}
#box1 {
background-color: #b00;
}
#box2 {
background-color: #0b0;
transform: rotate(30deg);
}
#box3 {
background-color: #00b;
transform: rotate(60deg);
}
#box4 {
background-color: #b0b;
transform: rotate(90deg);
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
#box6 {
background-color: #0bb;
animation-name: spin;
animation-duration: 2s;
animation-iteration-count: infinite;
}
<div id="box1"></div>
<div id="box2"></div>
<div id="box3"></div>
<div id="box4"></div>
<div id="box6"></div>
这个问题的答案应该类似于这个模型:
如何在旋转<div> 的同时保持盒子阴影的方向相同?
解决方案应该是纯CSS...
注意:CSS 中的动画用于演示目的。用例将使用 JavaScript 设置旋转。但是 JavaScript 对 box-shadow 一无所知,因为定义一个(或许多...)阴影是设计的责任。这就是为什么它应该是一个纯 CSS 解决方案。
【问题讨论】:
-
它按你的意愿工作
-
如果没有某种 javascript 库和大量数学运算,这可能会非常困难,因为浏览器没有任何类型的光源
-
@zgood 你可能在想我在想什么,但我们都误解了 OP。如果您查看 web-tiki 提供的答案,我认为这就是 OP 想要的
标签: html css css-animations css-transforms