首页 > 解决方案 > 我无法更改随机选择的地方的颜色

问题描述

我想每隔 1 秒将一个随机的地方涂成黑色,但是我没有成功,我的代码很长我没有在这里分享https://codepen.io/sinanelms/pen/MqdNNY?editors=0010我会很高兴帮助你。当我这样做时,它无法在任何地方绘画。

for (var county in paths) {

        var obj = r.path(paths[county].path);
      //random selected
    function random(){

                var ran=Math.floor(Math.random() * paths.length);

                if(obj.id==ran){obj.animate({fill: '#000'}, 200);   } 
              }

              setInterval(function(){random();}, 1000);
    //random end 

标签: javascriptjqueryhtml

解决方案


首先,这是一个非常糟糕的组织代码。在自己编辑之前我什么都不懂。(仍然没有得到它。)
但我写了一些你想要的东西。

  • 将此 var 添加到代码中 for 循环之外的某个位置
    var allobjs = [];
    Like
    var allobjs = [], w = 1000, h=500;
  • 我重写了你的 rand 函数

    function random(){
        var random = Math.floor(Math.random() * (allobjs.length - 1) ) + 1;
        if (allobjs[random].id != 'blank'){
            allobjs[random].animate({fill: '#000'}, 200);
        } 
    }
    setInterval(function(){random();}, 1000);
    

在 $(window).resize 之后添加这个,而不是在里面。不要忘记删除自己的函数和 setInterval

  • 将此代码添加到 for 循环

    var obj = r.path(paths[county].path);

就像
for (var country in paths) {
var obj = r.path(paths[county].path);


重新加载
页面, 一切顺利


推荐阅读