#jquery #css
#jquery #css
Вопрос:
Я пытаюсь fadeIn текст на элементе с помощью метода содержимого CSS, но, похоже, он не работает. мой код выглядит так, как показано ниже. Это невозможно или это может быть достигнуто.
HTML
<div id="share-box">
<i class="fa fa-rss"></i>
</div><!-- End Share Box -->
CSS
#share-box {
float: right;
height: 100px;
font-size: 72px;
width: 80px;
color: #fff;
font-weight: lighter;
padding-top: 15px;
background-color: #E18728;
padding-left: 25px;
cursor: pointer;
}
#share-box:before {
content: 'RSS';
position: absolute;
font-size: 24px;
padding: 70px 0 0 15px;
display: none;
}
Скрипт
jQuery(document).ready(function(){
$("#share-box").mouseover(function(){
$("#share-box:before").stop().fadeIn();
});
$("#share-box").mouseout(function(){
$("#share-box:before").stop().fadeOut('slow');
});
});
Комментарии:
1. Не могли бы вы, пожалуйста, поделиться скрипкой, если это возможно?
2. Почему бы просто не использовать
:hover
селектор и не изменить непрозрачность? JavaScript не требуется3. jquery при наведении курсора мыши начинается с «i» вместо «$». Это опечатка или у вас есть такой код.
4. :before не является элементом dom. таким образом, jquery не будет работать над :before.
5. Вы не можете выбрать псевдоэлементы с помощью JS.JQ, поскольку их нет в DOM
Ответ №1:
Как прокомментировал @Phil, вы могли бы просто использовать :hover
псевдокласс вместе с transition
для достижения этой цели. JS на самом деле не требуется.
Демонстрация: http://jsfiddle.net/abhitalks/z3A33 /
#share-box:before {
...
opacity: 0; /* use opacity to get it working with transition */
-webkit-transition: all 1s; /* use transition to get fading effect */
transition: all 1s; /* use standards after vendor prefixes */
}
#share-box:hover::before {
opacity: 1; /* change opacity on hover */
}
Примечание: вам нужно что-то вроде opacity
, чтобы заставить переход работать. Переходы не будут работать display
.