小编mhe*_*ens的帖子

重叠的兄弟元素之间的条件鼠标事件传递

是否有标准的Javascript技术或库来管理不相关的重叠HTML元素之间的条件鼠标事件传递?

例如,我在一堆HTML元素前面有一个部分透明的WebGL画布(由Three.js管理)(由Thee.js CSS3渲染器管理,但这不应该是相关的).那些HTML元素已经注册了mouseover和mouseout事件.我希望3D对象漂浮在这些元素的前面以阻止鼠标事件.

我已经知道如何使用光线施法器来确定鼠标是否在3D对象上.我不知道的是当3D对象不在其间时,如何允许鼠标事件将画布"传递"到底层HTML元素.

在此输入图像描述

我已经阅读了有关遍历DOM树的解决方案,直到找到鼠标下方的元素.但这似乎过于复杂和缓慢.如果可能的话,我想做的就是假装画布暂时不存在,以便事件可以自然地通过.

为了不重新发明轮子,如果已经有了这个库,那将会很棒.

html javascript mouseover event-passthrough

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

用大量数据创建android app数据库

我的应用程序的数据库需要填充大量数据,所以在onCreate()这期间,它不仅是一些create table sql指令,还有很多插入.我选择的解决方案是将所有这些指令存储在res/raw中的sql文件中并加载Resources.openRawResource(id).

它运作良好,但我面对编码问题,我在sql文件中有一些突出的caharacters,在我的应用程序中看起来很糟糕.这是我的代码:

public String getFileContent(Resources resources, int rawId) throws
IOException
  {
    InputStream is = resources.openRawResource(rawId);
    int size = is.available();
    // Read the entire asset into a local byte buffer.
    byte[] buffer = new byte[size];
    is.read(buffer);
    is.close();
    // Convert the buffer into a string.
    return new String(buffer);
  }

