2

Я просто столкнулся с странной проблемой на ie11. Я пытаюсь создать фиксированный элемент, который будет прокручиваться вместе с прокруткой окна.с помощью jquery scroll на ie11 проблемах с неустойчивыми элементами

$(window).scroll(function() { 
    var scrollY=$(this).scrollTop(); 
    $('.myelem').css('transform', 'translateY(' + scrollY + 'px)'); 
}); 

Я также создал скрипку этого:

https://jsfiddle.net/fyngwnz6/1/

(Это для тиражирования вопрос, я знаю, это частный случай, может быть решена с помощью фиксированного элемента)

Код работает безупречно, без проблем с производительностью в каждом браузере, кроме ie11. При использовании элемента прокрутки «myelem» свитки с небольшим джиттером становятся более очевидными при использовании колеса мыши. Однако, если вы действительно видите, что проблема связана с использованием кнопок прокрутки. Кажется, что отрисовка прокрутки должна заканчиваться, чтобы js отслеживал прокрутку.

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

Редактировать: хотя у меня есть ответ, который, кажется, решает проблему, на самом деле то, что я ищу, является решением для элементов, которые имеют переполнение: скрытые применяются на них, и свиток берется из переполненного элемента, а не из прокрутки тела ; подобный сценарий можно найти здесь:

http://www.fixedheadertable.com/

Если «фиксированный столбец» включен в примере, а затем нажав на скроллинга показывает подергивание в движении.

ответ

2

Похоже, что добавление height: 100%; и overflow: auto; к html, body элементов удаляет IE 11 вопрос:

JsFiddle Demo

[Edit]: Добавление margin: 0; удаляет двойные полосы прокрутки.

+0

добавление поля: 0 и отступ: 0 отключил дополнительную панель прокрутки jsfiddle и, похоже, решил проблему, но не по моему конкретному коду. Позвольте мне провести некоторое время с этим и вернуться к вам – scooterlord

+0

Как бы я копировал аналогичный код, когда не говорил о теле в прокрутке, а скорее о прокрутке элемента? Это похоже на очень специфический взлом ..? Я имею в виду, есть ли какие-то объяснения по поводу того, что это работает? – scooterlord

+0

Ницца, это сделал трюк. Если я правильно вас понимаю, реплицируя это для того, чтобы сказать, что 'div' работает как контейнер, содержащий дочерний элемент, который должен следовать при прокрутке внутри? Те же правила сохраняются, я бы сказал, но я думаю, что свойство 'height' является ключевым здесь. И трудно сказать, как можно воспроизвести это на странице со многими элементами и различными атрибутами css. – urbz

Смежные вопросы