- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 phantomJS 上遇到了一个奇怪的问题,不知何故丢失了应用于某些图像的转换。我有一个网页,在该网页中我有一个函数,可以获取一些 html 并将其粘贴到页面中。它看起来像这样:
function RenderRaw(html, id) {
elem = $("#raw");
elem.html(html);
}
现在,在我传递的 html 中,我有一些看起来像这样的图像:
<img id="map_layer0_tile_5_1_1" class="layerTile" style="width: 256px;
height: 256px; visibility: visible; transform: translate(89px, -13px);" src="tile/5/11/5">
现在在我的浏览器中,效果很好。我可以加载页面,运行传递一些 html 的函数,其中包含应用了转换的图像,它们都出现在正确的位置。我通过查看图像加载事件进行了一些调试(其中 debugDiv
只是页面其他位置的常规 div):
var imgs = elem.find("img");
imgs.on('load', function(e) {
var off = $(e.target).offset();
var p = $("<p>").text(e.target.outerHTML);
debugDiv.append(p);
debugDiv.append("<p>" + e.target.style.transform + "</p>");
debugDiv.append("<p>" + e.target.style.width + ", " + e.target.style.height + "</p>");
debugDiv.append("<p>" + e.target.src + ": top=" + off.top + ", left=" + off.left + "</p>");
}
我确实看到了我所期望的,特别是,我看到了
translate(89px, -13px)
我在哪里获得 style
的 transform
属性,以及 off.top
和 off.left
是什么我希望他们是这样。
但是,当我通过 phantomJS 运行它时,似乎 transform
被删除了。 outerHTML
看起来和以前一模一样,但我访问 style.transform
的行返回:
undefined
并不是说 style.width
和 style.height
仍然可以按预期访问。现在,如果不应用变换,我的图像就无法正确定位。
有人知道这里会发生什么吗?我的转换
去哪儿了?
编辑:
仔细观察,如果我 JSON.stringify
幻影中的 style
对象,我可以看到它没有 transform
属性,但它确实有 webkitTransform
。所以我猜 phantomJS 不支持 transform
?
最佳答案
看来问题是 phantomJS 2.0 根本不支持 transform
。 release notes中没有提到它很遗憾。为了解决这个问题,我在每个图像的加载事件中执行了此操作:
var thisImg = $(e.target);
if (e.target.style.transform === undefined && e.target.style.webkitTransform !== undefined) {
var style = thisImg.attr("style");
style += "-webkit-transform: " + /transform:([^;]*;)/.exec(style)[1];
thisImg.attr("style", style);
}
基本上提取transform
并将其复制到-webkit-transform
。
关于javascript - 消失的转变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32211731/
在尝试为 ContT monad 转换器建立一些直觉时,我(也许并不奇怪)发现自己很困惑。问题在于 shiftT 操作,它似乎没有做任何有用的事情。 首先是一个简单的例子,说明如何使用它 shiftT
我有 Item 1 Item 2 我想要切换 var elements = document.getElementsByName('R
执行此操作的最快方法是什么?左边括号中的变量返回 bool 值,它们表示窗口大小范围。 (例如,o1281 为 1281 及以上屏幕返回 true,o1025 为 1025 及以上屏幕返回 true,
我对编程还很陌生,但我的任务是维护一些由前员工创建的应用程序。我有一个 ?: 声明现在需要处理的不仅仅是真或假声明,但我不确定如何去做。有问题的代码是: MailDomainContext m
为什么 GMT-0400 在 1989 年之前转变为 GMT-0500? > new Date('1989-04-02T23:01:14.52Z') Sun Apr 02 1989 19:01:14
我们有一堆代理对(或 2 字节 utf8?)字符,例如 ��,这是作为 2 个字符存储为 UTF8 的祈祷 watch 情符号。在浏览器中呈现时,此字符串呈现为两个 ?? 例子:�� 我需要使用 ph
我知道我可以将字符串格式的 unixTime 转换为本地时间的毫秒val currentTimeMillis = serverTimeDateFormat.parse(iso8601).time 我想
我是一名优秀的程序员,十分优秀!