小编pim*_*vdb的帖子

正确渲染最初隐藏的HTML元素的方法

我多年来在我的HTML中使用类似这样的元素应隐藏的元素:

<div style="display: none"></div>
Run Code Online (Sandbox Code Playgroud)

没关系,但我不能再忍受内联风格了.

  1. 在JavaScript window.onload事件中以编程方式隐藏元素为时已晚 - 它将在屏幕上闪烁.

  2. 我可以创建CSS类'隐藏',但是使用浏览器的激进加载策略(比如在Opera中),该块可能会出现一秒钟(在加载CSS之前).

有没有更好的方法?

html javascript css

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

使用HTML5 Canvas进行图像处理和纹理映射?

在我正在研究的3D引擎中,我已经成功地在3D中绘制了一个立方体.就我而言,填充边的唯一方法是使用纯色或渐变.为了让事情更令人兴奋,我真的很想用简单的位图实现纹理映射.

关键是我几乎找不到关于JavaScript中图像处理主题的任何文章或代码示例.此外,HTML5画布中的图像支持似乎仅限于裁剪.

我怎样才能拉伸位图,以便矩形位图可以填满不规则的立方体面?在2D中,由于透视,投影的方形立方体面不是方形,所以我必须拉伸它以使其适合任何四边形.

希望这张图片澄清了我的观点.左脸现在充满了白色/黑色渐变.在纹理映射后,我怎么能用位图填充它?

立方体

有没有人对使用JavaScript和HTML5 Canvas的透视纹理贴图(或图像处理)有任何提示?

编辑:我得到它的工作,感谢6502!

然而,它是CPU密集型的,所以我很想听到任何优化的想法.

结果使用6502的技术 - 使用纹理图像

javascript 3d html5 texture-mapping html5-canvas

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

如何知道模糊的原因?

我怎么知道哪个事件在jQuery中引起了模糊事件?

使用click or tab等触发模糊事件.如何知道此模糊事件是由于点击还是标签?

javascript jquery

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

强制setTimeout在最初设置之前触发其有效负载

我开发了一小部分演示软件,其中包含每张幻灯片的幻灯片和资源.渲染幻灯片时,使用该setTimeout方法延迟所有资产并在延迟后渲染.看起来很甜......

Yaaay !,要求已经改变,现在要求演示文稿像PowerPoint幻灯片一样,鼠标单击事件将导致下一个资产立即呈现给页面.

我的问题是; 有没有办法让我的超时立即开火?我可以在堆栈中获取并存储在创建超时时返回的timeoutid.唯一的另一个选择是取消超时,然后重新创建元素,这是我想要做的更多处理,我不想过多地重构我的代码.

有任何想法吗?

javascript jquery settimeout

19
推荐指数
3
解决办法
5708
查看次数

V8如何优化/内联?

我想知道是否有可能获得V8如何优化和内联的知识.

我创建了三个简单的测试函数,它们都以度为单位计算角度的正弦值.我将它们全部放入闭包中,以便V8能够内联局部变量.


1.使用预先计算的常数Math.PI / 180,然后执行Math.sin(x * constant).

我用过这段代码:

var test1 = (function() {
  var constant = Math.PI / 180; // only calculate the constant once

  return function(x) {
    return Math.sin(x * constant);
  };
})();
Run Code Online (Sandbox Code Playgroud)

2.动态计算常数.

