gpt4 book ai didi

javascript - 切换背景,同时切换文字

转载 作者:行者123 更新时间:2023-11-28 18:14:15 24 4
gpt4 key购买 nike

我能够让文本无限循环并且主体颜色改变一次:

<?php?>
<style type="text/css">
<!--
header{background-color:orange;}
#color1{background-color:red;}
#color2{background-color:green;}
#color3{background-color:blue;}
-->
</style>

<script type="text/javascript">
<!--
var flip = (function() {
var flip = ['_addText1','_addText2','_addText3'];
var count = -1;
return function() {
return flip[++count % flip.length];
}
}());
-->
</script>


<body id="color1">

<header onclick="document.getElementById('click').innerHTML = flip(); document.getElementById('color1').setAttribute('id', 'color2');">
<h1>StaticText<a id="click">_ThisWillChange</a></h1>
<p>Click anywhere in the header to change the text above.<br />
This will also change the body color.</p>
</header>

</body>
<?php?>

第一个问题是;如果我向“onclick”属性添加更多颜色更改,它会停止一起工作。基本上我希望颜色与文本一起循环:

document.getElementById('color2').setAttribute('id', 'color3');
document.getElementById('color3').setAttribute('id', 'color1');

第二个问题是我对 javascript 不是很“流利”。老实说,我真的很幸运我明白了这么多。

我确信有一种方法可以将它全部放入 javascript(以保持我的 HTML 干净),但我不知道如何做。

任何帮助将不胜感激!提前致谢...

最佳答案

如果您如此热衷于设置颜色,为什么要更改元素的 id

您可以只在 body 元素上添加类,它应该会为您完成工作。

其次,内联绑定(bind)事件是一种不好的做法。也使用 javascript 绑定(bind)事件。

<body id="color1" class="color1">

这是编写代码的一种方式。

代码

var header = document.getElementsByTagName('header')[0];

header.addEventListener('click', function () {
var body = document.getElementById('color1');
document.getElementById('click').innerHTML = flip("text");
body.className = flip("color");
});


var flip = (function () {
var flip = ['_addText1', '_addText2', '_addText3'],
colors = ["color1", "color2", "color3"];
var count = -1,
colorCount = -1;
return function (arg) {
if(arg === 'text')
return flip[++count % flip.length];
if(arg === 'color')
return colors[++colorCount % colors.length];
}
})();

HTML

<body id="color1" class="color0">
<header>
<h1>StaticText<a id="click">_ThisWillChange</a></h1>

<p>Click anywhere in the header to change the text above.
<br />This will also change the body color.</p>
</header>
</body>

CSS

header {
background-color:orange;
}
.color0 {
background-color:yellow;
}
.color1 {
background-color:red;
}
.color2 {
background-color:green;
}
.color3 {
background-color:blue;
}

Check Fiddle

关于javascript - 切换背景,同时切换文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18151776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com