获取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) 不知何故,通过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) 我正在使用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)
如何实现这一目标?
使用提供的默认路由,我被迫将参数命名为"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) 是否不可能(或者不可能)使用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) 我想在我的应用程序中开始使用NodaTime来管理时间,瞬间和一般时间本地化.
有时我会将时间戳保留在SQL Server 2008数据库中.我传统上使用UTC中的datetime2字段.这些时间戳将使用Noda创建.似乎这个日期转换为Noda's Instant可能是不可取的.
我应该用什么类型来坚持下去?
如果我在SQL中使用非整数,那么我的App层和DAL之间可能存在转换问题.但是,如果我坚持整数Noda瞬间,我将在相同的层之间进行逻辑耦合......并且我将无法在SQL中执行简单的日期聚合而不将其带入应用层或CLR.
Noda认为,在UTC中无法可靠地描述时刻,因为UTC中从未发生过某些时间.
我喜欢返回构造函数的模块模式,如下所述: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?
最终编辑:下面的文本墙可以通过简单地问"我可以使用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.= [
我编写了一个API,将在(1)Windows服务,(2)Web应用程序和(3)Windows窗体应用程序的同一个框中使用.他们都需要共享一小组常用数据(一些int,一个日期和一个字符串,我可以将其作为单个类的属性).
我可以使用什么样的锁定机制进行跨进程,以便三个进程可以安全地共享资源而不会遇到冲突?
请不要数据库,寻找不需要额外依赖性的解决方案.优选地,解决方案将以某种方式使用共享存储器或文件系统.
我正在尝试重现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;">-> drop here <-</div>
<div id="d2" style="border: 1px solid black;">and stuff will happen</div>
<div style="float: left;">mouse them all over </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) javascript ×3
c# ×2
sql ×2
angular ×1
angularjs ×1
asp.net-mvc ×1
html5 ×1
inheritance ×1
jquery ×1
locking ×1
module ×1
mysql ×1
nodatime ×1
sql-server ×1
svg ×1