Как добавить изображения в текстовый дисплей для счетчика кликов? <изображение> <количество кликов>
У меня есть эффект клика по клику для моей веб-страницы, и когда я нажимаю на него, появляется текст
Вы нажали кнопку -??? - время (??? будет количество кликов)
Эффект onclick прекрасно работает, но мне было интересно, можно ли изменить отображение результата. Видите ли, я хотел бы, чтобы вместо "Вы нажали кнопку", иметь миниатюрную версию изображения, так что это как
miniature_image -???
Если это вообще понятно.
Это мой текущий скрипт для моей кнопки
Javascript
function clickCounter(){
var audio = document.getElementById("audio");
audio.play();
if(typeof(Storage)!=="undefined"){
if (localStorage.clickcount)
{
localStorage.clickcount=Number(localStorage.clickcount)+1;
}
else
{
localStorage.clickcount=1;
}
document.getElementById("result").innerHTML="<center><b>You have clicked the poop
</b>"+ localStorage.clickcount + "<b> times!</b></center>";
}
else{
document.getElementById("result").innerHTML="I'm sorry to inform you that your browser
does not support this web storage... I guess you could say that your browser is...
shit! awwww yeaahh!";
}
cursor: pointer;
}
HTML
<center>
<font face="chiller" color="#603913" "font size="300" <align="center"><b>Click the
poop!</b>
</center>
<center>
<p><picture onclick="clickCounter()"><picture
onmouseover="document.getElementById('touch').play()"><img src="poop.png"></button></p>
</center>
<audio id="audio" src="fart-01.wav"></audio>
<audio id="touch" src="sticky goo.wav"></audio>
<div id="result"></div>
Я уже пытался поменять часть "Вы нажали кнопку" с источником изображения. как это
document.getElementById("result").innerHTML="<center><img src="poopamount">"+ localStorage.clickcount + "</center>";
но это просто приводит к исчезновению эффекта нажатия кнопки. Я также пытался использовать document.GetElementById("изображение"), но это тоже не сработало (хотя я не уверен, правильно ли я его настроил)
Как мне добавить картинку перед количеством кликов? Мне нужно, чтобы это было частью результата, потому что, как вы можете видеть из моего сценария, он центрирован, и простое расположение изображения не сработает, потому что количество диджитов меняется.
Вы можете проверить мою веб-страницу по ссылке в моем профиле stackru, если считаете, что это поможет.
Спасибо всем заранее!
2 ответа
Вот ссылка на скрипку, которая, по моему мнению, решает вашу проблему: http://jsfiddle.net/62bwav2L/
В вашем коде я вижу два div с одинаковым идентификатором, что недопустимо - идентификаторы должны быть уникальными
<div id="result"></div>
...
<div id="result"></div>
так - изменилось что:
<div id="resultPoopClick"></div>
...
<div id="result"></div>
и тогда вы можете пойти дальше и установить свой innerHTML с тэгом img и всем (не то, что это особенно элегантный способ сделать это - но это будет работать)
document.getElementById("resultPoopClick").innerHTML = "<center>" + localStorage.clickcount + " <img src='http://inftek1.dyndns.org/daniel/Poop/poop.png' width='5%'/></center>";
Это может быть проблемой из-за времени запуска сценария.
Вот исправление и оно работает для меня
<center>
<p>
<picture onclick="clickCounter()">
<picture onmouseover="document.getElementById('touch').play()">
<img src="http://inftek1.dyndns.org/daniel/Poop/poop.png">
</button>
</p>
</center>
<audio id="audio" src="http://inftek1.dyndns.org/daniel/Poop/fart-01.wav"></audio>
<div id="result"></div>
<audio id="touch" src="http://inftek1.dyndns.org/daniel/Poop/sticky goo.wav"></audio>
<div id="result"></div>
<script>
function clickCounter() {
var audio = document.getElementById("audio");
audio.play();
if (typeof (Storage) !== "undefined") {
if (localStorage.clickcount) {
localStorage.clickcount = Number(localStorage.clickcount) + 1;
} else {
localStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "<center>" + localStorage.clickcount + "</center>";
} else {
document.getElementById("result").innerHTML = "Your browser does not support the contents of this webpage";
}
//cursor: pointer;
}
</script>
Вот скрипка