小编Zea*_*rin的帖子

GUI 构建器中的对齐指南/捕捉算法

我尝试实现与许多 GUI 构建器类似的行为:如果当前拖动的组件几乎与另一个组件位于水平或垂直线上,则它们应该与另一个组件对齐。我当前的方法是迭代所有放置的组件,并检查四个边缘中的任何一个是否(几乎)与拖动组件的边缘对齐:

for (v in rootView.relativeLayout.children()) {
    // x
    val left = event.rawX - dXInit
    val right = event.rawX - dXInit + view.width
    val leftEdgeRange = (v.leftEdge() - 50 .. v.leftEdge() + 50)
    val rightEdgeRange = (v.rightEdge() - 50 .. v.rightEdge() + 50)

    when (left) {
        in leftEdgeRange -> x = v.leftEdge()
        in rightEdgeRange -> x = v.rightEdge()
    }
    when (right) {
        in leftEdgeRange -> x = v.leftEdge() - view.width
        in rightEdgeRange -> x = v.rightEdge() - view.width
    } …
Run Code Online (Sandbox Code Playgroud)

java user-interface android kotlin

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

影子 DOM 中的 addEventListener

我试图使用 Shadow DOM 获取用户的输入addEventListener(),但没有得到任何响应,任何错误。对元素的引用工作正常,因此console.log(input)打印出正确的元素。

(相同的代码在没有 Shadow DOM 的情况下工作得很好,但我必须将它包含在我的项目中。)

这是我的代码(当然这些事件只是为了检查):

const template = document.createElement('template')
template.innerHTML = /* html */`
<div id="username">
  <p>Please choose your username!</p>
  <input id="username_input" type="text" placeholder="enter username">
  <button>Ok</button>
</div>
`
/**
 * @class Quiz
 * @extends {window.HTMLElement}
 */
export class Quiz extends window.HTMLElement {
  constructor () {
    super()
    this.attachShadow({ mode: 'open' })
    this.shadowRoot.appendChild(template.content.cloneNode(true))
  }

  getUserName () {
    const button = this.shadowRoot.querySelector('button')
    const inputUname = this.shadowRoot.querySelector('#username input')
    console.log(button)
    button.addEventListener('click', event => console.log('badum tss'))
    inputUname.addEventListener('input', event …
Run Code Online (Sandbox Code Playgroud)

html javascript events shadow-dom

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

ES6 Class通过mixins进行多重继承

我正在尝试使用mixins来理解ES6多重继承.

我正在关注这篇文章(简单的mixins).但是当我运行代码时,我的输出是:

  1. main
  2. Uncaught ReferenceError: this is not defined,
    错误console.log('main')再次指向

我在最新版本的Chrome上运行它.这是我的代码:

const RaceDayService = superclass => class extends superclass { 
    constructor(){
        console.log('service');
    }
}

const RaceDayDB = superclass => class extends superclass { 
    constructor(){
        console.log('db');
    }
}

class RaceDayUI {
    constructor(){
        console.log('ui');
    }
}

class RaceDay extends RaceDayDB(RaceDayService(RaceDayUI)){
    constructor(options){
        console.log('main');
    }
}

const raceDay = new RaceDay();
Run Code Online (Sandbox Code Playgroud)

关于我做错的任何想法?

谢谢!

javascript inheritance multiple-inheritance mixins ecmascript-6

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

Python:在类方法上使用contextmanager的意外行为

我正在尝试使用Python中的with..as contruct来简化"可逆计算"代码的编写.但是,@contextmanager在类方法上使用似乎会更改未来类实例的默认初始化.Python 2.6和3.1具有相同的行为.这是一个展示此行为的简单示例:

#!/usr/bin/env python

import contextlib

class SymList:
    def __init__(self, L=[]):
        self.L = L

    @contextlib.contextmanager
    def SymAdd(self, a):
        self.L.append(a)
        yield
        self.L.append(a)

SL = SymList()
with SL.SymAdd(3):
    SL.L.append(5)
print(SL.L) # Expect and see [3, 5, 3]
SL2 = SymList()
print(SL2.L) # Expect [] and see [3, 5, 3]
Run Code Online (Sandbox Code Playgroud)


  • 为什么不是SL2一个新的实例SymList
  • SL2.L数据成员如何引用SL.L数据成员?

python with-statement contextmanager

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

Ampersand.js(或Backbone.js)中的模型可以同时存在多个集合中吗?

基本上,我想知道集合是否更像文件夹(它们"物理上包含"模型)或播放列表(它们包含对模型的引用).

如果它们像文件夹一样工作,是否有模仿播放列表  功能的约定?


  • FWIW,我不是在为播放列表建模 - 我只是用它们作为比喻.

  • 我发现了几个标题似乎与这个问题相似的问题.但是当我调查时,我找不到我的问题的明确答案.

javascript backbone.js ampersand.js

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

如何控制“&lt;use&gt;”元素的“transform-b​​ox”?

背景

\n

我\xe2\x80\x99m 喜欢 SVG2 中扩展的 CSS 支持。不用一遍又一遍地重写属性,这很好。所以我\xe2\x80\x99一直在将项目中的一些代码从SVG属性转换为CSS。其中大部分效果都很好。

\n

当谈到转换时,如果您熟悉 CSS 转换在 HTML 中的工作方式,那么事情可能会显得很棘手。(这对于rotate()转换尤其如此,这是这个问题的焦点。) \xe2\x80\x99s 因为 SVG 没有 \xe2\x80\x99t 具有 HTML 的 \xe2\x80\x9c 自动流 \xe2\x80\x9d做。

\n

换句话说,当你有一堆 HTML 元素时,它们会一个接一个地根据盒模型自动布局。

\n

SVG 中没有这样的 \xe2\x80\x9cautomatic\xe2\x80\x9d 或 \xe2\x80\x9cdefault\xe2\x80\x9d 布局。因此,SVG 转换默认为从原点计算。(0,0用户坐标中的\xe2\x80\x99s)。

\n
\n

近乎完美的解决方案

\n

对于大多数元素,\xe2\x80\x99 有一个简单的解决方案:很棒的 CSS 属性transform-box。在大多数情况下,使用以下 CSS 将允许您以与 HTML 元素几乎相同的方式转换 SVG 元素:

\n
/* whatever elements you want to transform */\nrect, polygon {      \n    transform-box:    fill-box;  \n    transform-origin: center center;  /* or `top …
Run Code Online (Sandbox Code Playgroud)

css svg css-transforms shadow-dom svg-transforms

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

在linux中:写入FIFO

我使用mkfifo命令创建了一个新的FIFO .我有一个文本文件f.txt.我想把文本文件写入我的FIFO.怎么样?是否有unix命令?

unix linux shell fifo

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

bash:点击返回一次,在后台运行2个命令

而不是这个:

$ command1 & 
$ command2 & 
$ …
Run Code Online (Sandbox Code Playgroud)

有没有办法在bash中执行等效操作,但是在单行输入上?

bash shell background-process

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

在page_action上显示弹出窗口

我想念没有显示弹出窗口吗?

在扩展文件夹中,我有四个文件。我将该文件夹加载为扩展名。我可以看到该图标,但是单击它时不会显示弹出窗口。为什么?

  1. content_script.js:空(只是添加以便我可以加载扩展名)
  2. icon.png:显示在我加载扩展程序时。
  3. manifest.json
{
    "name": "Popup poc",
    "version": "1.4",
    "description": "Simple popup example",
    "content_scripts": [
        {
            "matches": ["<all_urls>"],
            "js": ["content_script.js"]
        }
    ],
    "page_action": {
        "default_name": "Display Map",
        "default_icon": "icon.png",
        "default_popup": "popup.html"
    },
    "manifest_version": 2
}
Run Code Online (Sandbox Code Playgroud)
  1. popup.html
<!doctype html>
<html>
<head>
    <title>Popup</title>
</head>

<body>
    This is body
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

google-chrome-extension

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

node.js中的应用程序结构?

我熟悉Java Web容器,其中Web应用程序作为war文件部署.

我很困惑如何在Node.js中部署CSS,JS,HTML,图像(等等).怎么做到这一点?

我对Node.js的了解非常有限.提前致谢!

web-applications code-structure node.js application-structure

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