2016-10-04 3 views
0

Часть веб-страницы, которую я проектирую, состоит из нескольких элементов, расположенных рядом друг с другом. Каждый из них содержит изображение. Я хочу вызвать раскрывающееся меню, когда мышь пользователя входит в div. Однако тестирование его с помощью простой функции «print hello» не дало ожидаемых результатов.событие onmouseenter не работает на элементе div

На этом этапе изображения помещаются правильно, и их размер регулируется точно так же, как я указал. Однако курсор не равен pointer, и функция test не запускается, когда мышь входит в div. У меня была эта проблема с событиями кликов в прошлом, и я всегда пытался найти способ обойти это. Может кто-нибудь объяснить, почему это не сработает?

Вот HTML-

#container { 
 
    background-color: black; 
 
    border-radius: 20px; 
 
    display: inline-block; 
 
    position: fixed; 
 
    width: 100%; 
 
    z-index: 2; 
 
    top: 0; 
 
} 
 
#icon { 
 
    background-color: burlywood; 
 
    border-radius: inherit; 
 
    border-radius: 20px; 
 
} 
 
#menu a { 
 
    font-size: 30px; 
 
    font-family: "Arial"; 
 
    color: white; 
 
    text-decoration: none; 
 
    margin-left: 50px; 
 
} 
 
#flag { 
 
    width: 50px; 
 
    height: 50px; 
 
} 
 
#menu a:hover { 
 
    color: #e55d00; 
 
} 
 
body { 
 
    height: 2000px; 
 
    background-image: url("background.jpg"); 
 
} 
 
#btt { 
 
    bottom: 0; 
 
    color: white; 
 
    position: fixed; 
 
    text-decoration: none; 
 
} 
 
#contain { 
 
    display: inline-block; 
 
    height: 1000px; 
 
    width: 100%; 
 
    max-width: 100%; 
 
    position: absolute; 
 
} 
 
#sidemenu { 
 
    width: 0; 
 
    height: 100%; 
 
    z-index: 1; 
 
    background-color: black; 
 
    transition: width 1s; 
 
    padding-top: 200px; 
 
    position: fixed; 
 
    top: 0; 
 
    left: 0; 
 
    overflow-x: hidden; 
 
} 
 
#sidemenu a { 
 
    padding: 8px 8px 8px 32px; 
 
    text-decoration: none; 
 
    font-size: 25px; 
 
    color: #818181; 
 
    display: block; 
 
    transition: 0.3s; 
 
} 
 
#sidemenu a:hover { 
 
    color: red; 
 
} 
 
#language { 
 
    margin-left: 250%; 
 
} 
 
#title a { 
 
    color: #e55d00; 
 
    text-decoration: none; 
 
} 
 
#title { 
 
    font-size: 50px; 
 
    text-align: center; 
 
    border-radius: 20px; 
 
    display: inline-block; 
 
    padding: 10px; 
 
} 
 
#projects { 
 
    margin-top: 200px; 
 
} 
 
#current { 
 
    width: 210px; 
 
    height: 200px; 
 
    cursor: pointer; 
 
} 
 
#current img { 
 
    width: inherit; 
 
    height: inherit; 
 
} 
 
#progress { 
 
    margin-left: 200px; 
 
    width: 210px; 
 
    height: 200px; 
 
    cursor: pointer; 
 
} 
 
#progress img { 
 
    width: inherit; 
 
    height: inherit; 
 
}
<!DOCTYPE html> 
 
<html lang="en"> 
 

 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Projects</title> 
 
    <link type="text/css" rel="stylesheet" href="projects.css"> 
 
</head> 
 

 
<body> 
 
    <div id="container"> 
 
    <table> 
 
     <tr> 
 
     <td> 
 
      <div id="icon"> 
 
      <img src="img.png"> 
 
      </div> 
 
     </td> 
 
     <td> 
 
      <div id="title" title="Home"> 
 
      <a href="electrocats.html">Electrocats</a> 
 
      </div> 
 
      <div id="menu"> 
 
      <a href="#" onclick="summonMenu()">News</a> 
 
      <a href="projects.html">Projects</a> 
 
      <a href="#">About Us</a> 
 
      <a href="#">menu item 4</a> 
 
      </div> 
 
     </td> 
 
     <td> 
 
      <div id="language"> 
 
      <a href="#" title="Translate to Greek"> 
 
       <img id="flag" src="Greece-icon.png"> 
 
      </a> 
 
      </div> 
 
     </td> 
 
     </tr> 
 
    </table> 
 
    </div> 
 

 
    <div id="contain"> 
 
    <div id="sidemenu" onmouseleave="hideMenu()"> 
 
     <a href="Contact.html">contact</a> 
 
     <a href="Films.html">Films</a> 
 
    </div> 
 
    </div> 
 

 
    <!-- here is the code with the problem --> 
 
    <div id="projects"> 
 
    <table> 
 
     <tr> 
 
     <td> 
 
      <div id="current" onmouseenter="test"> 
 
      <img src="high-voltage.png"> 
 
      </div> 
 
     </td> 
 
     <td> 
 
      <div id="progress" onmouseenter="test"> 
 
      <img src="engineering1.jpg"> 
 
      </div> 
 
     </td> 
 
     </tr> 
 
    </table> 
 
    </div> 
 

 

 

 
    <a id="btt" href="#top">Back to top</a> 
 

 

 
    <script> 
 
    function summonMenu() { 
 
     var menu = document.getElementById("sidemenu"); 
 
     menu.style.width = "400px"; 
 
    } 
 

 
    function hideMenu() { 
 
     var menu = document.getElementById("sidemenu"); 
 
     menu.style.width = "0"; 
 
    } 
 

 
    function test() { 
 
     console.log("hello"); 
 
    } 
 
    </script> 
 
</body> 
 

 
</html>

+2

Неужели ваша консоль возвращает какие-либо ошибки? – Santi

+0

Нет ошибок или результатов. – VlassisFo

+0

отлично работает: https://jsfiddle.net/js8j0a1s/ - иногда консоль занимает секунду, чтобы отображать вещи. –

ответ

0

В конце концов, устанавливая положение div, содержащие изображения, чтобы absolute решить эту проблему. Я еще не понял, почему, но я считаю, что это имеет какое-то отношение к значениям z-index, указанным в файле css. Я был бы очень признателен, если бы кто-нибудь мог объяснить, почему проблема решалась таким образом.

2

Hello смотрите ниже Fiddle Здесь я сделал это с помощью alert, но вы можете сделать то же самое с помощью console.log Надеюсь, что это помогает.

Div Hover Fiddle

также добавлена ​​скрипка с выпадающим списком видимым на мыши войти событие, что вы пытаетесь сделал я так думаю.

dropdown Fiddle

Смежные вопросы