无限边框颜色循环
Infinite border color loop
我想有这种效果,但不是在整个主体背景上,而是在我的一个div的边界上。(http://jsfiddle.net/ANMPt/)
@-webkit-keyframes blink {
0% { background:red; }
50% { background:green;}
100% { background:red; }
}
@-moz-keyframes blink {
0% { background:red; }
50% { background:green;}
100% { background:red; }
}
@-ms-keyframes blink {
0% { background:red; }
50% { background:green;}
100% { background:red; }
}
body{
-webkit-animation: blink 1s infinite;
-moz-animation: blink 1s infinite;
-ms-animation: blink 1s infinite;
}
如何仅针对边界?
或者:如果有人有更好的解决方案,可以在CSS或JavaScript中无限循环地更改边框颜色:我洗耳恭听:-)
谢谢!
您正在将其应用于body
!为div
执行此操作
div {
-webkit-animation: blink 1s infinite;
-moz-animation: blink 1s infinite;
-ms-animation: blink 1s infinite;
}
Fiddle:http://jsfiddle.net/praveenscience/ANMPt/160/
但是,如果你说这是为了边界,那就为border-color
而不是为background
!
@-webkit-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
@-moz-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
@-ms-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
div {
-webkit-animation: blink 1s infinite;
-moz-animation: blink 1s infinite;
-ms-animation: blink 1s infinite;
border: 2px solid;
}
Fiddle:http://jsfiddle.net/praveenscience/ANMPt/167/
动画border-color
而不是background
:
@keyframes blink {
0% { border-color: red; }
50% { border-color: green;}
100% { border-color: red; }
}
body {
border: 15px solid;
animation: blink 1s infinite;
}
一些浏览器可能需要供应商前缀
演示
http://jsfiddle.net/ANMPt/162/
将其更改为边框颜色。
@-webkit-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
@-moz-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
@-ms-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
body{
-webkit-animation: blink 1s infinite;
-moz-animation: blink 1s infinite;
-ms-animation: blink 1s infinite;
border: 20px solid red; /* cant animate border without a border... */
height: 200px; / * for illustration purpose */
}
将其应用于正确的属性(border-color
而不是background
)和正确的元素(最好使用class
选择器,这样效果可以应用于任何元素,而不是仅应用于div)。
另外,不要忘记使用(始终作为最后一个)默认的@keyframe
语法,而不是带前缀的语法。
演示
HTML
<div class="animatedBorder"></div>
CSS
@-webkit-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
@-moz-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
@-ms-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
@keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
.animatedBorder{
-webkit-animation: blink 1s infinite;
-moz-animation: blink 1s infinite;
-ms-animation: blink 1s infinite;
}
div.animatedBorder{
margin: 20px;
width: 100px;
height: 100px;
border: 5px solid transparent;
}
FIX
正在为border-color
而不是background
设置动画
但是,如果您需要将此效果添加到div 中
只需在body
中添加一个div
然后将css中的background
更改为border-color
属性
演示
@-webkit-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
@-moz-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
@-ms-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
div{
border:2px solid;
width:200px;
height:200px;
-webkit-animation: blink 1s infinite;
-moz-animation: blink 1s infinite;
-ms-animation: blink 1s infinite;
}
@-webkit-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
@-moz-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
@-ms-keyframes blink {
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
}
div{
border:solid 1px red;
-webkit-animation: blink 1s infinite;
-moz-animation: blink 1s infinite;
-ms-animation: blink 1s infinite;
}
用border-color
替换所有出现的background
,然后在div元素而不是主体上使用它们。
您可能必须首先为div定义一个边界(如#000000 1px solid
)才能对其进行动画化。
http://jsfiddle.net/ANMPt/165/
您需要更改动画定义的样式:
0% { border-color:red; }
50% { border-color:green;}
100% { border-color:red; }
并为您的div定义一个边界:
#myDiv{
height: 300px;
width:300px;
border-width:5px;
border-style:solid;
-webkit-animation: blink 1s infinite;
-moz-animation: blink 1s infinite;
-ms-animation: blink 1s infinite;
}
- 使用jQuery循环遍历颜色数组
- jquery—按循环顺序更改背景颜色
- 使用jQuery对某些元素的css属性进行颜色循环,:hover卡住且不稳定
- 坚持循环通过多种颜色
- 用“for 循环”为每一秒更改颜色 ul li
- 点击元素时循环/补间颜色
- JavaScriptforeach循环遍历一个十六进制值数组,使用setTimeout循环遍历背景颜色
- 编写一个查找值并返回颜色的循环
- 循环浏览表格's td's并检查内部跨度上的内容,然后更改文本的颜色
- 无限边框颜色循环
- 通过Three.js中的getImageData像素颜色数据循环生成多个立方体
- 循环通过背景颜色(用于循环)
- 猜颜色游戏.猜对后如何停止循环
- 在列表中循环并根据项目的长度设置项目的颜色不起作用
- 如何循环通过背景颜色悬停与jQuery
- 改变循环中元素的背景,然后改变悬停的颜色
- 在一组图标之间循环使用颜色
- 为什么我的javascript不在这个while循环中改变bg的颜色?
- 更改图像滑块中每个循环的节背景颜色
- Javascript颜色小偷在jquery嵌套循环