Javascript.RU

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

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

Как это сделать не знаю, есть одна мысль, собрать нужные функции в одном скрпите и просто ему менять путь на пустой файл js в теории я думаю что так можно сделать. Но есть ощущение что так не делают.
Ответить с цитированием
  #2 (permalink)  
Старый 10.05.2020, 09:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

Сообщение от Сергей Ракипов
нужно что бы они прекратили свою работу при определенном разрешении экрана
можно в начале каждой функции добавить
if (window.matchMedia("(max-width: 400px)").matches) return;

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

Window.matchMedia()
Ответить с цитированием
  #3 (permalink)  
Старый 10.05.2020, 10:25
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

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 в последней строке
и правильно ли соблюден синтаксис
Ответить с цитированием
  #4 (permalink)  
Старый 10.05.2020, 11:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

Сергей Ракипов,
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);
Ответить с цитированием
  #5 (permalink)  
Старый 10.05.2020, 12:53
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

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("меньше");
	}
}


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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать обёртку для функции? Артист Общие вопросы Javascript 17 21.10.2016 07:30
Как отлаживать события? Или как сделать трассировку вызовов функций? gennad Events/DOM/Window 1 18.08.2010 13:21
Вопрос тупой, как сделать обычное по со списком или combobox иначе ? dennnyk Элементы интерфейса 1 07.07.2010 06:59
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
Функции поиска и замены строк или регулярные выражения? Armen Общие вопросы Javascript 1 01.01.2010 12:35