剪辑动画 div
Clipping an animated div
我正在尝试使用 CSS 中的动画创建一个不错的旧 CRT "tv" 效果,但是在预期 div 上方和下方显示的扫描线存在一些问题。
我所拥有的是一个包含 4 个 div 的着陆页,link 到网站的其他区域。第 2 个 div 是 "TVs",每个背景都有显示 link.
内容的 "tv"(静态图像)
在桌面或其他较大的屏幕上,4 div 显示为 2x2,在较小的屏幕上显示为 1x4 格式。
我创建了一个图像,将使用 css 进行动画处理,以伪造移动扫描线在第 2 div 秒内移动。
发生的事情是 "scanlines" 出现在 "TVs" 上方并移动到 "TVs" 下方。
你可以在 JSFiddle 上看到发生了什么:
http://jsfiddle.net/blyzz/ynekxcud/2/
这是一些经过清理的 HTML 代码:
<a href="URL1" target="_blank">
<div class="content" id="outside">
<div class="scanlines">
<div class="aniscan" id="aniscanout">
</div>
<div class="aniscan" id="aniscanout2">
</div>
</div>
</div>
</a>
<a href="URL2" target="_blank">
<div class="content" id="inside">
<div class="scanlines">
<div class="aniscan" id="aniscanin">
</div>
<div class="aniscan" id="aniscanin2">
</div>
</div>
</div>
</a>
以及随附的已清理 CSS:
.content{
width: 300px;
min-width: 300px;
height: 125px;
min-height: 125px;
float:left;
margin: 5px;
border: 3px solid #555555;
z-index: -100;
}
.scanlines{
width: 100%;
height: 100%;
background-repeat: repeat;
z-index: 100;
}
.aniscan{
width: 100%;
height: 100%;
background-image: url('http://www.oocities.org/~special_effect/holo_scanlines.jpg');
background-repeat: repeat-x;
z-index: 200;
position: relative;
opacity:0.6;
}
#inside {
background-image: url('http://www.clipartbest.com/cliparts/xig/7rM/xig7rMriA.png');
border-radius: 0px 15px 0px 0px;
}
#outside{
background-image: url('http://cdn.graphicsfactory.com/clip-art/image_files/image/6/1347556-2587-Royalty-Free-Dog-With-Big-Bone-In-Mouth.jpg');
border-radius: 15px 0px 0px 0px;
}
#aniscanin{
-webkit-animation: mymove 5.2s linear infinite;
-moz-animation: mymove 5.2s linear infinite;
-o-animation: mymove 5.2s linear infinite;
animation: mymove 5.2s linear infinite;
}
#aniscanin2{
-webkit-animation: mymoveb 5.2s linear infinite;
-moz-animation: mymoveb 5.2s linear infinite;
-o-animation: mymoveb 5.2s linear infinite;
animation: mymoveb 5.2s linear infinite;
}
#aniscanout{
-webkit-animation: mymove 4.8s linear infinite;
-moz-animation: mymove 4.8s linear infinite;
-o-animation: mymove 4.8s linear infinite;
animation: mymove 4.8s linear infinite;
}
#aniscanout2{
-webkit-animation: mymoveb 4.8s linear infinite;
-moz-animation: mymoveb 4.8s linear infinite;
-o-animation: mymoveb 4.8s linear infinite;
animation: mymoveb 4.8s linear infinite;
}
@-webkit-keyframes mymove {
0% {top: -125px;}
100% {top: 0px;}
}
@keyframes mymove {
0% {top: -125px;}
100% {top: 0px;}
}
@-webkit-keyframes mymoveb{
0% {top: -125px;}
100% {top: 0px;}
}
@keyframes mymoveb {
0% {top: -125px;}
100% {top: 0px;}
}
我考虑过在 2 台电视上方和下方制作一个具有更高 z-index div 的 "window",但它在响应式设计中效果不佳。
如有任何帮助,我们将不胜感激!
P.S。如果我也能在圆角后面得到扫描线,那就太好了,但这并不是真正的交易破坏者——我总是可以删除圆角。
您的 .content
class 中需要 overflow: hidden
:
像这样:
.content{
width: 300px;
min-width: 300px;
height: 125px;
min-height: 125px;
float:left;
margin: 5px;
border: 3px solid #555555;
z-index: -100;
overflow: hidden;
}
Fiddle:
http://jsfiddle.net/ynekxcud/3/
我正在尝试使用 CSS 中的动画创建一个不错的旧 CRT "tv" 效果,但是在预期 div 上方和下方显示的扫描线存在一些问题。
我所拥有的是一个包含 4 个 div 的着陆页,link 到网站的其他区域。第 2 个 div 是 "TVs",每个背景都有显示 link.
内容的 "tv"(静态图像)在桌面或其他较大的屏幕上,4 div 显示为 2x2,在较小的屏幕上显示为 1x4 格式。
我创建了一个图像,将使用 css 进行动画处理,以伪造移动扫描线在第 2 div 秒内移动。
发生的事情是 "scanlines" 出现在 "TVs" 上方并移动到 "TVs" 下方。
你可以在 JSFiddle 上看到发生了什么: http://jsfiddle.net/blyzz/ynekxcud/2/
这是一些经过清理的 HTML 代码:
<a href="URL1" target="_blank">
<div class="content" id="outside">
<div class="scanlines">
<div class="aniscan" id="aniscanout">
</div>
<div class="aniscan" id="aniscanout2">
</div>
</div>
</div>
</a>
<a href="URL2" target="_blank">
<div class="content" id="inside">
<div class="scanlines">
<div class="aniscan" id="aniscanin">
</div>
<div class="aniscan" id="aniscanin2">
</div>
</div>
</div>
</a>
以及随附的已清理 CSS:
.content{
width: 300px;
min-width: 300px;
height: 125px;
min-height: 125px;
float:left;
margin: 5px;
border: 3px solid #555555;
z-index: -100;
}
.scanlines{
width: 100%;
height: 100%;
background-repeat: repeat;
z-index: 100;
}
.aniscan{
width: 100%;
height: 100%;
background-image: url('http://www.oocities.org/~special_effect/holo_scanlines.jpg');
background-repeat: repeat-x;
z-index: 200;
position: relative;
opacity:0.6;
}
#inside {
background-image: url('http://www.clipartbest.com/cliparts/xig/7rM/xig7rMriA.png');
border-radius: 0px 15px 0px 0px;
}
#outside{
background-image: url('http://cdn.graphicsfactory.com/clip-art/image_files/image/6/1347556-2587-Royalty-Free-Dog-With-Big-Bone-In-Mouth.jpg');
border-radius: 15px 0px 0px 0px;
}
#aniscanin{
-webkit-animation: mymove 5.2s linear infinite;
-moz-animation: mymove 5.2s linear infinite;
-o-animation: mymove 5.2s linear infinite;
animation: mymove 5.2s linear infinite;
}
#aniscanin2{
-webkit-animation: mymoveb 5.2s linear infinite;
-moz-animation: mymoveb 5.2s linear infinite;
-o-animation: mymoveb 5.2s linear infinite;
animation: mymoveb 5.2s linear infinite;
}
#aniscanout{
-webkit-animation: mymove 4.8s linear infinite;
-moz-animation: mymove 4.8s linear infinite;
-o-animation: mymove 4.8s linear infinite;
animation: mymove 4.8s linear infinite;
}
#aniscanout2{
-webkit-animation: mymoveb 4.8s linear infinite;
-moz-animation: mymoveb 4.8s linear infinite;
-o-animation: mymoveb 4.8s linear infinite;
animation: mymoveb 4.8s linear infinite;
}
@-webkit-keyframes mymove {
0% {top: -125px;}
100% {top: 0px;}
}
@keyframes mymove {
0% {top: -125px;}
100% {top: 0px;}
}
@-webkit-keyframes mymoveb{
0% {top: -125px;}
100% {top: 0px;}
}
@keyframes mymoveb {
0% {top: -125px;}
100% {top: 0px;}
}
我考虑过在 2 台电视上方和下方制作一个具有更高 z-index div 的 "window",但它在响应式设计中效果不佳。
如有任何帮助,我们将不胜感激!
P.S。如果我也能在圆角后面得到扫描线,那就太好了,但这并不是真正的交易破坏者——我总是可以删除圆角。
您的 .content
class 中需要 overflow: hidden
:
像这样:
.content{
width: 300px;
min-width: 300px;
height: 125px;
min-height: 125px;
float:left;
margin: 5px;
border: 3px solid #555555;
z-index: -100;
overflow: hidden;
}
Fiddle: http://jsfiddle.net/ynekxcud/3/