Код у меня получился рабочий, но меня смущает то, что в консоле выполняется многократное действия:
При разрежении экрана больше 768 пикселей плагин инициализируется, если меньше 768 пикселей то код не выполняется (дестрой):
const searchLeftContent = $(".search-left-content");
(checkAndRepaint)();
window.onresize = checkAndRepaint;
function checkAndRepaint() {
if ($(window).width() >= 768) {
// Инициализация плагина
searchLeftContent.mCustomScrollbar({
theme: "dark-3"
});
console.log('Initial');
} else {
// Дестрой плагина
searchLeftContent.mCustomScrollbar("destroy");
console.log('destroy');
}
}
Я специально поместил код console.log('Initial'); что бы было ясно сколько раз выполняется действия скрипта - http://joxi.ru/V2Ve6qVfyv9Ymv меня смущают цифры, они возникают тогда когда я меняю размер окна браузера. Подскажите правильно ли написан скрипт?
PS. Тут можно посмотреть работу скрипта http://test.buyhtml.ru/result.html
Чтобы улучшить производительность, рекомендую вам воспользоваться функцией debounce
. Таким образом, если вы потянете окошко, то функция не будет вызвана много раз подряд и не нагрузит браузер почём зря, она выполнится один раз после того, как пройдёт 250 мс после события resize
.
const searchLeftContent = $(".search-left-content");
var dbCheckAndRepaint = debounce(checkAndRepaint, 250);
(checkAndRepaint)();
window.onresize = dbCheckAndRepaint;
function checkAndRepaint() {
if ($(window).width() >= 768) {
// Инициализация плагина
/*searchLeftContent.mCustomScrollbar({
theme: "dark-3"
});*/
console.log('Initial');
} else {
// Дестрой плагина
//searchLeftContent.mCustomScrollbar("destroy");
console.log('destroy');
}
}
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this,
args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
есть небольшой плагин для проверки вводадля input например
У нас есть n-блоков !В каждом есть селекторная выборка!Проблема в том что если я выбираю из списка в 1 блоке , то значения передаються и всем...
Совершенно недавно начал изучать руби и jqueryСтолкнулся с проблемой вроде все просто, но что-то не получается
Необходимо при нажатии так скажем поменять время в таблице на Timenow