迅速的背景变化,迅速回答
rapid background change upon prompt answer
我是JS的新手,我正在做一个简单的颜色猜谜游戏。到目前为止,一切都符合标准。
我唯一的问题是,我不能弄清楚如何使它,使背景立即改变用户输入(在提示点击[确定]后)。到目前为止,使用下面的代码,背景只有在点击[OK]后才会改变,我很确定这是可能的,因为我的教授在讲座中展示了一个例子,他在猜测正确的颜色后,背景颜色就会改变!
另外,如果有专业人士能给我一些改进我的代码的建议,那就太好了。我有一种感觉,它是混乱的,太复杂了,比它想要达到的效果。
PS:我知道js逻辑应该在页面中分开,但我的教授坚持我们用内联脚本做这个练习!
谢谢!
<body onload="doGame()">
<script>
var myBody = document.getElementsByTagName("body")[0];
var target;
var answer;
var guessInputText;
var guessInput;
var finished = false;
var guessAmount = 0;
var colors = ['Salmon', 'Tomato', 'Moccasin', 'Peru', 'Olive', 'Teal', 'Navy', 'Thistle', 'Beige', 'Gray'];
var colorsSorted = colors.sort();
var colorsSortedString = colors.join(', ');
function doGame() {
var randomColorNum = Math.random() * 10;
var randomColorNumInt = Math.floor(randomColorNum);
target = colors[randomColorNumInt + 1];
answer = target.charAt(0).toLowerCase() + target.slice(1).toLowerCase(); //makes sure answer is in lowercase
alert("The answer is " + target + " or " + answer); //for debugging
while(!finished) {
guessInputText = prompt('I am thinking of one of these colors:'n'n' +
colorsSortedString + ''n'n' +
'What color am I thinking of?');
guessInput = guessInputText.charAt(0).toLowerCase() + guessInputText.slice(1).toLowerCase(); //converts whatever input into lowercase
guessAmount += 1;
finished = checkGuess(); //checks to see if user input is correct
}
}
function checkGuess() {
if ((colors.indexOf(guessInputText.charAt(0).toUpperCase() + guessInputText.slice(1).toLowerCase()) > -1) == false) {
alert("Sorry, I don't recognize your color.'n'n" +
"Please try again!");
return false;
}
if (guessInput > answer) {
alert("Sorry, Your guess is incorrect!'n'n" +
"Hint: Your color is alphabetically higher than mine.'n'n" +
"Please try again!");
return false;
}
if (guessInput < answer) {
alert("Sorry, Your guess is incorrect!'n'n" +
"Hint: Your color is alphabetically lower than mine.'n'n" +
"Please try again!");
return false;
}
myBody.style.background = answer;
alert("Congratulations! You have guessed the color!'n'n" +
"It took you " + guessAmount + " guesses to finish the game!'n'n" +
"You can see the color in the background.");
return true;
}
</script>
</body>
如果你想在[OK]显示之前修改背景,你只需要移动这一行
myBody.style.background = answer;
但. .测试你的代码片段,当我在猜测颜色提示上按下OK后,背景就改变了。
那你到底想要什么?你能给我们举个例子吗?
相关文章:
- JS幻灯片与CSS背景颜色变化
- JavaScript:为什么不't将背景变化发送给用户's选择(简单)
- 滚动时背景图像发生变化
- Jquery-背景图像随select中的数据属性而变化
- 输入时Javascript背景颜色会发生变化
- 当更改为使用 JavaScript 固定时,背景大小会发生变化
- 随机变化的背景
- 两个按钮,可随背景位置变化而切换,并在输入中显示结果
- 页面加载时背景颜色发生变化
- 可缩放的背景图像,点击后会发生变化
- 悬停时列表项的背景颜色逐渐变化
- 主页链接'的背景颜色在Internet explorer中发生了变化,但在Mozilla Firefox中不起作
- 我应该在什么时候用CSS和Javascript控制背景图像的变化
- 火灾事件的背景变化
- 迅速的背景变化,迅速回答
- 如何改变文本颜色的背景变化
- 整个身体背景的定时背景变化
- css过渡背景变化不平滑
- 形式李背景变化
- 放慢背景变化持续时间与javascript