#jquery #html #css
#jquery #HTML #css
Вопрос:
Я работаю над веб-сайтом, где я хочу изменить положение элемента с фиксированного на относительное, когда он достигнет своего первоначального положения.
Вы можете проверить веб-страницу здесь -> http://www.countertack.com/homepage-2014?hs_preview=NPDotwST-1103539158
Внизу страницы есть красная полоса, которая зафиксирована в положении, но я хочу изменить ее на относительную, когда прокрутка достигнет нижнего колонтитула (черная секция внизу).
Я не силен в jquery или javascript, поэтому буду признателен за любую помощь. Спасибо
.fixed-cta{
background:#d32823;
position: fixed;
bottom: 0;
width: 100%;
z-index: 999999;
}
Комментарии:
1. Я обновил код, скрипку
Ответ №1:
Вот простое решение с использованием jQuery:
$(window).scroll(function() {
$('.fixed-cta').toggleClass('relative', $(window).scrollTop() $(window).height() > $(document).height() - $('.your-black-footer').height());
});
Все, что вам нужно сделать, это заменить your-black-footer
на имя класса вашего нижнего колонтитула и использовать следующий CSS:
.relative {
position: relative;
bottom: auto;
}
Ответ №2:
обновленная рабочая скрипка fiddle Использует следующий код :
$(window).scroll(function() {
if($(window).scrollTop() $(window).height() == $(document).height()) {
$(".fixed-cta").css({position: "relative"});
}else{
$(".fixed-cta").css({position: "fixed"});
}
});
Если достигнуто до дна, сделайте положение относительным.
Комментарии:
1. Спасибо за твою помощь, брат, но мне нужно вернуться к фиксированному положению при прокрутке вверх, вы можете снова проверить веб-страницу после реализации вашего кода. Вы можете увидеть точное положение fixed-cta
2. вы имеете в виду, что если я снова прокручу вверх, положение будет исправлено?
3. @VikasGhodke Даже если у вас нет опыта работы с Jquery, вы должны быть в состоянии вывести то, что вы спрашиваете, из этого ответа.
4. Если ответ решил ваш вопрос, пожалуйста, вы можете принять его как правильный ответ. 🙂
Ответ №3:
Следующий код сработал для меня
$(window).on("scroll", function () {
if (
$(window).scrollTop() >=
$(".div").offset().top
$(".div").outerHeight() - window.innerHeight
) {
console.log("condition matched");
$(".fixed-cta").css({ position: "absolute" });
}
else $(".fixed-cta").css({ position: "fixed" });
});