小编jan*_*mon的帖子

有没有办法从UIView捕获WillRotateToInterfaceOrientation事件?

每个UIViewController都有一个名为willRotateToInterface的方法.

是否有可能在UIView中做到这一点?

这是否符合模型视图控制器的想法?

我能想到的唯一方法是将事件从UIViewController发送到UIView.

当前方向是否存在全局变量?

iphone objective-c uiviewcontroller uiview

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

jQuery克隆问题

我试图克隆一个div并更改此div中输入字段的名称.它适用于大多数浏览器,但IE 7不会更改输入字段的name属性.

演示:http://jsbin.com/iduro/7

HTML

<body>
  <pre></pre>
  <div><input value="Hello World" name="test"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

JS

var lastRow = $("body div:last"),
    newRow  = lastRow.clone(true)
              .show()
              .insertAfter(lastRow);

newRow.find('input').attr("name","test2");

$("pre").text( newRow[0].innerHTML );
Run Code Online (Sandbox Code Playgroud)

结果:

Firefox :(有效) <input value="Hello World" name="test2">

IE8(作品) <INPUT value="Hello World" name=test2 jQuery1273063250500="4">

IE7(错误): <INPUT value="Hello World" name=test jQuery1273063303968="4">

如您所见,IE7的名称不会更改为test2.

有没有明显的理由或解决方法?

jquery internet-explorer clone

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

&lt;img&gt; 尺寸属性在加载时不起作用

我使用 HTMLImageElement.sizes 来定义图像的宽度。

\n

https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/sizes

\n

\r\n
\r\n
img {\n  background: orange;\n  border: 2px solid black;\n  aspect-ratio: 1/1;\n  object-fit: contain;\n}
Run Code Online (Sandbox Code Playgroud)\r\n
<img srcset="https://www.dofactory.com/img/html/vangogh-sm.jpg 120w,\n            https://www.dofactory.com/img/html/vangogh.jpg 193w,\n             https://www.dofactory.com/img/html/vangogh-lg.jpg 278w"\n     sizes="(max-width: 710px) 120px,\n            (max-width: 991px) 193px,\n            278px">
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

尽管尺寸根据视口宽度正确设置,但图像尺寸仅在图像完全加载后才起作用。

\n

您可以在此视频中看到加载期间图像仅为 0x0px:

\n\n

我正在寻找一种干燥的方法,\xe2\x80\x99 不需要在 html 和 css 中定义和维护一次大小,因为这很难保持同步。sizes出于性能原因,该属性也是必需的: Why can\xe2\x80\x99t we just do this using css or javascript

\n

有没有什么技巧可以在下载图像之前使用已经存在的尺寸?

\n

html css

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

将一个元素放置在 #top-layer 之上

我创建了一个开发工具并使用 z-index 高于所有其他元素:

.devTool {
  position: fixed;
  z-index: 99999;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,一旦模式<dialog />元素在模式下打开,这就会中断modal

用户不再能够与 进行交互.devTool

原因是#top-layer所有元素之上的新概念: https ://developer.chrome.com/blog/what-is-the-top-layer/

有什么方法可以确保我的 devTool 始终位于所有元素之上(即使这些是模式对话框)并保持交互?

html css

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

如何在Imagick中设置修剪颜色?

我试图使用imagick删除图像的透明区域.

Image Magick提供了trim方法: Imagick :: trimImage

从图像中删除作为背景颜色的边缘.如果已针对ImageMagick版本6.2.9或更新版本编译了Imagick,则可以使用此方法.

如何设置Imagick可能修剪的颜色?

以下脚本将背景颜色设置为灰色.但是,修剪会删除蓝色背景颜色,如下所示.

$im = new Imagick( "1.png" );
// Set background color to grey
$im->setImageBackgroundColor( new ImagickPixel( "rgb(213,213,213)" ) );
$im->trimImage( 0 );
$im->writeImage('2.png');
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有没有办法限制修剪颜色?

imagick module version => 2.1.1-rc1

php imagick

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

如何使用`Backbone.View.events`定义来监听自定义子视图事件?

是否可以使用该Backbone.View.events定义来侦听自定义子视图事件?

儿童定义

所有click事件都被缓存并触发我的clicked功能:

var Child = Backbone.View.extend({
    events : {
        'click' : 'clicked'
    },
    clicked: function() {
       alert('View was clicked');
       this.trigger("customEvent");  
    },
    render: function() {
      this.$el.html("<span>Click me</span>");
    }
});
Run Code Online (Sandbox Code Playgroud)

父定义

为什么customEvent事件不能调用我的action函数?

var Parent = Backbone.View.extend({
    events : {
        'customEvent' : 'action'
    },
    action : function() {
       alert('My sub view triggered a custom event');  
    },
    render : function() {
      var child = new Child();
      this.$el.append(child.el);
      child.render();
    }
});
Run Code Online (Sandbox Code Playgroud)

创建并呈现父级

var parent …
Run Code Online (Sandbox Code Playgroud)

javascript events backbone.js

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

测量元素尺寸时忽略过渡

在元素转换完成后,是否有一种优雅的方法来预测元素的尺寸

例:

HTML:

<div id="demo">...</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#demo {
  max-height: 0;
  overflow:hidden;
  transition: 2s max-height;
}

