Есть такой блок
<div class="top-bar">
</div>
Такие стили
.top-bar {
position: fixed;
top: 0;
left: 0;
right: 0;
opacity:1;
background-color: #fff;
box-shadow: 0px 2px 2px 1px rgba(0, 0, 0, 0.2);
z-index: 99;
}
Это Header. Он зафиксированный. Как сделать так что бы при скролле вниз, у него становилось свойство opcity:0.5
, а при наведении на него opacity:1
;
var scrollTop = $(window).scrollTop(),
e = $('.top-bar'); // кэшируем элемент, чтобы не искать его каждый раз, т.к. событие scroll отстреливает часто
$(window).scroll(function() {
if(scrollTop < $(window).scrollTop()){
e.addClass('current');
}else if(scrollTop > $(window).scrollTop()){
e.removeClass('current');
};
scrollTop = $(window).scrollTop();
});
body {height: 1000px}
.top-bar {
position: fixed;
top: 0;
left: 0;
right: 0;
opacity: 1;
height:20px; /* Добавил, что бы наглядно было */
background-color: #fff;
box-shadow: 0px 2px 2px 1px rgba(0, 0, 0, 0.2);
z-index: 99;
}
.top-bar.current {opacity: 0.5}
.top-bar.current:hover {opacity: 1}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="top-bar">
</div>
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 100) {
$(".top-bar").addClass("top-bar-current");
} else {
$(".top-bar").removeClass("top-bar-current");
}
});
body{
min-height: 2000px;
background: #ddd;
}
.top-bar {
height: 60px;
position: fixed;
top: 0;
left: 0;
right: 0;
opacity: 1;
background-color: #fff;
box-shadow: 0px 2px 2px 1px rgba(0, 0, 0, 0.2);
z-index: 99;
}
.top-bar-current{
opacity: 0.5;
transition: 0.3s;
}
.top-bar-current:hover{
opacity: 1;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="top-bar">
</div>
Когда страница скролится, добавим класс, например, scrolled
:
if ($(window).scrollTop() > 0) {
$('.top-bar').addClass('scrolled')
}
Определим его в css:
.top-bar.scrolled {
opacity: 0.5;
}
Но если наведено мышью, вернем обратно 1:
.top-bar:hover {
opacity: 1;
}
Вот и все, тестим:
$(window).scroll(function() {
if ($(window).scrollTop() > 0) {
$('.top-bar').addClass('scrolled')
} else {
$('.top-bar').removeClass('scrolled')
}
})
.top-bar {
position: fixed;
top: 0;
left: 0;
right: 0;
opacity: 1;
background-color: #ccc;
box-shadow: 0px 2px 2px 1px rgba(0, 0, 0, 0.2);
z-index: 99;
height: 20px;
}
.top-bar.scrolled {
opacity: 0.5;
}
.top-bar:hover {
opacity: 1;
}
.content {
height: 2000px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="top-bar"></div>
<div class="content"></div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Ситуация такая: есть 2 селектa, в первом тип машины, во втором модель машиныЗначения во втором селекте меняются в зависимости от выбора в первом...
Подскажите, как настроить сниппеты для ссылок в Вконтакте<title> заполнен, <description> тоже, а ссылки не меняются, и выглядят:
ЗдравствуйтеЕсли вы сейчас зайдете на catalog
При инициализании списка автоматически задаю необходимый мне елемент списка как выбранный но иногда выбирается неверныйВот в чем соль