Здравствуйте. Обнаружил следующую проблему:
- Открываем страницу которая не влезает в экран и проматываем её вниз
- Внизу страницы делаем что-то, что вызывает перезагрузку страницы через window.location.reload()
- Страница перезагружается уже промотанная вниз экрана (Опера умная, она запоминает на каком месте мы страницу смотрели)
- Если после этого вызвать модал, то часто он отображается вверху страницы, так как будто страница не была прокручена в низ (то есть, если например окно браузера имеет размер 1000x700, а высота страницы 3000 пикселей, и мы промотаем её в самый низ, то вместо того чтобы появится в координатах 0x2300-1000x3000 черный прямоугольник появляется в координатах 0x0-1000x700)
Судя по всему проблема именно в опере, а не в модале, поскольку, стоит только изменить масштаб страницы, или включить "панорамирование", или еще как-то сказать опере что страница изменилась и её геометрию надо "пересчитать" - модал перескакивает туда где он и должен быть по идее. Точно также модалы (самые разные) основанне на .shadow{position:fixed} ведут себя на всяких мобильных недобраузерах, которые стараются слишком часто страницу не пересчитывать, а относятся к ней как к некоему скриншоту. При включенной панели Opera Dragonfly (да, это опера 12, а не 15) глюк не появляется, поэтому отладить его практически невозможно.
Вопрос в следующем: Можно ли каким-то образом с помощью javascript'а подсказать модалу что он не там где надо? Мне не требуется чтобы изменения были внесены в сам код модала, поскольку я делаю компонент для внедрения вашего модала в Yii, и всё равно добавляю туда некоторый свой функционал - я без проблем могу добавить и этот. Но у самого пока не хватает ума как это сделать...
Чуть позже может быть смогу сделать страницу-пример, на которой можно будет увидеть данные эффекты, пока баг появляется не каждый раз, и четко повторить его не удаётся (но пока отлаживал страницу с большим количеством модалов и кнопок, увидел этот баг раз сто)
Здравствуйте. Обнаружил следующую проблему:
Судя по всему проблема именно в опере, а не в модале, поскольку, стоит только изменить масштаб страницы, или включить "панорамирование", или еще как-то сказать опере что страница изменилась и её геометрию надо "пересчитать" - модал перескакивает туда где он и должен быть по идее. Точно также модалы (самые разные) основанне на .shadow{position:fixed} ведут себя на всяких мобильных недобраузерах, которые стараются слишком часто страницу не пересчитывать, а относятся к ней как к некоему скриншоту. При включенной панели Opera Dragonfly (да, это опера 12, а не 15) глюк не появляется, поэтому отладить его практически невозможно.
Вопрос в следующем: Можно ли каким-то образом с помощью javascript'а подсказать модалу что он не там где надо? Мне не требуется чтобы изменения были внесены в сам код модала, поскольку я делаю компонент для внедрения вашего модала в Yii, и всё равно добавляю туда некоторый свой функционал - я без проблем могу добавить и этот. Но у самого пока не хватает ума как это сделать...
Чуть позже может быть смогу сделать страницу-пример, на которой можно будет увидеть данные эффекты, пока баг появляется не каждый раз, и четко повторить его не удаётся (но пока отлаживал страницу с большим количеством модалов и кнопок, увидел этот баг раз сто)