小编Dee*_*psy的帖子

模拟背景大小:在画布上覆盖

我正在画像这样的画布:

ctx.drawImage(data[i].image, data[i].pos.x, data[i].pos.y, data[i].pos.w, data[i].pos.h);
Run Code Online (Sandbox Code Playgroud)

问题是图片越来越拉伸,我不希望这样.我如何模拟css属性

background-size: cover
Run Code Online (Sandbox Code Playgroud)

在卡瓦斯画图像.

http://www.w3schools.com/cssref/playit.asp?filename=playcss_background-size&preval=cover

看看100% 100%(我现在拥有的)和cover(我的目标)之间的区别.

html javascript css html5 canvas

35
推荐指数
3
解决办法
3万
查看次数

Ng-repeat,第一个具有不同指令的项目

我得到以下代码:

<div ng-repeat="i in placeholders" square class="set-holder {{i.class}}" droppable="{{i.type}}"></div>
Run Code Online (Sandbox Code Playgroud)

我如何让第一个项目有指令bigsquare,而其他项目只有square.

我试过了:

<div ng-repeat="i in placeholders" {{= $first ? 'big' : ''}}square class="set-holder {{i.class}}" droppable="{{i.type}}"></div>
Run Code Online (Sandbox Code Playgroud)

但遗憾的是我的结果是:

<div ng-repeat="i in placeholders" {{= $first ? 'big' : ''}}square class="set-holder test" droppable="3"></div>
Run Code Online (Sandbox Code Playgroud)

又称绑定不会被编译.

javascript angularjs angularjs-directive ng-repeat

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

Nodejs群集和表达会话

我正在尝试构建nodejs应用程序,它将利用多核机器(也称为群集),我得到了一个关于会话的问题.我的代码看起来像这样:

var cluster = exports.cluster = require('cluster');
var numCPUs = require('os').cpus().length;

if (cluster.isMaster) {

  for (var i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('exit', function(worker, code, signal) {
    console.log('worker ' + worker.process.pid + ' died. Trying to respawn...');
    cluster.fork();
  });

} else {

//spawn express etc

}
Run Code Online (Sandbox Code Playgroud)

我的问题是:每当一个用户点击随机节点实例或者例如他第一次打开页面并点击节点N4并且直到他的会话到期时,他会在每次请求时命中节点N4?对于那些不理解我的问题的人,我会尝试解释我担心的问题:用户进入我的页面,他登录节点N3,然后我将req.session.userdata设置为随机数据,他刷新了页面,他点击节点N4,我将能够从不同的节点访问req.session.userdata?这意味着用户有机会随机退出,或者我只是不了解如何使用快递进行聚类?

cluster-computing multiprocessing node.js express

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

使用node-gyp构建画布时,"无法找到指定的模块"

我想安装https://github.com/LearnBoost/node-canvas/模块.我按照Windows安装说明进行操作

https://github.com/LearnBoost/node-canvas/wiki/Installation---Windows.

输入后:npm install canvas我得到以下日志:

Creating library F:\Stittch2\node_modules\canvas\build\Release\canvas.lib
and object F:\Stittch2\node_modules\canvas\build\Release\canvas.exp
Generating code
Finished generating code
canvas.vcxproj -> F:\Stittch2\node_modules\canvas\build\Release\\canvas.node
canvas@1.1.3 node_modules\canvas
??? nan@0.4.4
Run Code Online (Sandbox Code Playgroud)

所以我认为它编译成功,但是当我这样做时require('canvas'),node我收到以下错误:

>node
>require('canvas')
Error: The specified module could not be found.
F:\Stittch2\node_modules\canvas\build\Release\canvas.node
  at Module.load (module.js:356:32)
  at Function.Module._load (module.js:312:12)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at Object.<anonymous> (F:\Stittch2\node_modules\canvas\lib\bindings.js:2:18)
Run Code Online (Sandbox Code Playgroud)

32位节点/ npm.

似乎我只是在这个模块中没有收到此错误.

javascript canvas building node.js npm

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

从缓冲区播放声音

我正在尝试构建一个实时语音呼叫应用程序.我的目标是使用本机JS麦克风api并通过websocket将数据发送到其他客户端.我想出了以下代码:

<script>
// Globals
var aCtx;
var analyser;
var microphone;

navigator.getUserMedia_ = (   navigator.getUserMedia
                           || navigator.webkitGetUserMedia 
                           || navigator.mozGetUserMedia 
                           || navigator.msGetUserMedia);

if (navigator.getUserMedia_) {
    navigator.getUserMedia_({audio: true}, function(stream) {
        aCtx = new webkitAudioContext();
        analyser = aCtx.createAnalyser();
        microphone = aCtx.createMediaStreamSource(stream);
        microphone.connect(analyser);
        process();
    });
};
function process(){
    console.log(analyser);
    setInterval(function(){
        FFTData = new Float32Array(analyser.frequencyBinCount);
        analyser.getFloatFrequencyData(FFTData);

        console.log(FFTData); // display
    },10);
}

</script>
Run Code Online (Sandbox Code Playgroud)

所以每隔10ms我就会得到缓冲区并通过节点发送.问题是我无法弄清楚如何播放缓冲区,我甚至不确定我是否以正确的方式获得缓冲区.我试过了:

var source = audioContext.createBufferSource();
var buffer; // the result printed in the code below
var audioBuffer = audioContext.createBuffer(1, buffer.length, 44100);
audioBuffer.getChannelData(0).set(buffer);
source.buffer = …
Run Code Online (Sandbox Code Playgroud)

javascript api html5 buffer microphone

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

Concat凉亭组件与咕噜声

我正在构建一个需要很少前端库/框架的应用程序,例如:

  • jQuery的
  • jQueryUI的
  • AngularJS
  • 基础

我正在使用bower下载组件.此时我的HTML看起来像:

<script src="components/jquery/jquery.js"></script>
<script src="components/angular/angular.js"></script>
<script src="components/etc/etc.js"></script>
Run Code Online (Sandbox Code Playgroud)

我的目标是创建一个grunt脚本,自动获取已安装的组件,连接并缩小它们并将其输出为lib.js.

问题:

通过我的所有研究,我弄清楚如何从目录中连接所有文件.我的目标是获取bower组件并连接它们,而不是在gruntfile中逐一列出它们.我怎么能成功呢?

是否可以使用我想要的模块而不是整个UI来制作自定义jQuery UI构建.

谢谢.

concatenation minify node.js gruntjs bower

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

关于角度的位置变化

有没有办法检测AngularJS中的全局位置变化,而不仅仅是单个控制器?我的目标是检测每个位置的变化.或者有没有有效的方法来观察window.location.href的变化?

$routeChangeSuccess 
Run Code Online (Sandbox Code Playgroud)

据我所知只是单控制器或我错了?

javascript location href angularjs

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

渲染为PDF时,PhantomJS 2.0文本无法选择

前几天我从编译PhantomJS 2.0 Linux Debian.它成功编译,遗憾的是网页字体存在问题 - 当渲染为PDF时,您无法选择PDF中的文本,就像图像一样.我正在使用以下CSS代码来设置字体:

@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 300;
  src: url("/public/styles/fonts/lato-300.ttf"); }

