В следующей (довольно базовой) реализации пересечения наблюдателя я замечаю, что ios safari очень агрессивно отображает записи в одном обратном вызове: если я прокручиваю шесть пунктов, которые мой наблюдатель наблюдает очень быстро, обратный вызов только один раз с шестью записями , тогда как на рабочем столе Это просто проблема сафари, или есть что-то, что я делаю в своем коде, что может способствовать этому?
window.addEventListener('load',function(){
let steps=[...document.querySelectorAll('.step')];
const observerOptions = {
threshold: [0,1],
rootMargin: `0px 0px 0px 0px`,
root: document
};
let observer = new IntersectionObserver((entries) => {
console.log('callback-------------------------')
console.log('batched entries:',entries.length)
let active=null;
for (let entry of entries) {
if(entry.intersectionRatio==1){
active=entry.target;
}
}
console.log('detected fully in view:',active);
if(active){
for(let step of steps){
step.classList.toggle('active',active==step);
}
}
}, observerOptions);
for(let step of steps) observer.observe(step);
})
.step-outer{
height:60svh;
width:100%;
position:relative;
}
.step{
position:absolute;
top:0;
left:0;
height:100%;
width:100%;
box-sizing:border-box;
border-bottom:1px solid red;
transition:background-color 0.3s;
}
.step.active{
background-color: coral;
}
.outer{
margin-top:100px;
margin-bottom:100px;
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... safari-ios
Наблюдатель на пересечении агрессивно партии записей в сафари -iOS ⇐ Javascript
Форум по Javascript
-
Anonymous
1741626448
Anonymous
В следующей (довольно базовой) реализации пересечения наблюдателя я замечаю, что ios safari очень агрессивно отображает записи в одном обратном вызове: если я прокручиваю шесть пунктов, которые мой наблюдатель наблюдает очень быстро, обратный вызов только один раз с шестью записями , тогда как на рабочем столе Это просто проблема сафари, или есть что-то, что я делаю в своем коде, что может способствовать этому?
window.addEventListener('load',function(){
let steps=[...document.querySelectorAll('.step')];
const observerOptions = {
threshold: [0,1],
rootMargin: `0px 0px 0px 0px`,
root: document
};
let observer = new IntersectionObserver((entries) => {
console.log('callback-------------------------')
console.log('batched entries:',entries.length)
let active=null;
for (let entry of entries) {
if(entry.intersectionRatio==1){
active=entry.target;
}
}
console.log('detected fully in view:',active);
if(active){
for(let step of steps){
step.classList.toggle('active',active==step);
}
}
}, observerOptions);
for(let step of steps) observer.observe(step);
})
.step-outer{
height:60svh;
width:100%;
position:relative;
}
.step{
position:absolute;
top:0;
left:0;
height:100%;
width:100%;
box-sizing:border-box;
border-bottom:1px solid red;
transition:background-color 0.3s;
}
.step.active{
background-color: coral;
}
.outer{
margin-top:100px;
margin-bottom:100px;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79498677/intersection-observer-aggressively-batching-entries-in-safari-ios[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия