Пост для комментариев на разные темы
Jan. 29th, 2023 07:59 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Поскольку с ютуба я ушел, первоначальная цель данного сообщества потеряла смысл. Но, поскольку в моем журнале комменты закрыты (и открыть их для отдельных постов не позволяет движок, а для всех - не хочу), создаю отдельный пост, через который можно писать мне, здесь. Естественно, тролли и вата банятся сразу по обнаружении, флудеры и демагоги - после предупреждения. И предпочтительной формой связи со мной остается е-мэйл.Пишите сюда только в том случае, если вы уверены, что ваш коммент может быть интересен не только мне.
Re: Техническое. Это НЕВОЗМОЖНО! Кто разбирается в JS+CSS? Н
Date: 2023-06-19 01:38 pm (UTC)То-то и оно, что все величины верные. А цвет меняется не с той скоростью, с какой должен, согласно этим величинам.
Но я, похоже, уже нашел источник проблемы. Он ОЧЕНЬ нетривиальный - глюк не у меня, а у разработчиков. Через несколько часов тестирования станет ясно, действительно ли дело в этом.
Re: Техническое. Это НЕВОЗМОЖНО! Кто разбирается в JS+CSS? Н
Date: 2023-06-19 03:14 pm (UTC)Re: Техническое. Это НЕВОЗМОЖНО! Кто разбирается в JS+CSS? Н
Date: 2023-06-19 07:19 pm (UTC)setTimeout там только для того, чтобы обновлять долготу дня (и соотв. привязанную к ней анимацию) раз в сутки (он у меня, кстати, был прописан с ошибкой - setInterval(setdaylen_(),... вместо setInterval(setdaylen_,..., но дело совсем не в этом) Параметры анимации прописаны в самом верху, в св-вах стиля body (animation-duration при загрузке страницы меняется на 12 часов), и часть из них а именно animation-delay и, самое главное,
Сейчас удалось установить следующее. Первый вызов ф-ции setdaylen (при загрущке страницы) отрабатывает корректно. Последующие порождают проблему. Хотя, снова повторяю, все передаваемые параметры верны.
Сначала
if(toReplace!=-1) { //-1 ставится при загрузке страницы
var element = document.getElementsByTagName('head')[0];
if(toReplace!=-1) {
element.replaceChild(astyle, element.childNodes[toReplace]);
}
else {
element.appendChild(astyle);
toReplace = element.childNodes.length-1;
}
Казалось, что проблему создает именно replaceChild, после чего анимация начинала хрен знает почему идти быстрее. Заменил на
var element = document.getElementsByTagName('head')[0];
if(toReplace!=-1) {
element.removeChild(element.childNodes[toReplace]);
}
element.appendChild(astyle);
toReplace = element.childNodes.length-1;
Теперь анимация идет с правильной скоростью, но если нажать ОК не сразу после загрузки, а несколко часов спустя - фаза резко сбивается, как будто передан неправильный delay (больший, чем надо - т.е. вермя прыгает вперед!) в строке
document.body.style.animationDelay=-(curdate.getSeconds()+(curdate.getMinutes()-timeshift)*60+(curdate.getHours()+24)*3600)+'s';
Но он правильный, и отладочная печать это подтверждает! Абсолютно не понимаю, что происходит :(((
Re: Техническое. Это НЕВОЗМОЖНО! Кто разбирается в JS+CSS? Н
Date: 2023-06-19 10:26 pm (UTC)Анимация запускается. выставляя фазу согласно delay, и у нее начинает тикать внутренний таймер. При новом вызове ф-ции через время t delay честно обновляется (как и любые другие параметры, включая кейфрейм) и становится delay+t (точнее delay-t, поскольку он отрицательный), но внутренний таймер при этом не сбрасывается, а остается t! Соотв. фаза увеливается на лишнее t.
И это несмотря на
document.body.style.animationName="fuck"; и даже на
void document.body.style.offsetWidth;
которые по идее обязаны его перезапустить.
Ну и хрен с ним, пусть тикает сам, раз такой упертый. Исправил, теперь должно работать.