Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.05.2020, 18:53
Новичок на форуме
Отправить личное сообщение для Sonya00 Посмотреть профиль Найти все сообщения от Sonya00
 
Регистрация: 06.05.2020
Сообщений: 6

У меня не работают скрипты. Уже даже копирую их а НЕ пишу, все равно не грузятся на с
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/style.css">
<title>Document</title>
</head>
<body>

<script type="text/javascript">
document.getElementById('nav').onmouseover= function(event) {
var target = event.target; // где был клик?
if (target.className == 'menu-item') {
var s=target.getElementsByClassName('submenu');
closeMenu();
s[0].style.display='block';
}
}
document.onmousemove=function(event) {
var target = event.target; // где был клик?
console.log(event.target);
if (target.className!='menu-item' && target.className!='submenu') {
closeMenu();
}
}
function closeMenu(){
var menu=document.getElementById('nav');
var subm=document.getElementsByClassName('submenu');
for (var i=0; i<subm.length; i++) {
subm[i].style.display="none";
}
}
</script>


<div id="nav">
<div class="menu-item">
Меню 1
<div class="submenu">
Подменю
</div>
</div>
<div class="menu-item">
Меню 2
<div class="submenu">
Подменю
</div>
</div>
<div class="menu-item">
Меню 3
<div class="submenu">
Подменю
</div>
</div>
</div>
</body>
</html>

Последний раз редактировалось Sonya00, 06.05.2020 в 19:13.
Ответить с цитированием
  #2 (permalink)  
Старый 06.05.2020, 19:00
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

https://learn.javascript.ru/onload-ondomcontentloaded

иначе на момент document.getElementById('nav') объект недоступен. В отладчик посмотреть.
Ответить с цитированием
  #3 (permalink)  
Старый 06.05.2020, 19:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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

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

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #4 (permalink)  
Старый 06.05.2020, 19:14
Новичок на форуме
Отправить личное сообщение для Sonya00 Посмотреть профиль Найти все сообщения от Sonya00
 
Регистрация: 06.05.2020
Сообщений: 6

Готово
Ответить с цитированием
  #5 (permalink)  
Старый 06.05.2020, 19:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от Sonya00
Готово

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" href="css/style.css">
  <title>Document</title>
</head>
<body>
  <script>
document.addEventListener("DOMContentLoaded", function() {
  document.getElementById("nav").onmouseover = function(event) {
    var target = event.target;
    if (target.className == "menu-item") {
      var s = target.getElementsByClassName("submenu");
      closeMenu();
      s[0].style.display = "block";
    }
  };
  document.onmousemove = function(event) {
    var target = event.target;
    console.log(event.target);
    if (target.className != "menu-item" && target.className != "submenu") {
      closeMenu();
    }
  };
  function closeMenu() {
    var menu = document.getElementById("nav");
    var subm = document.getElementsByClassName("submenu");
    for (var i = 0; i < subm.length; i++) {
      subm[i].style.display = "none";
    }
  }
});
  </script>
  <div id="nav">
    <div class="menu-item">
      Меню 1
      <div class="submenu">
        Подменю
      </div>
    </div>
    <div class="menu-item">
      Меню 2
      <div class="submenu">
        Подменю
      </div>
    </div>
    <div class="menu-item">
      Меню 3
      <div class="submenu">
        Подменю
      </div>
    </div>
  </div>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 06.05.2020, 20:10
Новичок на форуме
Отправить личное сообщение для Sonya00 Посмотреть профиль Найти все сообщения от Sonya00
 
Регистрация: 06.05.2020
Сообщений: 6

Спасибо. Но этот код был с сайта, вот мой, но он так же не работает. но пишется по понятнее чем пред. код.
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<link rel="stylesheet" href="css/style.css">
	<link rel="stylesheet" href="css/menu-child-child.css">
	<link rel="stylesheet" href="css/clean.css">
	
	<title>Online Textbook</title>
</head>
<body>
	<div class="hover">
		<div class="main">
			<div class="logo">
				<h1><a href="#" class="change-main">Online Textbook</a></h1>
				<div class="menu">
					<ul class="menu-child">
						<li class="indent"><a class="change" href="#">Об учебнике</a></li>


						<li class="indent"><a class="change" href="#">Практические работы</a>
							<ul class="menu-child-child">
								<li><a href="#">ffffffffff</a></li>
							</ul>
						</li>




						<li class="indent"><a class="change" href="#">Тестирование</a>
							<ul class="menu-child-child">
								<li><a href="#">fffffffffff</a></li>
							</ul>
						</li>

						<li class="indent"><a class="change" href="#">Дополнительная информация</a>
							<ul class="menu-child-child">
								<li><a href="#">ffffff</a></li>
							</ul>
						</li>
					</ul>
				</div>
			</div>
		</div>
	</div>

<script>
		var el document.getElementByClassName('menu-child');
	for (var i=0; i<element.length; i++;)
	el[i].addEventListener('mouseenter', showSub, false);
	el[i].addEventListener('mouseleave', hideSub, false);

	function showSub() {
		if (this.children.length>1) {
			this.children[1].style.height = "auto";
			this.children[1].style.height = "opacity";
			this.children[1].style.height = "visible";
		}
		else {
			return: false;
		}
	}
	</script>

body {
	margin: 0;
	font-family: Roboto, sans-serif;
}

.hover {
	display: flex;
	justify-content: center;
}

.main {
	margin: 35px 35px 35px 35px;
	
}

.logo {
display: flex;

}

.change-main {
	color: black;
	text-transform: uppercase;
	text-decoration: none;
	/*font-size: 0.9em;*/
}

.menu {
	padding: 0px 0px 0px 200px;
}

.menu-child {
	display: flex;
}

.indent {
	display: block;
	padding: 0px 15px 0px 0px;
}

.change {
	text-transform: uppercase;
	text-decoration: none;
	color: black;
	font-size: 11.5px; 
	letter-spacing: 2px; /*Отступы между букв*/
}

.menu-child-child {
	[overflow: hidden; height: 0; opacity: 0; transition: all 0.5s; ease-in;]
}
Ответить с цитированием
  #7 (permalink)  
Старый 06.05.2020, 20:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от Sonya00
var el document.getElementByClassName('menu-child')
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отчаяния пост NightmareZ Оффтопик 6 25.04.2017 13:32
Название ячейки таблицы Questioner Общие вопросы Javascript 6 16.02.2011 09:58
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37