Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 09.09.2021, 07:01
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

Сообщение от рони Посмотреть сообщение
Сергей Ракипов,
изменяемый параметр лучше проверять перед условием!
Что то вот это не понял это как?

с переносом строки все понятно

const tsifra_1 = document.querySelector(".tsifra_1");

let anim1 = () => {
    const windowInnerWidth = document.documentElement.clientWidth
    if(windowInnerWidth >= 800){
    let ikonka1 = tsifra_1.getBoundingClientRect();
    tsifra_1.classList.toggle( "tsifra_1_1", ikonka1.top <= 500 );
    }
    else if(windowInnerWidth <= 800){
        let ikonka1 = tsifra_1.getBoundingClientRect();
        tsifra_1.classList.toggle( "tsifra_1_1", ikonka1.top <= 100 );
        }
    console.log(windowInnerWidth);
};
window.addEventListener( "scroll", anim1);
anim1();
Ответить с цитированием
  #12 (permalink)  
Старый 09.09.2021, 07:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сергей Ракипов,
windowInnerWidth --- ширину экрана можно изменить, поэтому использовать значение измеренное один раз, может дать неверный результат, лучше использовать текущее значение, а не то, которое было при загрузке страницы.
Ответить с цитированием
  #13 (permalink)  
Старый 09.09.2021, 08:11
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

Сообщение от рони Посмотреть сообщение
Сергей Ракипов,
windowInnerWidth --- ширину экрана можно изменить, поэтому использовать значение измеренное один раз, может дать неверный результат, лучше использовать текущее значение, а не то, которое было при загрузке страницы.
А понял вот о чем речь то есть нужно отслеживать событие ресайз?
Ответить с цитированием
  #14 (permalink)  
Старый 09.09.2021, 09:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от Сергей Ракипов
А понял вот о чем речь то есть нужно отслеживать событие ресайз?
???
в anim1 надо измерять и да назначить эту функцию на события, и resize и scroll
Ответить с цитированием
  #15 (permalink)  
Старый 09.09.2021, 09:16
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

Сообщение от рони Посмотреть сообщение
???
в anim1 надо измерять и да назначить эту функцию на события, и resize и scroll

Ну то есть в anim1 нужно повесить два события, а разве так можно что на одну функцию вещать два события resize и scroll
Ответить с цитированием
  #16 (permalink)  
Старый 09.09.2021, 09:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от Сергей Ракипов
Ну то есть в anim1 нужно повесить два события,
...
const tsifra_1 = document.querySelector(".tsifra_1");

        let anim1 = () => {
            const windowInnerWidth = document.documentElement.clientWidth
            if (windowInnerWidth >= 800) {
                let ikonka1 = tsifra_1.getBoundingClientRect();
                tsifra_1.classList.toggle("tsifra_1_1", ikonka1.top <= 500);
            } else if (windowInnerWidth <= 800) {
                let ikonka1 = tsifra_1.getBoundingClientRect();
                tsifra_1.classList.toggle("tsifra_1_1", ikonka1.top <= 100);
            }
            console.log(windowInnerWidth);
        };
        window.addEventListener("scroll", anim1); //запуск во время прокрутки
        window.addEventListener("resize", anim1); //запуск при изменении размеров окна
        anim1(); //запуск при формировании страницы(загрузка)
Ответить с цитированием
  #17 (permalink)  
Старый 09.09.2021, 10:22
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

рони,
Ну я так и подумал.
Просто засомневался когда про два событие и в моей голове начало рисовать что то не вообразимое из серии вот так

window.addEventListener("scroll", "resize", anim1);


А так спасибо.
И тут больше вопрос из любопытство, а когда вот это "resize" вешаешь это не сильно загружает страницу браузера?
Ответить с цитированием
  #18 (permalink)  
Старый 09.09.2021, 10:45
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

А интересно вместо пикселей можно сделать проценты?
Ответить с цитированием
  #19 (permalink)  
Старый 09.09.2021, 11:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от Сергей Ракипов
а когда вот это "resize" вешаешь это не сильно загружает страницу браузера?
раз в 100 меньше чем scroll
Сообщение от Сергей Ракипов
А интересно вместо пикселей можно сделать проценты?
можно если использовать IntersectionObserver параметр threshold
Ответить с цитированием
  #20 (permalink)  
Старый 09.09.2021, 11:18
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

Сообщение от рони Посмотреть сообщение
раз в 100 меньше чем scroll
Звучит очень логично.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить реальное расстояние от начала страницы до элемента? cartrege Events/DOM/Window 13 20.12.2018 20:44
Отследить расстояние от верхнего края экрана до элемента Galyanov Элементы интерфейса 2 03.02.2017 23:29
Расстояние до края родительского элемента 1lider Events/DOM/Window 1 01.03.2015 20:32
Расстояние от элемента до элемента (Sandr) Общие вопросы Javascript 4 24.11.2011 17:20
Как запустить функцию при отображении элемента в окне браузера? Kostushko Events/DOM/Window 6 27.09.2010 11:03