按钮循环3个状态变化
Button to cycle through 3 state changes
我是JS的新手,正在做一个类分配,需要:
当用户单击突出显示按钮时,将css类应用于每个其他li元素,使颜色交替,并使图像出现。
我有麻烦让颜色变化的开关工作,我也不能让图像显示。
<script>
var colors = new Array()
colors[0] = "#cc0099";
colors[1] = "#a4c400";
colors[2] = "#9900cc";
var counter = 0;
window.onload = function()
{
var highlightBtn= document.getElementById("highlight_btn");
highlightBtn.onclick = switchColors;
}
function switchColors()
{
var imgSrc = "images/" + [i];
var changeLI = document.getElementsByClassName("change");
changeLI.innerHTML = counter;
counter++;
}
</script>
<h1>Happy Mothers Day!</h1>
<h2>Things to get Mom:</h2>
<ul>
<li class="change">New Plants</li>
<li>Flowers</li>
<li class="change">A Day at the Spa</li>
<li>A Picture of Yourself</li>
<li class="change">New Shoes!</li>
<li>Anything with a Heart on It</li>
<li class="change"> Chocolate</li>
</ul>
<input id="highlight_btn" type="button" value="Highlight">
使用getElementsByClassName代替getClass, getClass甚至没有在文档中定义。要改变颜色,使用Element.style.color属性。
var changeLi = document.getElementsByClassName("change");
for(var i = 0; i < changeLi.length; i ++) {
changeLi[i].style.color = colors[i];
});
您可以这样做(确切地说您想要什么并不清楚),但这向您展示了原则。
HTML<h1>Happy Mothers Day!</h1>
<h2>Things to get Mom:</h2>
<img id="mom" src="">
<ul>
<li class="change">New Plants</li>
<li>Flowers</li>
<li class="change">A Day at the Spa</li>
<li>A Picture of Yourself</li>
<li class="change">New Shoes!</li>
<li>Anything with a Heart on It</li>
<li class="change">Chocolate</li>
</ul>
<input id="highlight_btn" type="button" value="Highlight">
Javascript var colors = [];
var images = [];
var counter1 = 0;
var counter2 = 0;
colors.push("#cc0099");
colors.push("#a4c400");
colors.push("#9900cc");
images.push("http://imageshack.us/scaled/thumb/104/9071003006mini2lpl0.jpg");
images.push("http://imageshack.us/scaled/thumb/121/spirra.jpg");
images.push("http://imageshack.us/scaled/thumb/123/s4020001ret9qr.jpg");
function switchColors() {
var changes = document.getElementsByClassName("change");
Array.prototype.forEach.call(changes, function (change) {
change.style.backgroundColor = colors[counter1];
});
counter1 += 1;
if (counter1 > colors.length - 1) {
counter1 = 0;
}
document.getElementById("mom").src = images[counter2];
counter2 += 1;
if (counter2 > images.length - 1) {
counter2 = 0;
}
}
window.addEventListener("load", function () {
document.getElementById("highlight_btn").addEventListener("click", switchColors, false);
}, false);
在jsfiddle 相关文章:
- React redux初始化功能,无论状态变化如何
- 检测Ionic中特定的应用程序状态变化
- ReactJS-这个状态中的数组在删除时被正确更新,但结果是't,直到以后的状态发生变化
- 消除淘汰中引导程序开关状态变化的歧义
- 反应组件交互和全局状态变化
- 根据单选按钮的状态变化使儿童内容出现/消失
- 观察angular ui路由器的状态变化
- 如何与Redux沟通React组件之间的UI状态变化
- html5事件监听器详细节点状态变化
- 角度/离子谷歌地图的状态变化
- ReactJS -检测状态变化的问题
- 处理ReactJs中的状态变化
- 按钮循环3个状态变化
- 将不断变化的属性值设置为子状态变量
- 捕捉输入字段验证状态的变化
- 离子的状态不断变化.带notify false的transitionTo重置范围变量
- 每次状态变化时的离子运行函数
- FP:在没有实际状态变化的情况下反映状态
- 当Vuex存储状态发生变化时,如何更新Vue组件属性
- ReactJS:如何测试状态变化