【发布时间】:2012-08-21 10:46:42
【问题描述】:
使用 javascript,我从 html div 标签中的文本中随机挑选一个单词,并用 span 标签包围它。使用 span 标签的类,我尝试执行单词颜色从黑色到红色的 CSS 转换。然后我删除 span 标签以将单词改回黑色。我要找的效果是“闪字”。
我设法让单词改变颜色,但无法让平滑的 CSS 过渡正常工作。
我的问题是:为什么 CSS 过渡不起作用?
我的问题似乎类似于this question,但我没有设法让“强制布局”的解决方案在我的情况下起作用。
我希望可以提供指向test code I am working with 的工作链接,而不是在此处发布代码 (javascript file here)。如果没有,我当然会根据要求在这篇文章中添加代码。
提前感谢您!我一整天都在努力解决这个问题,但没有成功。是时候承认我需要帮助了:-)
编辑:添加代码。
HTML:
<div id="message">
Some words here.
</div>
CSS:
div#message span
{
color: black;
}
div#message span.redtext
{
transition: color 5s ease-out 0s;
color: red;
}
Javascript:
//Insert span around word
var newText = text.split(randomWord).join('<span>' + randomWord + '</span>');
$("#message").html(newText);
//Request property that requires layout to force a layout
var x = $("#message").clientHeight;
//Add class to span
var newText = newText.split('<span>').join('<span class="redtext">');
$("#message").html(newText);
【问题讨论】:
-
为什么不将 div 中的每个单词转换为
DOMContentLoaded上的跨度,然后只更改随机跨度的类别?另外,$("#message").clientHeight是undefined,你需要$("#message")[0].clientHeight -
是的,发布你的代码会很好,因为 1. 关于 SO 的问题应该对未来的读者有一些意义,所以如果你的服务器出现故障或文件被修改,问题和答案将将来仍然有意义;和 2. 没有发布代码(仅链接),看起来有人在特定时间点寻求帮助解决其代码中的问题(可能因过于本地化而关闭) - 但我看到你努力将其最小化到已经是一个可编译的例子。所以,是的,在提问时发布一些相关代码。
=] -
感谢您的回复!您的两点很有道理 Fabricio,我将为这个问题添加代码,并为以后的问题提供代码。
标签: javascript css css-transitions