#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;
}
Комментариев нет:
Отправить комментарий