0

好的,所以我制作了一个计时器,当我的 SVG 地图的某些部分越过某些阈值时,它们就会淡出。但是,我想弄乱 CSS 的其他部分。

我看了这篇文章,但就我的问题而言无法理解。

**以下编辑**

感谢您的帮助,我查看了我的代码并尝试清除一些不需要的东西。我还重组了我的 if 语句,将它放在 JQuery 代码中。我尝试了下面的建议,在间隔函数之外分配 var 计时器,但是我的开始按钮不再起作用,脚本开始在页面加载时运行。因此,我将其移回以保持工作正常。另外,将我的代码放入 JSFiddle,但我无法让它正常工作。在此期间,我会花更多的时间来熟悉它。感谢您向我介绍这一点。

至于我最初的问题:只要我将 .animate() 标签设置为更改 opacity 属性,它就可以工作,但对我想要更改的其他属性没有影响。我知道 SVG 和 CSS 有不同的属性名称,我尝试了这两种类型的名称。下面是我的代码。我正在尝试获得 .animate() 效果来更改填充颜色和笔触宽度。

var i,timer;
i = 2013;

function start() {
timer = self.setInterval("increment()", 800 )
}

function increment() {
i++;
document.getElementById("timer_out").innerHTML =  i ;
$(document).ready( function() {
    if (i == 2014) {
        $('#AL').animate( {
            opacity: 0.3 } , 500 );
    }
});
}

function stop() {
clearInterval(timer);
timer = null;
 }

function reset() {
stop();
i=2013;
document.getElementById("timer_out").innerHTML = i;
}

我真的只关心 JQuery 语句,它工作得非常好,直到我用不同的 CSS 属性替换不透明度。

再次感谢您的关注和建议。

4

1 回答 1

0

1)如果你将任何数字除以 1,你会得到原始数字,据我所知,你的部门没有做任何事情。

2) setInterval 应该写成:

timer = setInterval(increment, ( 1000 / divide ))

还要注意 increment() 和 start() 在全局范围内不是很好的名称选择,有多少人会想到这些名称,使用匿名函数可能包含范围

(function()
{
  // function is now contained within anonymous function scope and not accessible outside
  function increment(){} 
})()

3)在你的头脑中逻辑地逐步执行你的代码。你的代码不起作用

4)创建一个你到目前为止所做的事情

于 2013-10-04T04:28:58.670 回答