ScrollIntoView — как заставить его работать в iOS?

Я загружаю свой сайт в iFrame, который находится на другом сайте. Я хотел бы перейти к началу элемента в этом iFrame. Я использую код Javascript ниже:

 document.getElementById("cart-wrapper").scrollIntoView({ behavior: 'auto' });

Это отлично работает в настольных браузерах, однако совсем не работает на мобильных устройствах iOS (я тестировал Safari и Chrome). Я пробовал полифилл с плавной прокруткой (https://github.com/iamdustan/smoothscroll), но он тоже не работает (в основном я включил <script type = "text/javascript" src = "/js/smoothscroll.js"></script>))

Любые решения? Спасибо

Чтобы уточнить, вы несете ответственность за сайт B, который загружается из сайт А внутри <iframe>, и хотите, чтобы содержимое iframe прокручивалось только до #cart-wrapper, который, очевидно, является частью сайт B. Это правильно?

Kaiido 19.03.2019 03:55

Невозможно воспроизвести на Android (как в Chrome, так и в Firefox). Можете ли вы подтвердить, что у вас возникла проблема с эта рабочий пример на вашем устройстве? А если нет, то вы с Вот этот?

Kaiido 19.03.2019 04:15

@Кайидо, верно.

user6122500 19.03.2019 04:20

Вы можете воспроизвести обе скрипки?

Kaiido 19.03.2019 04:23
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
3 035
1

Ответы 1

Несколько дней назад я тоже столкнулся с этой проблемой. Я исправил это с помощью iScroll

Я пробовал iScroll

Я мог бы помочь вам, если вам нужно

Спасибо. Я пробовал код ниже; Я вижу, что iscroll загружается успешно, но на самом деле прокрутки не происходит. Я делаю что-то неправильно? <script type = "text/javascript" src = "/js/iscroll.js"></script> <script> var myScroll; myScroll = new IScroll('#cart-wrapper', { mouseWheel: true, click: true }); myScroll.scrollToElement(document.querySelector('#cart-wrapper') ); </скрипт>

user6122500 19.03.2019 04:24

const elementOffsetTop = parseInt(document.getElementById(getIDFromHash).offsetTop || 0, 10); myScroll.scrollTo(0, -elementOffsetTop, 500);

Kuldeep Bhimte 19.03.2019 08:27

{ полосы прокрутки: true, hideScrollbar: true, // Важно для Firefox fadeScrollbars: true, mouseWheel: true, click: true, disablePointer: true, // Важно для устройств Android disableTouch: false, disableMouse: false, }

Kuldeep Bhimte 19.03.2019 08:27

См. эту ссылку stackoverflow.com/questions/19398501/…

Kuldeep Bhimte 19.03.2019 08:28

Спасибо за ваши ответы. К сожалению, он по-прежнему не работает в iFrame (прокрутка не происходит) даже после добавления кода, который вы упомянули.

user6122500 19.03.2019 11:37

Я думаю, что проблема может быть в элементе оболочки. то есть myScroll = new IScroll('body'... - 'body' работает, если я владею главной страницей, на которой находится iFrame, но в противном случае это не так.

user6122500 21.03.2019 02:38

да, прокрутка применяется к первому дочернему элементу размещенного элемента

Kuldeep Bhimte 21.03.2019 03:05

Другие вопросы по теме