【发布时间】:2015-05-05 10:16:18
【问题描述】:
我正在尝试使用 snap SVG 添加发光效果。与raphael.js 不同,我相信Snap 默认不支持发光。但是,有阴影效果。我尝试使用设置的间隔来应用阴影,以便它模仿发光的行为。但它没有按预期工作。我希望阴影淡入淡出说 4-5 次,让它看起来像发光一样。在这里,我调用了阴影,但无论将其添加到setinterval 代码中,它都会保留在那里。这是 JS FIDDLE
代码
var s = Snap("#main");
var thinkers = s.select("#lastImage");
var light = s.select("#look2");
// setinterval with counter
function setIntervalX(callback, delay, repetitions) {
var x = 0;
var intervalID = window.setInterval(function () {
callback();
if (++x === repetitions) {
window.clearInterval(intervalID);
}
}, delay);
}
// function to add glow
function addShadow() {
var f = s.filter(Snap.filter.shadow(2, 2, 10, "#ffffff"));
light.attr({
filter: f
});
}
// remove glow/shadow
function removeShadow() {
var k = s.filter(Snap.filter.shadow(0, 0, 0, "#ffffff"));
light.attr({
filter: k
});
}
setTimeout(shadow, 500)
function shadow() {
setIntervalX(addShadow, 1000, 4);
}
【问题讨论】:
-
你没有在任何地方调用 removeShadow 吗?也许我误解了你要做什么。
-
我尝试将其称为回调,但没有成功。
标签: javascript svg setinterval snap.svg glow