我正在尝试设置一个页面,其中连续有几个标题,下面有一个描述性段落。当用户滚动标题时,段落将根据它们悬停的标题而改变。我希望每个标题都是不同的颜色,并且段落的字体颜色应该更改以匹配标题的颜色。我遇到的问题是让段落的颜色发生变化。
这是我的例子:
<script type="text/javascript">
function onover(caption)
{document.getElementById('text').innerHTML=caption;}
{document.getElementById('text2').innerHTML=caption;}
</script>
<a onmouseover="onover('Paragraph 1')" style="color:green">Title 1</a>
<a onmouseover="onover('Paragraph 2')" style="color:red">Title 2</a>
</br>
<div id="text" style="color:green">Paragraph 1</div>
<div id="text2" style="color:red"></div>
答案 0 :(得分:1)
更新因为OP想要替换文本,
<script type="text/javascript">
function onover(caption,color) {
document.getElementById('text').innerHTML=caption;
document.getElementById('text').style.color=color;
document.getElementById('text2').style.color=color;
}
</script>
<a onmouseover="onover('Paragraph 1','green')" style="color:green" id='one'>Title 1</a>
<a onmouseover="onover('Paragraph 2','red')" style="color:red">Title 2</a>
</br>
<div id="text" style="color:green">Paragraph 1</div>
答案 1 :(得分:0)
<script type="text/javascript">
function onover(caption, objId, obj)
{
document.getElementById(objId).innerHTML=caption;
document.getElementById(objId).style.color = obj.style.color;
}
</script>
<a onmouseover="onover('Paragraph 1', 'text', this)" style="color:green">Title 1</a>
<a onmouseover="onover('Paragraph 2', 'text2', this)" style="color:red">Title 2</a>
</br>
<div id="text" style="color:green">Paragraph 1</div>
<div id="text2" style="color:red"></div>
答案 2 :(得分:0)
document.getElementById('text2').style.color = 'blue';
会改变文字的颜色。
单独说明,
{document.getElementById('text2').innerHTML=caption;}
不属于您的onover函数。
答案 3 :(得分:0)
我强烈建议分离样式,逻辑和内容。它使您的代码更容易阅读维护。一些建议:
以下是如何实施这些建议的示例:
<style>
.red { color: red; }
.green { color: green; }
</style>
<div id="TitleBar">
<a data-text="Paragraph 1" class="green">Title 1</a>
<a data-text="Paragraph 2" class="red">Title 2</a>
</div>
<div id="text"></div>
<script src="http://code.jquery.com/jquery-git.js"></script>
<script>
$('#TitleBar').on('hover', 'a', function (e) {
var $evTarg = $(e.target),
$dest = $('#text');
$dest.html($evTarg.data('text')).attr('class', $evTarg.attr('class'));
});
</script>
最后一条评论 - 如果“段落x”文本超过两个单词,请考虑将文本存储在命名数组中,而不是将其嵌入源标记中。
答案 4 :(得分:0)
你最好通过CSS做到这一点。根本不需要编程。