2015-12-26 3 views
1

У меня есть абсолютно позиционируемый контейнер, который содержит метки тегов. Эти теги частично покрывают изображение под ними. Когда пользователь нависает над этим контейнером, я хотел бы, чтобы метки тегов внутри контейнера исчезли.: зависание несовместимо и очень неустойчиво на абсолютно позиционированном элементе

нижеописанных почти работает, но эффект непоследовательный и очень нервный при наведении курсора на контейнер:

.main-container{ 
 
    height:200px; 
 
    width:100%; 
 
    background-color:#ccc; 
 
    position:relative; 
 
} 
 

 
.slider-tag-container{ 
 
    z-index: 10; 
 
    position: absolute; 
 
    bottom: 22px; 
 
    left: 20px; 
 
    padding-top:30px; 
 
    padding-right:30px; 
 
} 
 
.slider-tag-container .label{ 
 
    border: 2px solid #fff; 
 
    margin-right:5px; 
 
} 
 

 
.slider-tag-container:hover .label{ 
 
    display:none; 
 
}
<div class="main-container"> 
 
    <div class="slider-tag-container"> 
 
    <div class="label label-primary">Some tag</div> 
 
    </div> 
 
</div>

Вот jsFiddle

Почему это «jittery- ness "происходят?

Как я могу добиться желаемого эффекта плавно?

+0

Вы не можете навешивать элементы, имеющие 'display: none'. Похоже, вы хотите «видимость: скрытый», может быть? – CollinD

+0

@CollinD Я не вишу над элементами 'display: none;', я паря над их родителями. – DelightedD0D

+1

Возможно, родитель должен установить высоту/ширину набора? Интересно, если он сжимается до '0px' и/или высокий, когда его содержимое удаляется? В качестве альтернативы, пузырь ': hover' или нет, возможно, стоит проверить, если зависание ребенка приводит к тому, что событие пропущено, когда потом потом удаляется ребенок? – CollinD

ответ

1

Дайте оберточный элемент a min-width или width. Внутренний элемент, идущий display:none, вероятно, обрушивает обертку на 0px на 0px.

Кроме того, может возникнуть проблема с пузырьками :hover, если вам удастся навести курсор на внутренний элемент до его запуска. Я думаю, что решение JS может быть лучше всего для большего контроля над тем, как он себя ведет.

+0

Вы знаете, [Я пробовал js с помощью mouseenter и mouseleave] (http://jsfiddle.net/DelightedDoD/q2avqfqz/3/), но все же не могу полностью избавиться от джиттера, идущего снизу. Во всяком случае, это намного лучше, чем было, и я могу жить с маленькой причудой. Спасибо. – DelightedD0D

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