Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Появление и исчезновение (https://javascript.ru/forum/misc/74718-poyavlenie-i-ischeznovenie.html)

Владислав Star 02.08.2018 18:01

Появление и исчезновение
 
Здравствуйте, к примеру есть блок из onclick при нажатии на него появляеться рандомный из 10 других блоков а потом исчезает через N секунд и так новый блок при каждом появлении, помогите сделать в js, буду благодарен

рони 02.08.2018 18:11

Владислав Star,
сделайте минимальный макет.

Dilettante_Pro 02.08.2018 18:22

Владислав Star,
Не вполне понятно:
Цитата:

Сообщение от Владислав Star
есть блок

Этот блок всегда виден или тоже исчезает через N секунд?
Цитата:

Сообщение от Владислав Star
появляеться рандомный из 10 других блоков

А эти блоки кликабельны?

j0hnik 02.08.2018 18:34

полагаю как то так

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	.block{
		display: none;
	}
</style>
</head>
<body>
	<button>Пуск</button>

	<div class="block">1</div>
	<div class="block">2</div>
	<div class="block">3</div>
	<div class="block">4</div>
	<div class="block">5</div>
	<div class="block">6</div>
	<div class="block">7</div>
	<div class="block">8</div>
	<div class="block">9</div>
	<div class="block">10</div>

	<script>
		document.querySelector('button').onclick = function(){
		var block = [...document.querySelectorAll('.block')].sort(_=>Math.random() - 0.5), i = 0;
			(run=()=>{
				block[i].style.display = 'block';
				setTimeout(()=>{
					block[i].style.display = 'none';
					if(++i<block.length) run();
				},1000); //время 
			})();
		};
	</script>
</body>
</html>

Владислав Star 02.08.2018 18:41

10 блоков из стилем display:none есть или блок ил кнопка по которой кликаеш и появляеться случайный блок из 10 потом исчезает, еще раз кликаеш появляеться еще какой то другой и так до бесконечности

<div id="one" style="position:absolute;height:100px;width:100px; display:none;
background:blue"></div>
и таких штук 10

и есть <button onclick="myfunction()">Click me!</button>

рони 02.08.2018 18:41

Владислав Star,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

j0hnik 02.08.2018 18:45

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	.block{
		position:absolute;
		height:100px;
		width:100px;
		display:none;
		background:blue;
	}
</style>
</head>
<body>
	<button>Click me!</button>

	<div class="block">1</div>
	<div class="block">2</div>
	<div class="block">3</div>
	<div class="block">4</div>
	<div class="block">5</div>
	<div class="block">6</div>
	<div class="block">7</div>
	<div class="block">8</div>
	<div class="block">9</div>
	<div class="block">10</div>

	<script>
var block = document.querySelectorAll('.block');
		document.querySelector('button').onclick = function(){
		var rnd = Math.floor(Math.random() * 10);
				block[rnd].style.display = 'block';
				setTimeout(()=>{
					block[rnd].style.display= '';
				},1000); //время 
		};
	</script>
</body>
</html>

рони 02.08.2018 19:03

j0hnik,
строка 36, а без 'none' могёшь? :)

j0hnik 02.08.2018 19:16

рони,
block[rnd].style= '';

так?

рони 02.08.2018 19:18

j0hnik,
да, и если интересно ещё один вариант! :thanks:

рони 02.08.2018 19:19

j0hnik,
лучше так
block[rnd].style.display = '';

как сделать тоже самое, но по другому?

Владислав Star 02.08.2018 19:20

Спасибо большое!!! То что нужно

Владислав Star 02.08.2018 19:21

Спасибо!!!

j0hnik 02.08.2018 19:24

рони,
даже не один, их много

рони 02.08.2018 19:33

j0hnik,
пишите варианты.

j0hnik 02.08.2018 19:42

рони,
block[rnd].style.cssText = //и тут вариантов много.
пиши свой, мне в зал бежать надо.

рони 02.08.2018 19:52

j0hnik,
бегите, ваш вариант не принят, возьмите вашу зачётку, приходите на пересдачу, как освободитесь. :)

рони 02.08.2018 20:01

Цитата:

Сообщение от j0hnik
block[rnd].style.cssText

Цитата:

Сообщение от j0hnik
block[rnd].style= '';

слишком много свойств можно затронуть!
строка 34 вы установили одно свойство, его и отмените.
block[rnd].style.display = 'block';

j0hnik 03.08.2018 00:03

Цитата:

Сообщение от рони
бегите, ваш вариант не принят, возьмите вашу зачётку, приходите на пересдачу, как освободитесь.

я это... пары прое**л, не вкурсах теперь.. магар с меня в общем

j0hnik 03.08.2018 00:04

рони,
этот вариант чем то лучше block[rnd].style.display = ''; или вы просто знания проверить хотите учитель?

рони 03.08.2018 00:21

Цитата:

Сообщение от j0hnik
этот вариант чем то лучше

незнаю, но вариант о котором речь, скорее всего вы знаите.

j0hnik 03.08.2018 00:26

Давайте по старинке в угадайку, это что-то из нового?

j0hnik 03.08.2018 00:27

hidden?

рони 03.08.2018 00:31

Цитата:

Сообщение от j0hnik
это что-то из нового?

ie > 8

рони 03.08.2018 00:33

j0hnik,
рыть тут
block[rnd].style.display = '';

всё тоже самое, почти

j0hnik 03.08.2018 01:05

.visibility = 'hidden'
.setAttribute("style",
classList.add('hide')'

рони 03.08.2018 01:18

j0hnik,
задача в строке 10, убрать display = "block", чтобы алерт выдал none.
<head>
    <style type="text/css">
    div{
        display: none;
    }

    </style>
    <script type="text/javascript">
        function Remove (elem) {
           //elem...
           alert(window.getComputedStyle(elem, "").display);//none
        }
    </script>
</head>
<body>
    <div onclick="Remove(this);" style="display: block; color: red" >Remove</div>
</body>

j0hnik 03.08.2018 13:43

рони,
я не знаю

рони 03.08.2018 13:52

removeProperty
 
Цитата:

Сообщение от j0hnik
я не знаю

наверно я вас совсем запутал ... sorry!
<head>
    <style type="text/css">
    div{
        display: none;
    }

    </style>
    <script type="text/javascript">
        function Remove (elem) {
           elem.style.removeProperty("display");
           alert(window.getComputedStyle(elem, "").display);//none
        }
    </script>
</head>
<body>
    <div onclick="Remove(this);" style="display: block; color: red" >Remove</div>
</body>

removeProperty

Dilettante_Pro 03.08.2018 13:55

А вот так?
Радикальный способ
<head>
    <style type="text/css">
    div{
        display: none;
    }

    </style>
    <script type="text/javascript">
        function Remove (elem) {
           elem.style="";
           alert(window.getComputedStyle(elem, "").display);//none
        }
    </script>
</head>
<body>
    <div onclick="Remove(this);" style="display: block; color: red" >Remove</div>
</body>

j0hnik 03.08.2018 13:56

Dilettante_Pro,
Было уже, почитайте темку

рони,
это жесть, я бы еще долго все перебирал

рони 03.08.2018 13:57

Цитата:

Сообщение от Dilettante_Pro
А вот так?

задача была убрать только display


Часовой пояс GMT +3, время: 11:22.