@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  src: url("/public/styles/fonts/lato-400.ttf"); }
Run Code Online (Sandbox Code Playgroud)

字体正在渲染,但文本不可选.但是,如果我没有设置任何font-family并且只保留默认浏览器字体,则文本是可选的,一切都很好.

我尝试过使用SVG, WOFF and TTF格式 - 结果是一样的.此问题在1.9中不存在,但由于缺少功能,我无法使用1.9.我也不能将字体文件从1.9分支复制到2.0,因为它们使用的是不同版本的QT/webkit.

pdf fonts qt renderer phantomjs

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

Javascript音频API:onaudioprocess未被触发

我正在构建一个简单的应用程序,我正在尝试获取缓冲区,但似乎以下代码中的onaudio进程未触发:(PasteBin)

<script>
var audio_context;
var recorder;
window.onload = function init() {
    try {
        window.AudioContext = window.AudioContext || window.webkitAudioContext;
        navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia;
        window.URL = window.URL || window.webkitURL;
        audio_context = new AudioContext;
        } catch (e) {
        console.log(e);
    }
    navigator.getUserMedia({audio: true}, startUserMedia);
    function startUserMedia(stream) {
        console.log('Initializing');
        var input = audio_context.createMediaStreamSource(stream);
        input.connect(audio_context.destination);
        var node = input.context.createGain(4096, 2, 2);
        node.onaudioprocess = function(e){
            console.log('done');
        }
        node.connect(audio_context.destination);
    }
};
</script>
Run Code Online (Sandbox Code Playgroud)

如果代码按照我应该得到的方式工作Initiliazing \n done,那么问题是我只获得了Initiazing并且没有触发onaudioprocess.我正在使用最新的铬:

在此输入图像描述

javascript api audio process

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

单次迭代删除所有逗号,点和小写字符串

在我的C++应用程序中,我需要删除所有dots, commas, exclamation marks字符串和小写字母.到目前为止,我发现我可以这样做std::erase并且std::remove像这样:

string content = "Some, NiceEeeE text ! right HeRe .";  

content.erase(std::remove(content.begin(), content.end(), ','), content.end());
content.erase(std::remove(content.begin(), content.end(), '.'), content.end());
content.erase(std::remove(content.begin(), content.end(), '!'), content.end());
std::transform(content.begin(), content.end(), content.begin(), ::tolower);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如果不在字符串中迭代4次,我可以这样做吗?有没有更好的方法来使用简单的C++做到这一点?

c++ optimization std

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