【发布时间】:2022-01-28 13:51:56
【问题描述】:
我正在尝试使用 CSS 和 Javascript 创建辐射圆效果。我的想法是每隔一段时间创建一个圆圈的新副本,然后在几秒钟后删除它们。
它可以在几秒钟内正常工作,但之后似乎圆圈被移除得太快了,因为它们不会超过片刻辐射。
发生了什么事?有没有更好的方法来实现前几秒的效果?
CSS
.circle {
width: 300px;
height: 300px;
border-radius: 50%;
border: 3px solid #000;
-webkit-transition: all 2s linear;
-webkit-transform: scale(0.1);
position: absolute;
top: 0;
left: 0;
}
.circle.zoom {
opacity: 0;
-webkit-transform: none;
}
Javascript
counter = 0;
function createCircle(){
// Circle ID
var circleID = "circle_" + counter;
// Add circle to document
$("body").append("<div class='circle' id='" + circleID + "'></div>");
$thisCircle = $("#" + circleID);
// add "zoom" class
setTimeout(function(){
$thisCircle.addClass("zoom");
},10);
// Remove circle
setTimeout(function(){
$thisCircle.remove();
},3000);
counter++;
}
setInterval(function(){
createCircle();
},500);
JSFiddle 演示:http://jsfiddle.net/YaKBH/9/
【问题讨论】:
-
你需要什么浏览器支持
-
Chrome、Firefox、Safari、IE 10+。
-
貌似和remove circle函数有关。如果您将 settimeout 更改为从 3000 到 30000,则在更长的时间内看起来会更好。
-
哦,是的,这一定是问题所在。它工作 3 秒,超时时间为 3000 毫秒。但我试图只针对刚刚创建的要删除的元素,而不是全部。
-
这就是我增加计数器变量的原因 - 以创建唯一 ID 并仅删除该圆形元素。
标签: javascript css css-animations