var test2 = (function() {
  var pi = Math.PI; // so that the compiler knows pi cannot change
                    // and it can inline it (Math.PI could change
                    // at any time, but pi cannot)

  return function(x) {
    return Math.sin(x …
Run Code Online (Sandbox Code Playgroud)

javascript optimization google-chrome v8 inline

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

JavaScript RegExp.test()返回false,即使它应该返回true

问题:我得到一个AJAX响应(带换行符的JSON或明文).应通过RegEx检查每个响应项,以确定它是否与用户定义的模式匹配.

例:

Ajax响应(纯文本)

"Aldor
Aleph
Algae
Algo
Algol
Alma-0
Alphard
Altran"
Run Code Online (Sandbox Code Playgroud)

用户模式:

/^Alg/ig.test(responseItem)
Run Code Online (Sandbox Code Playgroud)

RegExp结果应如下所示:

Aldor   // false
Aleph   // false
Algae   // true
Algo    // true
Algol   // true
Alma-0  // false
Alphard // false
Altran  // false
Run Code Online (Sandbox Code Playgroud)

但每次我得到不同(和有点受欢迎)的结果......例如(/^alg/ig.test("Algo")=> false)

我的代码:

HTML

...
<form>
  <input id="in" />
</form>
<div id="x">
  Aldor
  Aleph
  Algae
  Algo
  Algol
  Alma-0
  Alphard
  Altran
</div><button id="checker">check!</button>
...
Run Code Online (Sandbox Code Playgroud)

JavaScript(jQuery 1.6.2)

$(function(){
    var $checker = $('#checker');

    $checker.click(function(ev){
        var inputFieldVal = $.trim($('#in').val());
        console.log(inputFieldVal); // Alg
        var …
Run Code Online (Sandbox Code Playgroud)

html javascript regex jquery

18
推荐指数
2
解决办法
8502
查看次数

尝试/捕获oneliner?

正如您可以转换以下内容:

var t;
if(foo == "bar") {
    t = "a";
} else {
    t = "b";
}
Run Code Online (Sandbox Code Playgroud)

成:

t = foo == "bar" ? "a" : "b";
Run Code Online (Sandbox Code Playgroud)

,我想知道是否有一种速记/在线方式来转换这个:

var t;
try {
    t = someFunc();
} catch(e) {
    t = somethingElse;
}
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以用速记的方式做到这一点,最好是一个oneliner?当然,我可以删除换行符,但我的意思是喜欢的? :东西if.

谢谢.

javascript try-catch shorthand

17
推荐指数
4
解决办法
9209
查看次数

这个instanceof错误消息是什么意思?

我正在玩instanceofChrome,但收到了错误消息.我我知道为什么(你必须instanceof在创建对象的构造函数之后提供一个函数),但错误消息似乎在说明其他内容:

[1,2,3] instanceof Array
// true

[1,2,3] instanceof []
// TypeError: Expecting a function in instanceof check, but got 1,2,3
Run Code Online (Sandbox Code Playgroud)

这是否意味着我应该[1,2,3]用函数替换?我认为这[1,2,3]是正确的,这[]是问题,应该用一个函数替换,但看起来错误信息正好相反.

有人可以解释我是如何错误地解释错误消息的吗?

javascript instanceof

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

使用pushState()/ onpopstate时,页面不会通过'back'重新加载

我正在使用AJAX刷新一些页面,因此使用以下代码更新历史记录 -

/** Update the page history */
var pushState_object = {
    ajax_string: ajax_string,
    security: security,
};
window.history.pushState(pushState_object, title, permalink);
Run Code Online (Sandbox Code Playgroud)

然后我在页面加载时调用这个onPopState函数 -

window.onpopstate = function(e){
    if(window.history.state !== null){
        initiate_load_updated_page(window.history.state.ajax_string, window.history.state.security, 0)
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然在从通过AJAX生成内容的页面转到以通常方式加载的页面时使用后退按钮,但我遇到了一些问题.URL将更改,但页面将不会重新加载.再次点击返回会带我到页面,正如我所料,然后前进工作正常 - 这只是后退按钮不起作用的一种情况.

这里的任何建议将不胜感激.

javascript html5 pushstate

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

在Less中组合多个"transform"条目

我有两个mixin都转换为-webkit-transform:

.rotate(@deg) {
  -webkit-transform: rotate(@deg);
}

.scale(@factor) {
  -webkit-transform: scale(@factor);
}
Run Code Online (Sandbox Code Playgroud)

当我一起使用它们时:

div {
  .rotate(15deg);
  .scale(2);
}
Run Code Online (Sandbox Code Playgroud)

......他们(如预期的那样)显示为:

div {
  -webkit-transform: rotate(15deg);
  -webkit-transform: scale(2);
}
Run Code Online (Sandbox Code Playgroud)

这似乎不是有效的CSS,因为第二个优先于第一个; 第一个被丢弃了.要组合transform条目,它应该是:

-webkit-transform: rotate(15deg) scale(2);
Run Code Online (Sandbox Code Playgroud)

如何通过LESS生成这样的CSS,即多个transform正确组合的条目?

css combinations less css-transforms

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