#demo.expand {
  max-height: 1000px;
}
Run Code Online (Sandbox Code Playgroud)

JS:

 var demo = document.getElementById('demo');
 demo.className = 'expand';
 // Unfortunately the result will be 0px 
 // because the current height is measured
 alert(demo.offsetHeight);
Run Code Online (Sandbox Code Playgroud)

演示:

codepen

html javascript css jquery

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

用于替换javascript关键字的预处理器

我正在使用$ q库Angular版本,但这也与原始q库有关.

用法示例:

$q
  .when(someFunction)
  .then(function(){
    // ..
  })
  .catch(function(){
    // ..
  })
  .finally(function(){
    // ..
  });
Run Code Online (Sandbox Code Playgroud)

不幸的是,一些函数名称(例如finally)与javascript关键字冲突.
来自Angular参考:

"因为最终是JavaScript中的保留字,ES3 不支持保留关键​​字作为属性名称,所以你需要调用方法promise['finally'](callback) ,使你的代码IE8和Android 2.x兼容."

ECMA-262,官方标准,见http://www.ecma-international.org/publications/standards/Ecma-262.htm,声明:

7.6.1.1关键字

以下标记是ECMAScript关键字,不能在ECMAScript程序中用作标识符.

break           do              instanceof      typeof  
case            else            new             var 
catch           finally         return          void 
continue        for             switch          while 
debugger        function        this            with 
default         if              throw            
delete          in              try
Run Code Online (Sandbox Code Playgroud)

这意味着必须将第一个示例更改为以下代码才能使其与IE8一起使用:

$q
  .when(someFunction)
  .then(function(){
    // ..
  })
  ['catch'](function(){
    // ..
  })
  ['finally'](function(){
    // …
Run Code Online (Sandbox Code Playgroud)

javascript

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

如何在打字稿中键入类装饰器?

编写只接受特定类的类装饰器的正确方法是什么?

我尝试了以下方法:

class Component {
  age: number;
}

function registerComponent(name: string) {
  return <T extends Component>(constructor: T): T => {
    return constructor as T;
  }
}

@registerComponent("demo")
class C1 extends Component {

}
Run Code Online (Sandbox Code Playgroud)

结果如下:

Argument of type 'typeof C1' is not assignable to parameter of type 'Component'.
  Property 'age' is missing in type 'typeof C1'.
Run Code Online (Sandbox Code Playgroud)

尝试使用TypeScript Repl

typescript

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

更改本机浏览器事件的最佳方法是什么?

我试图currentTarget用vanilla javascript 临时修改事件的属性.

我的主要目标是在事件快速启动时实现非常快速的实现,而不是更改原始事件,或者至少在操作完成后将原始事件恢复为原始状态.

不幸的是,原型继承失败了Illegal invocation(chrome)或'get currentTarget' called on an object that does not implement interface Event.(firefox)或The Event.currentTarget getter can only be used on instances of Event(safari)错误:

// Trigger event for demonstration 
// in a real scenario that would be caused by a user
var event = new Event('demo');
document.documentElement.addEventListener('demo', eventHandler1, false);
document.documentElement.addEventListener('demo', eventHandler2, false);
document.documentElement.addEventListener('demo', eventHandler3, false);
document.documentElement.dispatchEvent(event);

// The event handlers:
function eventHandler1(event) {
  event.currentTarget = 'MyCustomValue';
  console.log(1, event.type, event.currentTarget); …
Run Code Online (Sandbox Code Playgroud)

javascript

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