2016-06-05 3 views
-3

Как отображать линию, когда я навешиваю над своим кругом div?Как заставить div исчезнуть/появиться при зависании на другом div?

#line { 
 
    display: none 
 
}
<div id='circle'> 
 
    <div id= 'line'>

+1

Там нет HTML? Почему вы, ребята, не читали правила на [ask], прежде чем спрашивать? –

+0

Это недействительный HTML. Не могли бы вы разместить полный код? И будьте предельно ясны и конкретны, на каких div нужно парить и которые следует скрывать. –

+0

Вы удалили предыдущую версию этого вопроса, заданную немного назад, и сделали очень мало, чтобы улучшить эту версию с последнего. Вы также не пытались решить эту проблему самостоятельно. Это не кодирование – charlietfl

ответ

1

Предполагая, что вы используете JQuery вы можете использовать:

var enterHandler = function(){ 
    $("#line").show(); 
}; 

var leaveHandler = function(){ 
    $("#line").hide(); 
}; 

$("#circle").hover(enterHandler, leaveHandler); 
+0

Серьезно вам нужен jQuery и JavaScript для такого простого? Не можете ли вы использовать только CSS? –

+0

Да Правеен, вам понадобится Javascript для этого. Если у вас есть что-то конструктивное для добавления, пожалуйста, не стесняйтесь. –

+0

Приятель, пожалуйста, любезно проверьте мой ответ. Для этого вам не нужен JavaScript. CSS достаточно. JS и DOM Manipulation - очень дорогостоящие вещи для браузера. Вы согласны? –

0

Если вы используете JQuery, то вы можете просто попробовать:

$('#circle').on('mouseover', function() { 
    $('#line').show(); 
}); 

$('#circle').on('mouseleave', function() { 
    $('#line').hide(); 
}); 
+0

Ну, вопрос был недостаточно ясен, и использование javascript и jQuery не будет зависеть от порядка элементов, особенно если между ними есть другие элементы. –

1

Первая вещь, с кодом, не ясно, если <div> s являются братьями и сестрами являются вложенными , Я дам вам решение для обоих.

Уплотненный

div { 
 
    padding: 10px; 
 
    background: #99c; 
 
} 
 
#line { 
 
    display: none; 
 
    background: #9c9; 
 
} 
 
#circle:hover #line { 
 
    display: block; 
 
}
<div id='circle'> 
 
    <div id='line'> 
 
    </div> 
 
</div>

Братья

div { 
 
    padding: 10px; 
 
    background: #99c; 
 
} 
 
#line { 
 
    display: none; 
 
    background: #9c9; 
 
} 
 
#circle:hover + #line { 
 
    display: block; 
 
}
<div id='circle'> 
 
</div> 
 
<div id='line'> 
 
</div>

0

JQuery будет простейшим.

$('#circle').hover(function(){ 
    $('#line').css('display','inline'); 
}); 

или что бы вы ни отображали для отображения.

+0

Серьезно вам нужен jQuery и JavaScript для такого простого? Не можете ли вы использовать только CSS? –

+0

Правеен ошибается, но это также не совсем корректно, так как у вас нет обработчика, чтобы снова спрятать линию на выходе мыши. –

+0

@ RichardGuy Просьба дать конструктивный комментарий. Если это было грубо, мне очень жаль. –

0

Попробуйте это в тег сценария и использовать OnMouseOver и onmouseout событий

<script> 
    function hidediv() { 
     document.getElementById('line').style.display = 'none'; 
    } 
    function showdiv() { 
     document.getElementById('line').style.display = 'block'; 
    } 
</script> 

    <div id='circle' onmouseover="hidediv();" onmouseout="showdiv();" > this is circle 
     <div id= 'line'>this is line 
     </div> 
    </div> 
Смежные вопросы