Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.01.2019
Сообщений: 11

Лагает CSS анимация, передаваемая через JS

29.08.2019, 23:31. Показов 1469. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Есть у меня на сайте модальное окно, и захотел я, чтоб оно красиво появлялось и исчезало. К конечному результату я пришел довольно быстро и отправился отдыхать. Но когда я на следующий день зашел на сайт, то я увидел очень неприятную картину: если заходить на сайт в первый раз после открытия браузера, то анимация эта, просто жутко лагает, но все проходит через 5-7 секунд. После этого начинает нормально работать.
Если зайти на сайт и подождать некоторое время, а только потом активировать анимацию, то она так же лагает.
Подскажите как можно оптимизировать мой код или решить данную проблему другим способом.

//Нажимаем кнопку войти, тем самым активируя модальное окно.

HTML5
1
<div id="ss"><button id="myBtn" class="myBtn">Вход</button></div>
//Состояние фона страницы, когда кнопка не нажата.

CSS
1
2
3
.wallpeper_blur {
transition: 0.55s;
}
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
var modal = document.getElementById('myModal');
var btn = document.getElementById("myBtn");
var span = document.getElementsByClassName("close")[0];
var blur = document.getElementsByClassName("wallpeper_blur");
var body = document.getElementsByClassName("modal-content");
 
btn.onclick = function() {
    modal.className = "modal";
    modal.style.display = "block";
}
 
span.onclick = function() { 
    modal.className = "modal1";
    setTimeout(function(){ modal.className = "myModal1";},560);
    setTimeout(function(){ modal.style.display = "none" ;},560);
    /*modal.style.display = "none";*/
}
 
window.onclick = function(event) {
    if (event.target == modal) {
        span.className = "closeAnim";
        setTimeout(function(){ span.className = "close";},560);
    }
}
 
//Изменение состояния фона страницы, после открытия модального окна.
 
$('.myBtn').click(function() {
    $('.wallpeper_blur').css('filter', 'blur(3px)');
});
 
//Изменение состояния фона страницы, после закрытия модального окна.
 
$('.close').click(function() {
    $('.wallpeper_blur').css('filter', 'blur(0px)');
});
JavaScript
1
2
3
4
5
6
7
$('.myBtn').click(function() {
    $('.wallpeper_blur').css('filter', 'blur(3px)');
});
 
$('.close').click(function() {
    $('.wallpeper_blur').css('filter', 'blur(0px)');
});
Если убрать строчки выше, то лагать перестаёт, но я бы не хотел убирать их. Хочу всё сделать красиво.

сайт: http://it-software.ru
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2019, 23:31
Ответы с готовыми решениями:

Анимация свойства css через jquery
У меня есть картинка, которая должна сначала увеличиться, потом чуть уменьшиться и опять увеличиться. Увеличение я написал. А вот...

Лагает анимация RecyclerView
Ребят, написал простейший RecyclerView, в котором всего 3 карточки, в которых по ImageView и TextView. На lenovo p90 pro лагает дико, а на...

Лагает подключение через wi-fi (Ростелеком)
Помогите пожалуйста! Раньше подключался отлично, все работало, потом подключился у друга через кабель, и теперь мой вай-вай мне пишет...

1
0 / 0 / 0
Регистрация: 08.01.2019
Сообщений: 11
16.09.2019, 11:21  [ТС]
Методом проб и ошибок я все-же выяснил, что свойство blur() очень сильно нагружает браузер, вне зависимости от железа. Выход из данного положения пришел сам собой: Вместо размытия (blur()) я использовал прозрачность (opacity()). Может кому-нибудь это когда-нибудь пригодится.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.09.2019, 11:21
Помогаю со студенческими работами здесь

Css анимация
Делаю прелоадер на страницу. Сделала вот такой, но попросили задействовать меньше divов. https://codepen.io/liza_zay/pen/gxBMvK ...

CSS анимация
Здравствуйте! кто нибудь может объяснить логику этой конструкции? почему проценты указаны в строчку и на них назначено одно и то же...

Анимация css
Ребятки, проблема с анимацией CSS. Я в этой теме плаваю, поэтому много вопросов возникает. Хочу сделать следующее: при наведении на объект...

Анимация на css
Всем добрый день! Подскажите пожалуйста, хочу сделать следующую анимацию: 1) При наведении мыши на главное меню в определенной...

CSS анимация
&lt;div id=&quot;middlemenu&quot;&gt; &lt;ul id=&quot;iconmenu&quot;&gt; &lt;li&gt; &lt;a href=&quot;#&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru