小编Ben*_*ank的帖子

可以在 SVG 中创建(或伪造)二维渐变吗?

我正在尝试创建一个必须动态生成图像的颜色选择器,并认为生成 SVG 比生成光栅图像要容易得多。不幸的是,我不知道如何表示将形成选择器中心的大二维渐变。

例如,如果当前选择的轴是蓝色和绿色,我需要绘制一个正方形,其左下角为黑色,左上角为蓝色,右下角为绿色,右上角为青色。

如果有一种方法可以通过叠加两个linearGradient填充的方块并调整它们的不透明度来实现这一点,我无法解决。我还尝试创建一个渐变,其起始结束颜色是其他渐变(希望我很聪明),但给我带来的只是“大黑无”。到目前为止,谷歌搜索一无所获。

我不想诉诸 256 个 1 像素高渐变的堆栈,这既是因为尺寸和复杂性的增加,也是因为我怀疑它不能很好地调整大小。也许对 SVG 有更多了解的人可以提出一些建议

svg gradient

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

是否可以确定是否在JavaScript中打开了一个命名窗口?

我正在进行一个站点间的单点登录项目,但是我的膝盖上出现了一个很小的问题。当用户注销“父”站点时,需要在包含“子”站点的弹出窗口中加载特定页面。但是,我不能存储对的返回值的引用window.open(…),因为在注销之前必须允许用户在每个站点上的任意位置进行导航。

如果我可以假设子站点始终处于打开状态,这将很容易,因为另一个window.open(…)到相同命名窗口的站点将更改其URL。然而,在弹出不能引起出现,如果它是尚未打开(不是所有用户都可以访问到子站点)。

我认为这给了我两个矛盾的场景。用户访问子站点时:

  1. 用户登录父站点。
  2. 用户点击子网站链接
  3. 子站点出现在名为“ child_popup”的窗口中。
  4. 用户在父站点中四处浏览,而忘记了子窗口的存在。
  5. 用户退出父站点。
  6. 子弹出窗口将重定向到子站点的注销页面。

并且当用户不访问或无法访问子站点时:

  1. 用户登录父站点。
  2. 用户在父站点中进行广泛浏览。
  3. 用户退出父站点。
  4. 不应出现任何弹出窗口!

所以我的局限性是:

  • 我无法在JS中存储对该窗口的引用,因为用户可以在访问子站点与注销之间导航到任意数量的页面。
  • 我对子站点的内容具有控制权(我的雇主经营父站点)。
  • 父站点无法转换为框架以提供“全局” JS作用域。:-)

我无法在Google或SO上找到任何相关资源。有没有办法做到这一点?

javascript

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

我的HTML专栏在哪里?

我最近有机会 ......完全重新设计我支持的网站的布局.在保持我的CSS简单,我的HTML语义的兴趣,我决定使用的修改版本的"圣杯"布局(其主要区别在于移动右列中的中心柱,从而进一步简化了里面的东西,并且使中心栏固定宽度).

在可忽略不计的数量之后,我在FF3,Chrome和Opera中使用了新的布局,这意味着是时候启动IE6了.可以预见,布局中断(左栏完全丢失).但是,我没想到它会如此惊人地突破 - 我似乎在IE6中触发了某种渲染错误,我既不能隔离也不能消除它.

在调整圣杯布局时,我最初省略了它使用的IE6特定的hack,因为它对右列的修改不是(不应该?),因为它占了该列的宽度,在我的布局中不会出现在同一级别.仍然,重新添加它是我的第一个猜测,但它结果需要一个非常奇怪的数字(246px,它没有出现在样式表中的任何其他地方),所以我尝试调整窗口大小以确保它不相关到页面大小.令我惊讶的是,该列然后向右跳跃了大约1000个像素,远远超出了页面的边缘.

回过头来删除IE6 hack,调整大小时会出现同样的行为,而不是从布局的左侧跳出页面,它在布局的右侧无处不在.我已经看到布局的每个部分,这看起来甚至是远程相关的,并且搜索了我所知道的所有IE6渲染错误,但似乎无法消除跳转页面调整大小的行为.

有没有人见过这个bug,如果它是bug?完整代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
    <head>
        <title>Modified grail layout</title>

        <style type="text/css">
            * {
                border: 0;
                margin: 0;
                padding: 0;
            }

            #main {
                background: white;
                overflow: auto;
                padding-left: 180px;
            }

            #content {
                background: #dfd;
                float: left;
                padding: 10px 10px 0;
                width: 800px;
            }

            #left {
                background: #ccc;
                float: left;
                margin-left: -100%;
                position: relative;
                padding: 10px 10px 0;
                right: 180px;
                width: 160px; …
Run Code Online (Sandbox Code Playgroud)

html css internet-explorer-6

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

在类中定义装饰器,这也可以在类定义中使用

我正在尝试将一个"子命令"系统实现为Python中的可继承类.我的预期用例类似于:

from command import Command
import sys

class MyCommand(Command):
    @Command.subcommand
    def foo(self):
        print "this can be run as a subcommand"

    def bar(self):
        print "but this is a plain method and isn't exposed to the CLI"

MyCommand()(*sys.argv)

# at the command line, the user runs "mycommand.py foo"
Run Code Online (Sandbox Code Playgroud)

