Javascript.RU

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

Еще сделал так

const navigatsia_obertka = document.querySelector(".navigatsia_obertka");
const nav_logo_1 = document.querySelector(".nav_logo_1");
const nav_a = document.querySelectorAll(".nav_a");

let = nav_tsvet_1 = () => {
    nav_test = navigatsia_obertka.getBoundingClientRect();
    if (nav_test.top >= 300) {
        navigatsia_obertka.style.backgroundColor = "#fff"
        nav_logo_1.classList.add("nav_logo_1");
        nav_logo_1.classList.remove("nav_logo_2");
        let = nav_test_2 = () => {
            for(let i = 0; nav_a.length; i++){
                nav_a[i].style.color = "#ED1C24";
            }
        }
        nav_test_2();
    } else if (nav_test.top <= 0) {
        navigatsia_obertka.style.backgroundColor = "#ED1C24"
        nav_logo_1.classList.remove("nav_logo_1");
        nav_logo_1.classList.add("nav_logo_2");
        let = nav_test_2_1 = () => {
            for(let i = 0; nav_a.length; i++){
                nav_a[i].style.color = "#fff";
            }
        }
        nav_test_2_1();
    }
   
}
window.addEventListener("scroll", nav_tsvet_1);



.nav_a{
	color:#ED1C24
}


<div class="nav"><a href="#">Наши проекты</a></div>
				<div class="nav"><a href="#">Люди о нас</a></div>
				<div class="nav"><a href="#">Наша жизнь</a></div>
				<div class="nav"><a href="#">Контакты</a></div>


И вроде бы работает, но возникают ошибки
Ответить с цитированием
  #22 (permalink)  
Старый 01.07.2020, 09:58
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,700

Сообщение от Сергей Ракипов
И вроде бы работает, но возникают ошибки
И какие ошибки?
Если вы видите их в консоле, так исправляйте.
Что за строки 11 и 21?

Строки 11-16 можно просто записать

nav_a.forEach(ea => ea.style.color = "#ED1C24");

строки 21-26 аналогично
Ответить с цитированием
  #23 (permalink)  
Старый 01.07.2020, 10:20
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

voraa,
все сработало
а что такое
ea
это параметр?
Ответить с цитированием
  #24 (permalink)  
Старый 01.07.2020, 10:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Сергей Ракипов
а что такое
ea
это элемент массива, название может быть любое, смотрите документацию на forEach
Ответить с цитированием
  #25 (permalink)  
Старый 01.07.2020, 10:29
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,700

Сообщение от Сергей Ракипов
а что такое
ea
это параметр?
Да. параметр.
см функцию forEach
https://developer.mozilla.org/ru/doc.../Array/forEach
Ответить с цитированием
  #26 (permalink)  
Старый 01.07.2020, 10:42
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

рони,
voraa,

Спасибо, за помощь.
Правда очень признателен.
Ответить с цитированием
  #27 (permalink)  
Старый 03.07.2020, 15:18
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Скажите правильно ли поинмаю

nav_test_1.top <= 0 && nav_test_2 <= 960

если два условия совпадают то выполнится действия.
let = nav_tsvet_2 = () => {
    nav_test_1 = navigatsia_obertka.getBoundingClientRect();
    nav_test_2 = navigatsia_obertka.offsetWidth;
    if (nav_test_1.top >= 0 && nav_test_2 >= 960) {
        nav_a.forEach(ea => ea.style.color = "#ED1C24");
    }
    else if(nav_test_1.top <= 0 && nav_test_2 <= 960){
        nav_a.forEach(ea => ea.style.color = "#fff");
    }
    console.log(nav_test_2);
}
window.addEventListener("scroll", nav_tsvet_2);
Ответить с цитированием
  #28 (permalink)  
Старый 03.07.2020, 15:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сергей Ракипов,
условие со знаком равно, логично использовать один раз, либо в строке 4 либо в строке 7.
Ответить с цитированием
  #29 (permalink)  
Старый 03.07.2020, 18:17
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

рони,
Я кажется понял, а если
(nav_test_1.top >= 1 && nav_test_2 >= 961)
(nav_test_1.top <= 0 && nav_test_2 <= 960)

я бы проверил но я не возле компа
Ответить с цитированием
  #30 (permalink)  
Старый 03.07.2020, 18:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Сергей Ракипов
а если
можно но в реальности равно(=961) будет очень редко(961.4 и т.д.), и часто этим можно пренебречь.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт работает через раз Эдди Элементы интерфейса 6 07.06.2014 10:00
Название ячейки таблицы Questioner Общие вопросы Javascript 6 16.02.2011 09:58
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 11:41
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Помогите! Почему в Opera js-код работает с ошибкой. В IE все нормально. maxonline Events/DOM/Window 4 21.11.2008 12:39