Я пытаюсь создать шаблон пост в 2 столбца (изображения слева, содержимое справа). По большей части кодирование прокрутки работает так, как мне нравится, за исключением того, что мой фиксированный элемент контента прыгает между верхним и нижним переходами. Внизу. < /p>
Можно ли увеличить верхнюю часть CSS «на свитке, чтобы обнажить переполнение фиксированных элементов? Я думаю, что это помогло бы прыжкам с нижнего перехода, так как нижняя часть фиксированного элемента сначала будет видна, а затем, когда пользователь прокручивает страницу, он снова обнаружит верхнюю часть фиксированного элемента. П.С. Я специально избегаю переполнения CSS, так как не хочу несколько полос прокрутки. Просто плавный переход.
Lorem Ipsum Dolor
Lorem ipsum dolor sit amet, consectetur adipiscing elit [longer text in CodePen]...
< /code>
jquery < /p>
function stickyBlock( $ ) {
var position = $( window );
var element = $( '.column-wrapper' );
var current = element.scrollTop();
//var elheight = element[0].scrollHeight - element.offset().top + 30;
var parent = $( '.grid-content' );
var isoffset = parent.offset().top;
var isbottom = parent.offset().top + parent.outerHeight();
var placeholder = $( '.placeholder' );
position.scroll( function() {
var issticky = $( this ).scrollTop();
if( issticky >= isoffset ) {
element.addClass( 'is-sticky' );
element.css({ 'position': 'fixed', 'top': '0px', 'width': element.width() });
placeholder.css({ 'display': 'block', 'position': 'static', 'width': element.width(), 'height': element.height(), 'vertical-align': 'baseline', 'float': 'none' });
} else {
element.removeClass( 'is-sticky' );
element.css({ 'position': '', 'top': '', 'bottom': '', 'width': '' });
placeholder.css({ 'display': '', 'position': '', 'width': '', 'height': '', 'vertical-align': '', 'float': '' });
}
if( issticky && element.offset().top + element.height() >= isbottom ) {
element.removeClass( 'is-sticky' );
element.css({ 'position': 'absolute', 'top': 'auto', 'bottom': '0px', 'width': element.width() });
placeholder.css({ 'display': 'block', 'position': 'static', 'width': element.width(), 'height': element.height(), 'vertical-align': 'baseline', 'float': 'none' });
}
});
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... -on-scroll
Увеличить CSS Top элемента на прокрутке ⇐ Jquery
Программирование на jquery
1742142327
Anonymous
Я пытаюсь создать шаблон пост в 2 столбца (изображения слева, содержимое справа). По большей части кодирование прокрутки работает так, как мне нравится, за исключением того, что мой фиксированный элемент контента прыгает между верхним и нижним переходами. Внизу. < /p>
Можно ли увеличить верхнюю часть CSS «на свитке, чтобы обнажить переполнение фиксированных элементов? Я думаю, что это помогло бы прыжкам с нижнего перехода, так как нижняя часть фиксированного элемента сначала будет видна, а затем, когда пользователь прокручивает страницу, он снова обнаружит верхнюю часть фиксированного элемента. П.С. Я специально избегаю переполнения CSS, так как не хочу несколько полос прокрутки. Просто плавный переход.
Lorem Ipsum Dolor
Lorem ipsum dolor sit amet, consectetur adipiscing elit [longer text in CodePen]...
< /code>
jquery < /p>
function stickyBlock( $ ) {
var position = $( window );
var element = $( '.column-wrapper' );
var current = element.scrollTop();
//var elheight = element[0].scrollHeight - element.offset().top + 30;
var parent = $( '.grid-content' );
var isoffset = parent.offset().top;
var isbottom = parent.offset().top + parent.outerHeight();
var placeholder = $( '.placeholder' );
position.scroll( function() {
var issticky = $( this ).scrollTop();
if( issticky >= isoffset ) {
element.addClass( 'is-sticky' );
element.css({ 'position': 'fixed', 'top': '0px', 'width': element.width() });
placeholder.css({ 'display': 'block', 'position': 'static', 'width': element.width(), 'height': element.height(), 'vertical-align': 'baseline', 'float': 'none' });
} else {
element.removeClass( 'is-sticky' );
element.css({ 'position': '', 'top': '', 'bottom': '', 'width': '' });
placeholder.css({ 'display': '', 'position': '', 'width': '', 'height': '', 'vertical-align': '', 'float': '' });
}
if( issticky && element.offset().top + element.height() >= isbottom ) {
element.removeClass( 'is-sticky' );
element.css({ 'position': 'absolute', 'top': 'auto', 'bottom': '0px', 'width': element.width() });
placeholder.css({ 'display': 'block', 'position': 'static', 'width': element.width(), 'height': element.height(), 'vertical-align': 'baseline', 'float': 'none' });
}
});
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79512860/increment-css-top-of-element-on-scroll[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия