小编Lan*_*don的帖子

获取SVG元素的宽度/高度

获取svg元素尺寸的正确方法是什么?

http://jsfiddle.net/langdonx/Xkv3X/

Chrome 28:

style x
client 300x100
offset 300x100
Run Code Online (Sandbox Code Playgroud)

IE 10:

stylex 
client300x100 
offsetundefinedxundefined 
Run Code Online (Sandbox Code Playgroud)

FireFox 23:

"style" "x"
"client" "0x0"
"offset" "undefinedxundefined"
Run Code Online (Sandbox Code Playgroud)

有宽度和高度属性svg1,但.width.baseVal.value只有在我设置元素的宽度和高度属性时才设置.


小提琴看起来像这样:

HTML

<svg id="svg1" xmlns="http://www.w3.org/2000/svg" version="1.1">
    <circle cx="50" cy="50" r="40" stroke="black" stroke-width="1" fill="red" />
    <circle cx="150" cy="50" r="40" stroke="black" stroke-width="1" fill="green" />
    <circle cx="250" cy="50" r="40" stroke="black" stroke-width="1" fill="blue" />
</svg>
Run Code Online (Sandbox Code Playgroud)

JS

var svg1 = document.getElementById('svg1');

console.log(svg1);
console.log('style', svg1.style.width + 'x' + svg1.style.height);
console.log('client', svg1.clientWidth + 'x' + svg1.clientHeight);
console.log('offset', …
Run Code Online (Sandbox Code Playgroud)

javascript svg

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

AngularJS:反向复选框状态

不知何故,通过Angular的魔力,如果你使用ng-model并提供一个布尔值,如果所述布尔值为真,则检查你的复选框,如果为假则取消选中.

<input type="checkbox" ng-model="video.hidden">
Run Code Online (Sandbox Code Playgroud)

虽然仅此一点令人费解,但我实际上是试图反转已检查的状态,因为与todo示例不同,这todo.done意味着框被检查,我的模型更像是todo.incomplete.

不幸的是我的第一次猜测不起作用:

<input type="checkbox" ng-model="!video.hidden">
Run Code Online (Sandbox Code Playgroud)

我处于这样一个位置,模型已经由我决定,所以我不能改变它,也不想在客户端上按摩它(因为我将客户端对象发送回服务器,因为它是在受信任的环境中运行).

更新

这适用于1.3,并没有给你字符串(1.2.xxx给你字符串而不是布尔值):

<input type="checkbox" ng-model="video.hidden" ng-true-value="false" ng-false-value="true">
Run Code Online (Sandbox Code Playgroud)

angularjs

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

你如何在MySQL select语句中编写条件?

我正在使用MySQL,我想在我的SQL中做一些三元语句,如:

SELECT USER_ID, ((USER_ID = 1) ? 1 : 0) AS FIRST_USER
  FROM USER
Run Code Online (Sandbox Code Playgroud)

结果类似于:

USER_ID | FIRST_USER
1       | 1
2       | 0
3       | 0
etc.
Run Code Online (Sandbox Code Playgroud)

如何实现这一目标?

mysql sql

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

操作参数命名

使用提供的默认路由,我被迫将参数命名为"id".这对我的许多控制器动作来说都很好,但我想在某些地方使用一些更好的变量命名.我可以使用某种属性,以便在操作签名中包含更有意义的变量名称吗?

// Default Route:
routes.MapRoute(
  "Default",                                              // Route name
  "{controller}/{action}/{id}",                           // URL with parameters
  new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
);

// Action Signature:
public ActionResult ByAlias(string alias)
{
  // Because the route specifies "id" and this action takes an "alias", nothing is bound
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-mvc-routing

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

针对ngFor变量的Angular2 ngModel

是否不可能(或者不可能)使用ngModel来自的值ngFor?Angular是否试图保护我免受糟糕的表现?

效果很好:http://jsfiddle.net/langdonx/n5pjgev6/

<input type="text" [(ng-model)]="value">{{value}}
Run Code Online (Sandbox Code Playgroud)

效果不是很好:http://jsfiddle.net/langdonx/n5pjgev6/1

<li *ng-for="#name of names">
    <input type="text" [(ng-model)]="name">{{name}}
</li>
Run Code Online (Sandbox Code Playgroud)

EXCEPTION:无法重新分配变量绑定名称

我也尝试绑定到数组,其中......有点工作,但劫持焦点并引发异常:http://jsfiddle.net/langdonx/n5pjgev6/2/

<li *ng-for="#name of names; #i = index">
    <input type="text" [(ng-model)]="names[i]">{{name}}
</li>
Run Code Online (Sandbox Code Playgroud)

EXCEPTION:递归调用LifeCycle.tick

编辑:

我可以LifeCycle.tick使用更直接的方法解决问题,但重点仍然是因为ngFor重绘东西而被盗:http://jsfiddle.net/langdonx/n5pjgev6/3/

<li *ng-for="#name of names; #i = index">
    <input type="text" [value]="names[i]" (input)="names[i] = $event.target.value">{{names[i]}}
</li>
Run Code Online (Sandbox Code Playgroud)

javascript angular

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

如果应用程序使用NodaTime,我应该如何在SQL DB中保留时间戳?

我想在我的应用程序中开始使用NodaTime来管理时间,瞬间和一般时间本地化.

有时我会将时间戳保留在SQL Server 2008数据库中.我传统上使用UTC中的datetime2字段.这些时间戳将使用Noda创建.似乎这个日期转换为Noda's Instant可能是不可取的.

我应该用什么类型来坚持下去?

如果我在SQL中使用非整数,那么我的App层和DAL之间可能存在转换问题.但是,如果我坚持整数Noda瞬间,我将在相同的层之间进行逻辑耦合......并且我将无法在SQL中执行简单的日期聚合而不将其带入应用层或CLR.

Noda认为,在UTC中无法可靠地描述时刻,因为UTC中从未发生过某些时间.

sql sql-server n-tier-architecture sql-server-2008 nodatime

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

将继承与模块模式相结合

我喜欢返回构造函数的模块模式,如下所述:http: //elegantcode.com/2011/02/15/basic-javascript-part-10-the-module-pattern/

但是我不确定如何从使用此模式实现的对象继承.假设我实现了一个父对象...

namespace('MINE');  

MINE.parent = (function() { 
    // private funcs and vars here

    // Public API - constructor
    var Parent = function (coords) {
       // ...do constructor stuff here
    };

    // Public API - prototype
    Parent.prototype = {
       constructor: Parent,
       func1:  function ()    { ... },
       func2:  function ()    { ... }
    }

    return Parent;
 }());
Run Code Online (Sandbox Code Playgroud)

我如何定义一个子对象,它也使用继承的模块模式,parent例如,我可以有选择地覆盖func2

javascript inheritance design-patterns module

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

jQuery动画速度?

最终编辑:下面的文本墙可以通过简单地问"我可以使用jQuery指定动画的速度来总结animate()吗?所有提供的是" duration.

~~

animate()尽管我使用了"线性",但jQuery 似乎实现了缓和.我怎么能让两个盒子保持在一起,直到第一次完成@ 250px?第二个动画更快,因为它有更长的距离.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
    $(function()
    {
        $('#a').animate({left: '250px'}, 1000, 'linear');
        $('#b').animate({left: '500px'}, 1000, 'linear');
    });
</script>

<div id="a" style="background-color: red; position: relative; width: 50px; height: 50px;"></div>
<br/><br/>
<div id="b" style="background-color: red; position: relative;width: 50px; height: 50px;"></div>
Run Code Online (Sandbox Code Playgroud)

或者有一个jQuery carousel插件可以做到这一点(基于你在哪里鼠标移动鼠标移动)所以我不必重写它?我花了大约20分钟在谷歌上寻找一个,但无法想出任何我喜欢的东西.

ETA:我提供的示例非常简单,但我发现它的问题适用于更复杂的代码库.(1)去这里.(2)将鼠标放在C. Viper上,查看速度.(3)将鼠标放在Ryu上,但在完成之前,将鼠标移动到DIV的中间位置(使其停止).(4)将鼠标放回左侧,看看它的移动速度有多慢.

计算速度和距离的差异似乎是不可克服的.我所要做的就是重现我今天看到网站使用的一个可爱效果(本网站).但它是Mootools,而我是jQuery.= [

jquery jquery-animate

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

C#中的跨进程锁定

我编写了一个API,将在(1)Windows服务,(2)Web应用程序和(3)Windows窗体应用程序的同一个框中使用.他们都需要共享一小组常用数据(一些int,一个日期和一个字符串,我可以将其作为单个类的属性).

我可以使用什么样的锁定机制进行跨进程,以便三个进程可以安全地共享资源而不会遇到冲突?

请不要数据库,寻找不需要额外依赖性的解决方案.优选地,解决方案将以某种方式使用共享存储器或文件系统.

c# multithreading locking

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

更改HTML5拖放文件的鼠标光标(GMail拖放)

我正在尝试重现GMail处理html5拖放附件的方式 - 只要您在页面上拖动文件,它就会显示一个新元素供您放置.我得到了那个部分(它没有像我想象的那样直截了当).

现在我试图通过在鼠标悬停在除drop元素之外的任何其他元素上时更改鼠标光标来对其进行修改,以告知用户此处不允许丢弃.我想我可以使用自定义光标来完成它,但这似乎不是GMail正在做的事情. 该规范建议也可以更改鼠标光标,但我似乎无法使用dropzone/effectAllowed使其正常工作.

任何帮助将不胜感激,这是我目前的设置:http://jsfiddle.net/guYWx/1/

ETA:这是我最终的结果:http://jsfiddle.net/guYWx/16/

<body style="border: 1px solid black;">
    <div id="d0" style="border: 1px solid black;">drag files onto this page</div>
    <div id="d1" style="border: 1px solid black; display: none; background-color: red;">-&gt; drop here &lt;-</div>
    <div id="d2" style="border: 1px solid black;">and stuff will happen</div>
    <div style="float: left;">mouse them all over&nbsp;</div>
    <div style="float: left;">these elements</div>
    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    <div>end page</div>
</body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
    var resetTimer;

    var reset = function()
    {
        $('#d1').hide();
    };

    var f …
Run Code Online (Sandbox Code Playgroud)

html5 drag-and-drop

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