Показать сообщение отдельно
  #1 (permalink)  
Старый 17.10.2016, 05:53
Интересующийся
Отправить личное сообщение для EvgenyTryap Посмотреть профиль Найти все сообщения от EvgenyTryap
 
Регистрация: 19.09.2014
Сообщений: 19

Плавающий фиксированный блок.
Привет! Помогите разобраться как это сделать.

Вариант 1.
Есть 3 блока.
block1 {position:relative; height:500px;}
block2 {position:fixed; bottom:0; height:50px; width:100%;}
block3 {position:relative; height:300px;}
Нужно чтобы при прокрутке вниз, как только блок 3 появился внизу страницы, добавить блоку 2 стиль position:relative. И наоборот, как только при прокрутке вверх, скрывался блок 3, изменить position на fixed блока 2.

Есть вот такой скрипт, все работает, но в нем смена стиля зависит от расстояния прокрутки. Но он не походит т.к. высота block1 на разных страницах будет разная.

<script type="text/javascript">
var menu = document.getElementById('block2');
window.onscroll = function(){
var scroll = document.documentElement.scrollTop || document.body.scrollTop;
if(scroll < '300'){
block2.style.position = 'fixed';
}else{
block2.style.position = 'relative';
}
}
</script>


Вариант 2.
Как в примере ниже (блок с кнопкой купить и ценой), но тут как я понял такой блок не фиксированный, а абсолютный. И он меняет родительский блок. Что и дает нужный эффект.

Пример: http://m.zara.com/ru/ru/женщин...2p3829064.html

Если кто-нибудь знает как это осуществить любой из вариантов, помогите пожалуйста. Я уже все перепробовал и самому сделать не получается.

Последний раз редактировалось EvgenyTryap, 17.10.2016 в 13:14.
Ответить с цитированием