我有一个分区(.animate
),它的box-shadow
属性正在被动画化。我希望它从右侧弹出,就像我应用于第二除法的那个(.animate2
)。请运行代码段查看动画。所需的动画由第二部门展示。
对于第二部分,我已经用:before
元素制作了所需的动画,方法是动画它的宽度和左边距。但我想要一种消除psuedo元素的方法。我有这样的代码,我试图将Widthani
的动画关键帧复制到BoxShadowani
的关键帧中,但是这两个部门的动画并不相同。我错过了什么?我的逻辑在哪里使我不及格?(关键帧后的评论解释了我的逻辑。)
这是我的代码:
null
body {
background: #222;
color: #ddd;
height: 100vh;
width: 100vw;
margin: 0;
padding: 0;
font-family: monospace;
font-size: 3em;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.Animate {
box-shadow: 600px 0px #ddd inset;
color: #222;
padding: 0 0.5em;
animation: BoxShadowAni 5.0s infinite linear;
}
.Animate2 {
color: #222;
padding: 0 0.5em;
position: relative;
}
.Animate2:before {
content: '';
position: absolute;
z-index: -1;
background: #ddd;
width: 100%;
height: 100%;
top: 0;
left: 0;
animation: WidthAni 5.0s infinite ease-in-out;
}
@-webkit-keyframes BoxShadowAni {
0% {box-shadow: 0px 0px #ddd inset;}/*Starts from left edge*/
10% {box-shadow: 600px 0px #ddd inset;}/*To grow upto the left edge*/
20% {box-shadow: -5px 0px #ddd inset;}/*To reduce in length upto the right edge*/
25% {box-shadow: -5px 0px #ddd inset;}/*To stay for a while and then bounce back*/
35% {box-shadow: -600px 0px #ddd inset;}/*Grow upto the right edge*/
45% {box-shadow: 0px 0px #ddd inset;}/*To reduce in length upto the left edge*/
100% {box-shadow: 0px 0px #ddd inset;}/*To insert a pause b4 animation loops back*/
}
@-webkit-keyframes WidthAni {
0% {width: 0px}
10% {width: 100%;left: 0;right: 0}
20% {width: 5%;left: 95%;}
25% {width: 5%;left: 95%;}
35% {width: 100%;left: 0%;}
45% {width: 0%;}
100% {width: 0%;}
}
<div class='Animate'>BoxShadow</div>
<div class='Animate2'>Width Ani</div>
null
我想问题是当你把影子换成另一个的时候。我建议你依靠多个方框阴影来实现这一点,你会有一个更好的渲染。诀窍是要确保你总是覆盖整个区域时,改变阴影。
因此,不需要从300px0px#DDD Inset
切换到-300px0px#DDD Inset
,在这里您可以执行以下操作:
300px0px#DDD插入,0px0px#DDD插入
到300px0px#DDD插入,-300px0px#DDD插入
再到0px0px#DDD插入,-300px0px#DDD插入
null
body {
background: #222;
color: #ddd;
height: 100vh;
width: 100vw;
margin: 0;
padding: 0;
font-family: monospace;
font-size: 3em;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.Animate {
color: #222;
padding: 0 0.5em;
animation: BoxShadowAni 5.0s infinite linear;
}
.Animate2 {
color: #222;
padding: 0 0.5em;
position: relative;
}
.Animate2:before {
content: '';
position: absolute;
z-index: -1;
background: #ddd;
width: 100%;
height: 100%;
top: 0;
left: 0;
animation: WidthAni 5.0s infinite ease-in-out;
}
@-webkit-keyframes BoxShadowAni {
0% {
box-shadow: 0px 0px #ddd inset, 0px 0px #ddd inset;
}
10% {
box-shadow: 300px 0px #ddd inset,0px 0px #ddd inset;
}
10.1% {
box-shadow: 300px 0px #ddd inset,-300px 0px #ddd inset;
}
10.2% {
box-shadow: 0px 0px #ddd inset,-300px 0px #ddd inset;
}
20% {
box-shadow: 0px 0px #ddd inset,-5px 0px #ddd inset;
}
25% {
box-shadow: 0px 0px #ddd inset,-5px 0px #ddd inset;
}
35% {
box-shadow: 0px 0px #ddd inset,-300px 0px #ddd inset;
}
35.1% {
box-shadow: 300px 0px #ddd inset,-300px 0px #ddd inset;
}
35.2% {
box-shadow: 300px 0px #ddd inset,0px 0px #ddd inset;
}
45%,100% {
box-shadow: 0px 0px #ddd inset,0px 0px #ddd inset;
}
}
@-webkit-keyframes WidthAni {
0% {
width: 0px
}
10% {
width: 100%;
left: 0;
right: 0
}
20% {
width: 5%;
left: 95%;
}
25% {
width: 5%;
left: 95%;
}
35% {
width: 100%;
left: 0%;
}
45% {
width: 0%;
}
100% {
width: 0%;
}
}
<div class='Animate'>BoxShadow</div>
<div class='Animate2'>Width Ani</div>
问题内容: 以任何方式在左侧和右侧(水平?)上获得盒子阴影,而没有骇客或图像。我在用: 但它给周围的阴影。 我周围没有边界。 问题答案: 注意: 我建议在下面查看@Hamish的答案;它不涉及此处所述解决方案中不完善的“掩盖”。 您可以使用多个框阴影来接近;每一侧一个 编辑 在顶部和底部的顶部再添加2个阴影,以掩盖流血的阴影。
自定义 AlertView 以及弹出动画,具有 iOS7 的扁平化风格。 [Code4App.com]
问题内容: 我有一个带标签的导航栏,我希望在打开的标签上有一个阴影,以使其与其他标签区分开。我还希望整个选项卡部分上有一个阴影(请参阅底部的水平线),以阴影除打开的所有选项卡的底部。 我将使用CSS3的属性来执行此操作,但是我无法找出仅对所需部分进行着色的方法。 通常,我会用内容区域(较高)遮盖打开的选项卡的底部阴影,但是在这种情况下,内容区域本身会带有阴影,以便最终覆盖该选项卡。 标签布局 阴影
问题内容: 用jQuery 动画 box-shadow 属性的正确语法是哪一种? 问题答案: 直接回答 使用埃德温·马丁的 jQuery插件影子动画,它扩展了方法,你可以简单地使用正常的语法与“boxShadow”的每一个方面- 颜色 ,在 x轴和y偏移 时, 模糊半径_和 _传播半径 -变得活跃起来。它包括多个阴影支持。 改用CSS动画 jQuery通过更改DOM元素的属性进行动画处理,这可能会
问题内容: 任何方法都可以在左右两侧(水平?)获得箱形阴影,而没有任何骇客或图像。我在用: 但它给周围的阴影。 我周围没有边界。 问题答案: 注意: 我建议您在下面查看@Hamish的答案;它不涉及此处描述的解决方案中不完善的“掩盖”。 您可以使用多个框阴影来接近;每一面一个 编辑 在顶部和底部的顶部再添加2个阴影,以遮盖流血的阴影。
默认情况下,一个盒子是没有阴影的,可以使用 box-shadow属性为盒子添加一个或多个阴影。语法格式为: box-shadow: [inset] x-offset y-offset blur-radius spread-distance color 每个阴影由可选的 inset 关键字、2-4 个长度值、可选的颜色值来规定。如果省略可选的长度值,则使用默认值 0。各参数的含义见表表 4