Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

(фиксированный блок) как реализовать?

#javascript #jquery


Помогите фиксировать блок но так чтобы фиксация была когда скролл дойдет до конца блока
















































































v


Ответы

Ответ 1



Не уверен, что правильно понял насчет того, как именно надо фиксировать, но вот мой вариант. var windowHeight = window.innerHeight|| document.documentElement.clientHeight|| document.body.clientHeight; var aside = document.querySelector('aside'), asideHeight = aside.clientHeight || aside.offsetHeight || aside.scrollHeight; window.onscroll = function() { if (document.body.scrollTop + windowHeight >= asideHeight) { aside.classList.add('fixed'); aside.style.top = -(asideHeight-windowHeight) + 'px'; } else { aside.classList.remove('fixed'); aside.removeAttribute('style'); } } body { margin: 0 } section { background: linear-gradient(#ccc, #000); height: 3000px; overflow: hidden; } aside { width: 200px; color: #FFF; padding: 15px; background: #000; } .fixed { position: fixed; }


Ответ 2



if (this.scrollTop==this.scrollHeight-this.clientHeight) { document.getElementById ("id").style.position = "fixed"; };

Ответ 3



Можешь так попробовать: var h = $('.bb').height(), c = $(window).height(); $(window).on('scroll', function() { var s = $(window).scrollTop(), f = $('.bb').offset().top; if (h <= s) { if (!$('.bb').hasClass('is-active')) { $('.bb').hide().css({ 'height': +c + 'px' }).addClass('is-active').fadeIn(); } } else { if ($('.bb').hasClass('is-active')) { $('.bb').hide().css({ 'height': 'auto' }).removeClass('is-active').fadeIn(); } } }); .is-active { position: fixed; top: 0; bottom: 0; overflow-y: scroll; }











































































v

Ответ 4



Может так: var pointer; var flag = false; window.addEventListener('scroll', function(e) { var item = document.getElementById("active"); if (item.getBoundingClientRect().top < window.innerHeight - 50 && !flag) { pointer = window.scrollY; document.getElementById("contener").classList.add("action_class"); flag = true; document.getElementById("contener").style.height = (window.innerHeight -50) + "px"; }else if(pointer > window.scrollY){ pointer = 0; document.getElementById("contener").classList.remove("action_class"); document.getElementById("contener").style.height = "1080px"; flag=false } }) .action_class{ position : fixed; overflow-y : scroll; }





































































































































































































































Комментариев нет:

Отправить комментарий