Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отключить или сделать не работоспособными функции (https://javascript.ru/forum/misc/80214-otklyuchit-ili-sdelat-ne-rabotosposobnymi-funkcii.html)

Сергей Ракипов 10.05.2020 06:47

Отключить или сделать не работоспособными функции
 
Как в js отключают или делают не активными. не знаю как правильно сказать.
У меня есть функции которые нужно что бы они прекратили свою работу при определенном разрешении экрана (для мобильной версии), что бы просто не работали там чисто верстка и ни каких эффектов.

Как это сделать не знаю, есть одна мысль, собрать нужные функции в одном скрпите и просто ему менять путь на пустой файл js в теории я думаю что так можно сделать. Но есть ощущение что так не делают.

рони 10.05.2020 09:40

Цитата:

Сообщение от Сергей Ракипов
нужно что бы они прекратили свою работу при определенном разрешении экрана

можно в начале каждой функции добавить
if (window.matchMedia("(max-width: 400px)").matches) return;

Как сделать - Медиа запросы с JavaScript

Window.matchMedia()

Сергей Ракипов 10.05.2020 10:25

let imgArticle = document.querySelector(".img_article");
let imgArticle_2 = document.querySelector(".img_article_2");
let explanation = document.querySelector(".explanation_defolt");

function explanationSticky(){

let scrollTop;
if (window.pageYOffset){
    scrollTop = window.pageYOffset;
}
else {
    if (document.documentElement.scrollTop){
        scrollTop = document.documentElement.scrollTop;
    }
    else{
        scrollTop = document.body.scrollTop;
    }
}

function myFunction(x){
	if(x.matches){
		if(scrollTop >= 220 & scrollTop <= 820){
			explanation.classList.remove("explanation_defolt");
			explanation.classList.add("explanation_scroll");
		}
		else{
			explanation.classList.add("explanation_defolt");
			explanation.classList.remove("explanation_scroll");
		}
	}
	else{
		explanation.classList.remove("explanation_scroll");
		explanation.classList.remove("explanation_defolt");
		explanation.classList.add("explanation_mobile");
	}
}

let x = window.matchMedia("(max-width: 860px)");
myFunction(x);
x.addListener(myFunction);

window.addEventListener("scroll", explanationSticky);


У меня
Unexpected end of input в последней строке
и правильно ли соблюден синтаксис

рони 10.05.2020 11:19

Сергей Ракипов,
let imgArticle = document.querySelector(".img_article");
let imgArticle_2 = document.querySelector(".img_article_2");
let explanation = document.querySelector(".explanation_defolt");

function explanationSticky(){

let scrollTop;
if (window.pageYOffset){
    scrollTop = window.pageYOffset;
}
else {
    if (document.documentElement.scrollTop){
        scrollTop = document.documentElement.scrollTop;
    }
    else{
        scrollTop = document.body.scrollTop;
    }
}

    let x = window.matchMedia("(min-width: 640px)").matches;  
    if(x){
        if(scrollTop >= 220 & scrollTop <= 820){
            explanation.classList.remove("explanation_defolt");
            explanation.classList.add("explanation_scroll");
        }
        else{
            explanation.classList.add("explanation_defolt");
            explanation.classList.remove("explanation_scroll");
        }
    }
    else{
        explanation.classList.remove("explanation_scroll");
        explanation.classList.remove("explanation_defolt");
        explanation.classList.add("explanation_mobile");
    }
}





window.addEventListener("scroll", explanationSticky);

Сергей Ракипов 10.05.2020 12:53

if(matchMedia){
	let screen = window.matchMedia("(max-width:860)");
	screen.addListener(changes);
	changes(screen);
}
function changes(screen){
	if(screen.matches){
		console.log("больше");
	}
	else{
		console.log("меньше");
	}
}


Нашел вот такое еще решение и не понимаю почему оно не работает


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