小编Mar*_*ahn的帖子

如何检测滚动条上的mouseup?(或"scrollEnd"事件)

任何人都知道如何在滚动条上检测鼠标事件?它适用于FF,但不适用于Chrome或IE9.

我设置了一个快速演示:http://jsfiddle.net/2EE3P/

总的想法是我想要检测一个scrollEnd事件.显然没有这样的事情,所以我mouseUp和定时器的组合,但是mouseUp在大多数浏览器中没有触发!div包含一个项目网格,因此当用户停止滚动时,我想将滚动位置调整到最近的有意义的点,例如最近单元格的边缘.但是,如果它们处于滚动的中间,我不想自动调整位置.

我也很乐意接受任何给我相同的答案 scrollEnd

javascript scrollbar javascript-events

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

聚合物 - 如何将观察者附加到数组?

如何将观察者附加到作为数组的聚合物属性?要清楚,我希望在数组中的项更改时进行回调.为简单起见,假设我的数组是:

[
    { text: 'foo' },
    { text: 'bar' }
]
Run Code Online (Sandbox Code Playgroud)

我想要的东西:

observe : {
    'items.text' : 'itemsChanged'
}
Run Code Online (Sandbox Code Playgroud)

以下作品,但显然是不可持续的:

observe : {
    'items[0].text' : 'itemsChanged',
    'items[1].text' : 'itemsChanged'
}
Run Code Online (Sandbox Code Playgroud)

请注意,在我的情况下,更改来自我控制的另一个聚合物元素.因此,如果我能够以某种方式触发对具有控制权的元素的更改{ text: 'foo' },那么也可以.

javascript polymer

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

在2d数组上首先运行x与y首先运行的结构

我希望将一个标志传递给一个通过col-scanning或row-scanning运行算法的函数:

if run-on-x
  for 1..x
    for 1..y
      do something with ary[x][y]

else
  for 1..y
    for 1..x
      do something with ary[x][y]
Run Code Online (Sandbox Code Playgroud)

但我不想复制所有的循环和逻辑.

我想出来了:

let numPx = width * height;
for (let px = 0; px < numPx; px++) {
  let [x, y] = yAxis ? [px % width, 0 | px / width] : [0 | px / height, px % height];
Run Code Online (Sandbox Code Playgroud)

但我认为所有的数学都很重,特别是当我在相当大的数组上运行时.

有一个更好的方法吗?

javascript algorithm design-patterns

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

Array.slice的负数是否安全?

我记得读年前传递负数作为第二个参数的一些功能与此语法(slice,substr,等)只在某些浏览器的支持,但我不能找到参考.

只是想知道是否有人知道ary.slice(0, -1)所有浏览器是否特别安全.

javascript

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

如何使用ES5扩展ES6类?

这样做的原因很复杂,但归结为流不理解mixins或任何其他修改ES6类原型的方法.所以我回到了ES5,但我无法弄清楚如何在没有的情况下调用ES6类的构造函数new:

class A {
  constructor() {}
}

function B() {
  // what do I put here?  I would do something like
  // A.prototype.constructor.call(this) but that throws an error saying the
  // constructor can only be called with `new`
}
B.prototype = Object.create(A.prototype);
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-5 ecmascript-6

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

获取源映射使用已评估的代码

我有一个构建脚本,通过uglifyjs运行我的所有代码,做一些花哨的缓存,最终运行eval( code )在一些JavaScript文件上.

我正在尝试使用源映射启动和运行整个过程,但只要我正在使用,我似乎无法使其工作eval.如果我直接使用<script src="...">它链接到文件工作正常.

在我的eval代码中,我有:

code, blah blah blah
//@ sourceMappingURL=/cache/618a67795c7460184bd9b99020cbb9fd.map
Run Code Online (Sandbox Code Playgroud)

然后在那个.map文件中,我有:

{
      "version"  : 3
    , "file"     : "618a67795c7460184bd9b99020cbb9fd.map"
    , "sources"  : ["/js/Parallax-JS/js/parallax-2.js"]
    , "names"    : [
          "a"
        , "bunch"
        , "of"
        , "variable"
        , "names"
    ]
    , "mappings" : "... LONG MAP ..."
}
Run Code Online (Sandbox Code Playgroud)

我试过把它放在//@ sourceURL=最后,至少给了我正确的文件名,但仍然没有可读源.

有任何想法吗?在Chrome 25(dev)和26(canary)中进行测试

javascript source-maps

5
推荐指数
2
解决办法
2099
查看次数

有没有人知道JS Chaining库允许延迟执行方法?

我正在寻找一个允许我轻松地将方法链接在一起的库,但推迟执行,直到在链中进一步提供参数:

chain
    .scanDirectory  ( '/path/to/scan' )
        .recursively()
        .for        ( /\.js$/i        )
    .cache()
    .provideTo      ( '0.locals'      )
        .as         ( 'scripts'       )
    .defer();
Run Code Online (Sandbox Code Playgroud)

重要的是,scanDirectory函数后面的代码实际上并没有被调用,直到定义它应该是递归的并且查找.js文件.

我不太确定如何逻辑设置它以便我可以做类似的事情:

chain
    .scanDirectory( '/path/to/scan' )
    .scanDirectory( '/another/path' )
        .for      ( /\.js$/i        ) // provided to both paths above?
    .doSomethingElse()
Run Code Online (Sandbox Code Playgroud)

这就是为什么我正在寻找一个可能有更成熟的想法来实现这个目标的库:)

javascript

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

Chrome画布渲染速度错误?

好的,所以我遇到了一个奇怪的问题我正在开发一个突然的游戏,我只是想知道是否有人之前看过这样的事情:

  • 当我的窗口大小低于~600,000像素时,它运行非常平滑.这是在以下情况下的个人资料989x610px:

在此输入图像描述

  • 当我的窗口大小稍微增加时,它会慢慢停止,使用99%的CPU并以7fps的速度运行.这是990x610px(1px更宽):

在此输入图像描述

990任何地方都没有硬编码,因为它减慢的确切宽度取决于高度,它更像是一个"总像素"的东西.

无论如何,我只是想知道是否有人之前已经看过这个,如果这是一个已知的问题,或者我是否应该向Chrome团队提交错误报告.

javascript google-chrome canvas

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

如何以编程方式检测笔记本电脑是否已插入?(OSX)

正如标题所说 - 我正在寻找一种方法,在OSX中,告诉我我的笔记本电脑当前是否已插入,以便我可以根据需要启动/暂停CPU密集型任务.

更好的是,一种在插入状态发生变化时获取通知的方法.

macos shell

5
推荐指数
2
解决办法
1208
查看次数

在元素数组上反应事件监听器

我的React渲染函数最终渲染了一组元素:

data.map((element) => {
  return <Object onChange={this.onObjectChange} />;
});
Run Code Online (Sandbox Code Playgroud)

我的问题是,onChange当我收到回调时,找出哪个对象调用了其方法的合适方法是什么?

javascript reactjs

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