Не работает функция если id изображения меняю на clacc.
Всех с днем Смеха. Столкнулся с проблемой следующего характера. Если в HTML изображению присваиваю id? то функция работает, если присваиваю clacc, то не работает. В чем тут проблема спецы JS?
Вот мои коды: Тут работает
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<style type='text/css'>
#brevno {
display:none;
}
</style>
<script type='text/javascript'>
window.onload=function(){
var image = document.getElementById("brevno");
setTimeout(() => image.style.display = "block", 3000);//время задержки показа
setTimeout(() => image.style.display = "none", 10000);// время показа будет
</script>
</head>
<body>
<img id="brevno" src="pictures/brevno.gif">
</body>
</html
А тут нет
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<style type='text/css'>
.brevno {
display:none;
}
</style>
<script type='text/javascript'>
window.onload=function(){
var image = document.querySelector("brevno");
setTimeout(() => image.style.display = "block", 3000);//время задержки показа
setTimeout(() => image.style.display = "none", 10000);// время показа
}
</script>
</head>
<body>
<img class="brevno" src="pictures/brevno.gif">
</body>
</html
|
var image = document.querySelector("*!*.*/!*brevno");
В querySelector перед классом должна стоять точка, либо используйте вместо querySelector getElementsByClassName
var image = document.getElementsByClassName("brevno")?.at(0);
|
Nexus, спасибо с точкой работает. Знаю же, что надо ставить точку, но как-то пропустил. Попутный вопрос. Как правильно дописать скрипт с классом, чтобы подобным образом, но естественно с разными временными показателями, появлялись и исчезали ещё четыре картинки?
|
Как-то так:
<img class="blink-image brevno" src="pictures/brevno.gif">
<img class="blink-image brevno2" src="pictures/brevno.gif">
<img class="blink-image brevno3" src="pictures/brevno.gif">
<img class="blink-image brevno4" src="pictures/brevno.gif">
<script>
document.querySelectorAll('.blink-image').forEach((image, index) => {
setTimeout(() => image.style.display = "block", (index * 1000) + 3000);
setTimeout(() => image.style.display = "none", (index * 1000) + 10000);
});
</script>
|
Nexus, и вновь Вы меня выручаете, сейчас попробовать не могу, занят, но уверен, что всё будет работать. Наберусь наглости, задам ещё один вопрос. Как тут в скрипте сделать , чтобы картинки плавно появлялись и исчезали? Приношу свои извинения, за то что задал так много вопросов.
|
Nexus, сделал вроде так как Вы советовали, но что вновь пошло не так. Первая картинка (бревно)появляется как надо, а вот от второй и третьей на экран выводятся только их значки, но они появляются и исчезают. вот картинка
![]() Вот код, который у меня получился
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Показать и скрыть</title>
<link rel="stylesheet" href="styles/style.css">
<style type='text/css'>
.brevno {
display:none;
}
.roza {
display:none;
}
.lutik {
display:none;
}
</style>
</head>
<body>
<div class="container">
<div class="image-stack">
<img class="зеленый"
src="pictures/зеленый.png" alt=""/>
<img class="черный"
src="pictures/черный.png" alt=""/>
<img class="blink-image brevno" src="pictures/brevno.gif" alt="бревно"/>
<img class="blink-image roza" src="pictures/roza.png" alt="роза"/>
<img class="blink-image lutik" src="pictures/lutik.png" alt="лютик"/>
</div>
</div>
<script src="scripts/script.js"></script>
</html>
document.querySelectorAll('.blink-image').forEach((image, index) => {
setTimeout(() => image.style.display = "block", (index * 1000) + 3000);
setTimeout(() => image.style.display = "none", (index * 1000) + 10000);
});
я так понимаю, что показ и скрытие картинок будет происходить по в ременным показателям в скрипте, т.е. в одно и тоже время для всех картинок, а надо, чтобы временные показатели для каждой картинки были своими. Что я опять не так сделал? Ещё раз спасибо за помощь, и мои извинения за назойливость. |
С показом картинок я разобрался. Всё работает. Осталось сделать временные показатели для каждой картинки и если возможно решить вопрос плавным появлением и скрытием.
|
Цитата:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Показать и скрыть</title>
<link rel="stylesheet" href="styles/style.css">
<style type='text/css'>
.blink-image {
opacity: 0;
width: 150px;
transition: opacity 1.2s;
}
.brevno.open {
opacity: 1;
transition: opacity 1s;
}
.roza.open {
opacity: 1;
transition: opacity .3s;
}
.lutik.open {
opacity: 1;
transition: opacity .7s;
}
</style>
</head>
<body>
<div class="container">
<div class="image-stack">
<img class="зеленый" src="pictures/зеленый.png" alt="" />
<img class="черный" src="pictures/черный.png" alt="" />
<img class="blink-image brevno" src="https://diomaks.com/images/tree.gif" alt="бревно" />
<img class="blink-image roza" src="https://pngicon.ru/file/uploads/2_8-256x256.png" alt="роза" />
<img class="blink-image lutik" src="https://cdn-icons-png.flaticon.com/256/8958/8958580.png" alt="лютик" />
</div>
</div>
<script>
const arr = [{show : 1000, hide : 4000}, {show : 5000, hide : 8000}, {show : 3000, hide : 5000}];
document.querySelectorAll('.blink-image').forEach((image, index) => {
let {show, hide} = arr[index];
setTimeout(() => image.classList.add('open'), show);
setTimeout(() => image.classList.remove('open'), hide);
});
</script>
</body>
</html>
|
рони, Огромное Вам спасибо. Это то что надо. На другом форуме я так и не добился правильного результата на свои вопросы. Жаль, что тут на форуме нет оценки полученным ответам. Или я их просто не нашел?
Короче, для Вас и Nexus куча благодарностей. Живите долго и не болейте. |
| Часовой пояс GMT +3, время: 16:54. |