- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 <A>
上设置类名元素(存在于原始 HTML 中),在使用 $.get 加载 SVG 元素时会在其下附加 SVG 元素。 SVG 元素具有不适用于 Chrome 的样式,除非我执行强制重新渲染的操作。例如,在 Developer View 中选中/取消选中样式属性的框,或者使用 Brackets IDE 并修改 CSS(这会导致 Brackets 撕裂我们所有的 CSS 并为每个键入的字符替换它)。
当我以至少 80 毫秒的间隔将类添加代码放在 setTimeout 上时,它可以工作。在 IE11、Edge、Safari 和 Firefox 中,它可以在没有这种解决方法的情况下工作。根据 Network pane,CSS 在脚本之前加载(也尝试将它们放在尾部而不是头部),这是 Chrome 没有正确管理渲染序列的问题(很可能试图使用最小的重新渲染算法太聪明了对我不利)。
我该如何正确处理?
这是一个 working version ,因为我硬编码了通常使用 jQuery 应用的样式(在生产中我会呈现这个服务器端,但它不是一个令人满意的解决方案)。
您可以验证在 navigation.js
中移动第 55-64 行进入 setTimeout
将使它工作。
在 Mac OS X 上使用 Chrome 版本 51.0.2704.103(64 位)
编辑:根据要求编辑相关的 HTML 和 JS,完整图片请参见上面的链接。
index.htm
<html>
<head>
<link rel="stylesheet" type="text/css" href="styles.css"></link>
<script type="text/javascript" src="scripts/jquery.min.js"></script>
<script type="text/javascript" src="scripts/navigation.js"></script>
</head>
<body>
<header>
<div id="logo" class="icon" data-src="images/logo.svg"></div>
<nav data-src="images/navigation.svg">
<a href="index.htm">news</a>
<a href="articles.htm">articles</a>
<a href="projects.htm">projects</a>
<a href="about.htm">about</a>
</nav>
navigation.js
$(document).ready(function() {
loadNavigationButtons();
});
function loadNavigationButtons() {
var buttonParts =
[
"matte",
"border",
"highlight",
"icon",
"selection"
];
return $.Deferred(function(callback) {
$("nav a").each(function(index) {
var navigationIconSet = $(this)
.closest("nav[data-src]")
.attr("data-src");
var buttonName = $(this).text();
$(this).text("");
if (document.URL.indexOf($(this).attr("href")) != -1) {
// Add navigation-selected class to <a>
$(this).addClass("navigation-selected");
} else {
// Add navigation-unselected class to <a>
$(this).addClass("navigation-unselected");
}
for (var partIndex in buttonParts) {
loadIcon(
// Prepend to this element.
$(this),
// Attempt to find a part for this specific button.
navigationIconSet + "#" + buttonName + "-" + buttonParts[partIndex],
// Fallback to generic part name.
navigationIconSet + "#" + buttonParts[partIndex],
// Class to apply.
"navigation navigation-" + buttonParts[partIndex]
// Not passing callback parameter
);
}
// Append button text.
$("<div></div>")
.text(buttonName)
.addClass("navigation navigation-text")
.appendTo($(this));
});
callback.resolve();
});
}
function loadIcon($container, iconUri, fallbackUri, classToApply, callbackParameter) {
if (~iconUri.indexOf("#")) {
var sourceComponents = iconUri.split("#");
var fallbackComponents;
if (fallbackUri) {
fallbackComponents = fallbackUri.split("#");
// Support fallback only within the same icon set.
if (sourceComponents[0] != fallbackComponents[0]) {
return $.Deferred(function(callback) {
callback.reject($container, null, callbackParameter)
});
}
} else {
fallbackComponents = [null, null];
}
return loadIconFromDefinition(
$container,
sourceComponents[0],
sourceComponents[1],
fallbackComponents[1],
classToApply,
callbackParameter);
} else {
return loadIconFromFile(
$container, iconUri, classToApply, callbackParameter);
}
}
function loadIconFromFile($container, iconUri, classToApply, callbackParameter) {
return $.Deferred(function(callback) {
$.get(iconUri).done(function(icon) {
callback.resolve(
$("svg", icon).prependTo($container),
null,
callbackParameter);
});
});
}
function loadIconDefinition(definitionUri) {
if (!loadIconDefinition.loaded) {
loadIconDefinition.loaded = {};
}
if (loadIconDefinition.loaded[definitionUri]) {
return loadIconDefinition.loaded[definitionUri];
}
loadIconDefinition.loaded[definitionUri] =
$.Deferred(function(callback) {
loadIconFromFile($("body"), definitionUri)
.then(function($loaded) {
// Hide definition after it's loaded.
$loaded.get(0).setAttributeNS(null, "style", "display:none");
callback.resolve($loaded);
});
});
return loadIconDefinition.loaded[definitionUri];
}
function loadIconFromDefinition(
$container, definitionUri, groupName, fallbackGroupName, classToApply, callbackParameter) {
return $.Deferred(function(callback) {
loadIconDefinition(definitionUri).then(function($loaded) {
if (fallbackGroupName &&
!$loaded.find("#" + groupName).length) {
groupName = fallbackGroupName;
}
callback.resolve(
$("<svg class=\"" + classToApply + "\"><use xlink:href='#" + groupName + "'></use></svg>")
.prependTo($container),
$loaded,
callbackParameter);
});
});
}
最佳答案
感觉这个问题在炼狱里度过了足够的时间。
建议的解决方法:
此解决方案未实现:
杂项:
关于javascript - 如何使用不完整的 CSS 处理 Chrome 渲染动态添加的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37983914/
具体详细介绍请看下文: 在使用文件进行交互数据的应用来说,使用FTP服务器是一个很好的选择。本文使用Apache Jakarta Commons Net(commons-net-3.3.jar)
我在日志文件中收到这些警告: WARN 2013-01-15 00:08:15,550 org.eclipse.jetty.http.HttpParser- HttpParser Full for
我在使用特定网页时遇到问题。当我按下链接时,我收到应用程序错误(不是 http 错误等,而是应用程序级别错误)。 但是我打开了开发人员工具和网络控制台,我看到没有请求发送到服务器。 所以我双击并选择查
我没有组装经验,但这是我一直在做的。如果在通过程序集中的指针传递参数和调用函数时缺少任何基本方面,我希望输入。 例如,我想知道是否应该还原ecx,edx,esi,edi,。我读到它们是通用寄存器,但我
我没有组装经验,但这是我一直在做的。如果在通过程序集中的指针传递参数和调用函数时缺少任何基本方面,我希望输入。 例如,我想知道是否应该还原ecx,edx,esi,edi,。我读到它们是通用寄存器,但我
我正在尝试创建完整 uiscrollview 的快照,所有内容大小,我已经搜索了很多,并且我在 SO 上找到了一些东西,如下所示: Getting a screenshot of a UIScroll
我想复制一个包含以下结构的Vector,对我来说重要的是在修改复制的 vector 时保持原始Vector完整: public class objet_poid_n { public int
给定一个示例字符串 s = '嗨,我的名字是 Humpty-Dumpty,来自“爱丽丝,爱丽丝镜中奇遇记”',我想将其分成以下 block : # To Do: something like {l =
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我正在尝试创建一个正则表达式来查找文本中的 Linux 文件路径,但是正则表达式对我来说非常陌生。我有下面的代码片段,它将识别下面文件结构的开头。 .*(/bin/|/home/).* 完成正则表达式
我正在寻找远程托管的 JPG 的尺寸、宽度和高度。我已经了解了如何通过下载完整图像来执行此操作。 但是,如果我可以通过仅下载足以获取此信息的方式来做到这一点,那将是理想的。 典型的图像大小为 200K
有没有办法让下面的代码: import traceback def log(message): print "%s: %s" %(traceback.extract_stack()[0:-1]
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
git show 显示了修订版中所做的所有更改。但是,它会打印出所有更改——而不仅仅是文件名。 git show --stat 只显示文件名,但它把它们截断了!有没有办法获得已更改文件名的完整列表?
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
当我在模板中调用我的模型 get_absolute_url 方法时,我想要一个绝对/完整的 url。在我的入门模型中,我有以下内容: def get_absolute_url(self): r
我正在使用 jQuery 1.5.1 这是我的代码: $('.cellcontent').animate({ left: '-=190'}, { easing: alert('start
我正在使用下面的方法删除条形图并使用新数据更新条形图,但这样做时出现了一个小故障/完整的图表消失 1 秒,直到加载新数据。但是是否可以通过仅增加/减少柱形而不实际消失图表来实现相同的目的。 d3.se
基于 this question 中的讨论,任何人都可以提供代码或代码链接,显示 NumericLiteralX 模块的完整实现(例如 this one )?我对 NumericLiteralX 模块
我的目标是检索网站的 html,并将其转换为可读的String。我下面的代码可以工作,但我遇到了一个技术问题:当我尝试检索 http://time.gov/HTML5 的 html 时,我在 andr
我是一名优秀的程序员,十分优秀!