我实现Command.subcommand了一个静态方法,一切正常,直到我尝试将子命令添加到父类,这让我TypeError: 'staticmethod' object is not callable.事后看来,显然不起作用:

class Command(object):
    @staticmethod
    def subcommand(method):
        method.is_subcommand = True

        return method

    @subcommand
    def common(self):
        print "this subcommand is available to all child classes" …
Run Code Online (Sandbox Code Playgroud)

python class decorator

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

如何在Eclipse中向Java文件添加自定义警告?

我想为.javaEclipse中的文件添加一个自定义警告消息(即在Problems选项卡的Warnings部分添加一个条目).

虽然我已经找到了关于创建插件和使用标记的信息(这里和其他地方),但我还没有找到任何关于扩展"问题发现"过程的讨论.我发现的大多数文章都没有讨论何时创建标记,只讨论如何以及那些假设我有兴趣将它们附加到自定义构建步骤或自定义编辑器的文章,这两者似乎都不适合我我想做.

如何创建一个警告,其功能类似于Window> Preferences> Java> Compiler> Errors/Warnings?

java eclipse eclipse-plugin

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

如何正确记录通过Object.defineProperties添加的实例成员?

我有一个类定义了一些实例属性Object.defineProperties,我很难让JSDoc 3认识到它们属于他们的类.

这是我正在使用的简化版本:

/** @exports mymodule */
function mymodule(exports) {
    /** @constructor
      * @param {String} foo A foo.
      * @param {String} bar A bar.
      * @classdesc Has a foo and a bar.
      */
    function Example(foo, bar) {
        Object.defineProperties(this, {
            /** A foo and a bar
              * @memberof Example
              */
            foobar: { enumerable: false, value: foo + bar, writable: false }
        });
    }

    exports.Example = Example;
}
Run Code Online (Sandbox Code Playgroud)

当我运行JSDoc,我得到的输出mymodule,Example,foo,和bar,但不会foobar …

javascript jsdoc

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

Python中基础36支持不均匀?

我最近一直在使用base-36,并且从未满足于将int转换为base-36字符串的通常答案.它看起来有点不平衡......

def to_base36(value):
    if not isinstance(value, int):
        raise TypeError("expected int, got %s: %r" % (value.__class__.__name__, value))

    if value == 0:
        return "0"

    if value < 0:
        sign = "-"
        value = -value
    else:
        sign = ""

    result = []

    while value:
        value, mod = divmod(value, 36)
        result.append("0123456789abcdefghijklmnopqrstuvwxyz"[mod])

    return sign + "".join(reversed(result))
Run Code Online (Sandbox Code Playgroud)

...与转换回来相比......

def from_base36(value):
    return int(value, 36)
Run Code Online (Sandbox Code Playgroud)

Python真的没有包含这个特定的电池吗?

python base36

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

高效的python代码,用于打印数字除数的乘积

我正在尝试解决涉及打印给定数量的所有除数的乘积的问题.测试用例的数量是1 <= t <= 300000,数字本身的范围可以从1 <= n <= 500000

我写了下面的代码,但它总是超过2秒的时间限制.有没有办法加快代码?

from math import sqrt

def divisorsProduct(n):
    ProductOfDivisors=1

    for i in range(2,int(round(sqrt(n)))+1):
        if n%i==0: 
            ProductOfDivisors*=i

            if n/i != i:
                ProductOfDivisors*=(n/i)    

    if ProductOfDivisors <= 9999:
        print ProductOfDivisors
    else:
        result = str(ProductOfDivisors)
        print result[len(result)-4:] 

T = int(raw_input())

for i in range(1,T+1):
    num = int(raw_input())
    divisorsProduct(num)
Run Code Online (Sandbox Code Playgroud)

谢谢.

python math

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

XSLT:如果没有输入文件,如何触发模板?

我正在创建一个模板,该模板基于单个字符串生成输出,通过参数传递,并且不使用输入XML文档. xsltproc似乎很高兴使用指定样式表的单个参数运行,但我没有看到在没有输入文件的情况下触发模板的方法(例如,没有参数xsltproc来运行命名模板).

我希望能够运行:

xsltproc --stringparam bar baz foo.xsl
Run Code Online (Sandbox Code Playgroud)

但我现在必须运行,"主"模板匹配"/":

echo '<xml/>' | xsltproc --stringparam bar baz foo.xsl -
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它发挥作用?我确定我在过去看过其他模板,这些模板本来是在没有输入文档的情况下运行的,但我不记得它们是如何工作的或者在哪里再次找到它们.:-)

xslt

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

什么时候使用.toString()是安全的?

值是否必须返回toString()才能调用value.toString()?你什么时候知道你可以调用value.toString()?

<script>
var newList = function(val, lst)
{
  return {
    value: val,
    tail:  lst,
    toString: function() 
    {
      var result = this.value.toString();
      if (this.tail != null)
        result += "; " + this.tail.toString();
      return result;
    },
    append: function(val)
    {
      if (this.tail == null)
        this.tail = newList(val, null);
      else
        this.tail.append(val);
    }
  };
}

var list = newList("abc", null); // a string
list.append(3.14); // a floating-point number
list.append([1, 2, 3]); // an array
document.write(list.toString());
</script>
Run Code Online (Sandbox Code Playgroud)

javascript tostring

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