public void onCreate(SQLiteDatabase db) {
   try {
        // get file content
        String sqlCode = getFileContent(mCtx.getResources(), R.raw.db_create);
        // execute code
        for (String sqlStatements : sqlCode.split(";"))
        {
            db.execSQL(sqlStatements);
        } …
Run Code Online (Sandbox Code Playgroud)

java database android

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

正确跟踪哪个(嵌套)div有鼠标悬停

我有一个(深层)嵌套的<div>s 结构.使用Javascript,我想跟踪鼠标当前所在的元素(即"有焦点"),其中更深层次嵌套的元素具有优先级:

嵌套div中所需的鼠标悬停行为

我试过的组合mouseover,mouseout,mouseenter,mouseleavemousemove,但似乎没有简单的解决方案,让我的预期行为.我能够在正确的div上接收鼠标事件,但是这些事件通常会被更高级别的div接收,然后这些事件将不应该得到关注.

例如,在从上到下的转换ac,事件可能会被b最后一次接收,无意中将焦点放在b而不是c.或过渡cb可能不是为某些原因被注册.

我不太了解鼠标事件传播的基本机制,足以提出可靠的解决方案.看起来应该是这么简单的事情,但我无法弄明白.

我已经能够按如下方式工作:当div接收mouseenter/ over事件时,标记它并搜索整个DOM子树.如果发现任何其他标志更深,放弃焦点.但这是相当粗糙的,我不禁认为必须有一个更简单的方法.

编辑:解决方案

使用mouseovermouseout,结合呼叫 stopPropagation()似乎工作得很好.这是一个展示工作解决方案的JSFiddle.

html javascript nested mouseover mousemove

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

AngularJS中编译/链接函数和控制器函数之间的区别?

我正在尝试编写自己的AngularJS指令.我想我理解compilelink功能之间的区别.这段视频很好地清除了它.

但我现在不确定我是否理解控制器在指令中扮演的角色.一个指令可以包括一个controller功能,你可以注入$element,$attrs而这种进入,所以它可以做几乎所有的link周围的功能可以做到,我相信,其他的方式.

所以我有两个问题:

  1. controller功能和link功能之间是否存在重要的技术差异?
  2. 什么是最佳做法?我应该做哪些工作?

angularjs angularjs-directive angularjs-controller

5
推荐指数
0
解决办法
141
查看次数

(为什么)我不能从发电机中抛出异常吗?

我试图从ES6生成器函数的主体抛出一个异常,但它没有通过.这是ES6规范的一部分还是Babel的怪癖?

这是我尝试过的代码(在babeljs.io上):

function *gen() {
    throw new Error('x');
}

try {
    gen();
    console.log('not throwing');
} catch(e) {
    console.log('throwing');
}
Run Code Online (Sandbox Code Playgroud)

如果确实指定了ES6行为,那么发出异常信号的替代方法是什么?

javascript generator throw ecmascript-6 babeljs

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

如何在JSDoc中记录“类似参数列表”数组?

在JavaScript中,通常使用本质上是参数列表的数组:固定长度较小,并且每个位置的类型都已知。ECMAScript 6尤其如此,它引入了诸如rest运算符, spread运算符iterator协议之类的功能

我想记录一个返回迭代器对象的函数,用于迭代键/值对。理想情况下,我想具体说明其类型。是否可以使用(任何)JSDoc执行此操作?这是我的最新尝试,但我不知道它是否有效:

/**
 * @returns { { next: function(): {done: boolean, value: [string, *]} } }
 */
Run Code Online (Sandbox Code Playgroud)

jsdoc-to-markdown 抱怨语法,但这可能是他们的目的,而不是JSDoc3。如果是这样,我稍后将向他们发送错误报告。

编辑:这是可能返回的示例对象:

{
    next: function () {
        return {
            done: false,
            value: ['answer', 42]
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript arrays jsdoc jsdoc3 jsdoc2md

5
推荐指数
0
解决办法
792
查看次数

Chrome调试器未显示动态类名

我的Javascript代码动态生成了一堆ES2015类,包括一个自定义名称:

const EntitySubclass = class extends Entity {};

Object.defineProperties(EntitySubclass, {
    name: { value: dynamicClassName }
});
Run Code Online (Sandbox Code Playgroud)

这在代码本身中可以正常工作。CustomClass.name返回期望的名称。但是,当显示在Chrome控制台或调试器中时,这些类之一始终称为EntitySubclass。我也试过这个:

const obj = { [dynamicClassName]: class extends Entity {} };
const EntitySubclass = obj[dynamicClassName];
Run Code Online (Sandbox Code Playgroud)

和这个:

const obj = {};
obj[dynamicClassName] = class extends Entity {};
const EntitySubclass = obj[dynamicClassName];
Run Code Online (Sandbox Code Playgroud)

但这导致调试器向我显示一些自动生成的名称(_class3)。

这个可以解决吗?

我正在使用Babel进行编译,我记得在某处读到这种行为取决于所使用的Babel插件。所以这是我的Babel配置:

"presets": [
    "es2015"
],
"plugins": [
    ["babel-plugin-transform-builtin-extend", { "globals": ["Set"] }],
    "transform-object-rest-spread",
    "transform-decorators-legacy",
    "transform-class-properties",
    "transform-es2015-instanceof",
    "transform-async-to-generator",
    "transform-function-bind",
    "syntax-flow",
    "transform-flow-strip-types"
]
Run Code Online (Sandbox Code Playgroud)

javascript class google-chrome-devtools ecmascript-6 babeljs

5
推荐指数
0
解决办法
164
查看次数

为什么svg元素不尊重CSS的“底部”,“顶部”,“左侧”,“右侧”属性?

我有时觉得方便给一个元素的大小的方面bottomtopleftright性能,而不是使用widthheight。例如,这是此处接受的答案:

CSS 100%高度,带填充/边距

但是,由于某种原因,这不适用于svg元素。我已经使用最新的稳定版Firefox和Chrome尝试了以下示例。该svg元素莫名其妙地要采取的大小300x150:

小提琴

为什么?

html css size svg

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

如何在不设置 z 坐标的情况下为 Three.js 对象提供 z 索引?

我正在使用 Three.js 渲染多个THREE.PlaneGeometry分层排列的 2D 对象 ( )。所有这些都应在同一平面上对齐,但某些物体“位于其他物体的前面”或“挡住其他物体的视线”。换句话说,我想模拟 CSSz-index属性,但不实际使用 -dimension z,因为这会导致透视问题。

Three.js 有这方面的设施吗?

javascript 2d z-index three.js

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

如何链接多个Docker容器并封装结果?

我有一个连接到Neo4j数据库的Node.js Web应用程序.我想将这些封装在一个Docker镜像中(也使用Neo4j Docker容器),但我是一个Docker新手,似乎无法解决这个问题.在最新的Docker版本中,推荐的方法是什么?

我的直觉是运行嵌套在 app容器的Neo4j 容器.但是从我读过的内容来看,我认为支持/推荐的方法是将容器链接在一起.我需要的是在这张图片中很好地说明了.但是图像来自的文章对我来说并不清楚.无论如何,它正在使用即将被弃用的旧容器链接,而这些天推荐使用网络.非常感谢教程或解释.

另外,docker-compose如何适应这一切?

encapsulation docker docker-networking

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

How do three.js transforms and CSS3 3D-transforms correspond?

I am working on an open source tool for navigating and visualizing human anatomy.

The main object of interest is a 'chessboard' taking up most of the screen. Dragging the board around performs certain CSS3 3D-transforms. A 3D object (a head, in the example below) is shown hovering over the board, rendered with three.js.

在此输入图像描述

在此输入图像描述

The transformation of the head is synchronized with that of the board. But this is currently a very imperfect synchronization, realized by trial-and-error.

How do the …

javascript css 3d transform three.js

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