Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Все делаю логично, но не работает. (https://javascript.ru/forum/misc/80328-vse-delayu-logichno-no-ne-rabotaet.html)

Сергей Ракипов 01.07.2020 07:50

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

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>


И вроде бы работает, но возникают ошибки

voraa 01.07.2020 09:58

Цитата:

Сообщение от Сергей Ракипов
И вроде бы работает, но возникают ошибки

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

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

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

строки 21-26 аналогично

Сергей Ракипов 01.07.2020 10:20

voraa,
все сработало
а что такое
ea
это параметр?

рони 01.07.2020 10:28

Цитата:

Сообщение от Сергей Ракипов
а что такое
ea

это элемент массива, название может быть любое, смотрите документацию на forEach

voraa 01.07.2020 10:29

Цитата:

Сообщение от Сергей Ракипов
а что такое
ea
это параметр?

Да. параметр.
см функцию forEach
https://developer.mozilla.org/ru/doc.../Array/forEach

Сергей Ракипов 01.07.2020 10:42

рони,
voraa,

Спасибо, за помощь.
Правда очень признателен.

Сергей Ракипов 03.07.2020 15:18

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

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);

рони 03.07.2020 15:38

Сергей Ракипов,
условие со знаком равно, логично использовать один раз, либо в строке 4 либо в строке 7.

Сергей Ракипов 03.07.2020 18:17

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

я бы проверил но я не возле компа

рони 03.07.2020 18:50

Цитата:

Сообщение от Сергей Ракипов
а если

можно но в реальности равно(=961) будет очень редко(961.4 и т.д.), и часто этим можно пренебречь.


Часовой пояс GMT +3, время: 22:46.