小编use*_*236的帖子

在画布上绘制一个填充随机颜色sqares的圆圈

我有一个非常奇怪的例子......我需要填充一个1x1像素的圆圈,所有这些都在浏览器中使用不同的颜色.

我试过的是这样的

function getRandomColor() {
    var letters = '0123456789ABCDEF'.split('');
    var color = '#';
    for (var i = 0; i < 6; i++ ) {
        color += letters[Math.round(Math.random() * 15)];
    }
    return color;
}

function createRandomSqaure(destination) {
    var size = destination.height() * destination.width();

    for (var i = 0; i < size; i += 1) {
        destination.append('<div class="pixel" style="background: ' + getRandomColor() + '"></div>');
    }
}

createRandomSqaure($('.pic'));
Run Code Online (Sandbox Code Playgroud)

情况是,它超级慢(你可以想象,200x200图像的循环次数为40k),我想也许更好的方法是在画布上绘制它?我需要在最后绘制一个充满这些像素的圆圈......

我不知道如何以更优化的方式做这样的事情,我也可以使用nodejs服务器,但我认为在heroku上生成类似服务器端的东西太过分了.

我只是好奇你们有什么想法,做这样的事情最好的方法是什么?

javascript html5 loops canvas html5-canvas

5
推荐指数
1
解决办法
1万
查看次数

主干事件总线和同一页面上的多个视图

我遇到了一个问题,我尝试使用一个简单的主干事件总线

var eventBus = _.extend({}, Backbone.Events);
Run Code Online (Sandbox Code Playgroud)

我在 DOM 中的多个视图下方有一个按钮,这些按钮是另一个视图,如下所示:

===================
===== CONTENT =====  <- VIEW 1 (content)
===================
BTN1 | BTN2 | BTN3   <- VIEW 2 (controls)
Run Code Online (Sandbox Code Playgroud)

这在一页上重复多次。

问题是,当我触发一个事件时,它会为页面上的所有视图触发。

在“控制”中,我有:

events: {
    'click .check': 'checkMe',
}

checkMe: function(e) {
    e.preventDefault();
    eventBus.trigger('checkMe');
}
Run Code Online (Sandbox Code Playgroud)

并且在所有视图中:

initialize: function(options) {
    …
    eventBus.on('checkMe', this.checkMe, this);
},

checkMe: function() {
    alert("!");
}
Run Code Online (Sandbox Code Playgroud)

正如我之前所说,当我单击一组按钮时,它会为页面上的每个视图(内容)触发事件,有没有办法让它以正确的方式工作?

谢谢你们!

javascript jquery events backbone.js backbone-events

1
推荐指数
1
解决办法
939
查看次数