(function(bannerClassName) { const sendEvent = (token, action) => { const value = 'Branding ' + token + ' – ' + action; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } else { console.log('GA send: ' + value); } }; const oneBeforePageChange = (callback) => { if (typeof Air === 'object') { const ajaxify = Air.import('module.ajaxify'); ajaxify.one('Before page changed', () => { try { if (callback) { callback(); } } catch (error) { console.log(error); } }); } }; const onLinkClick = (e) => { const link = e.target; const href = link.getAttribute('href'); sendEvent(href, 'Click'); link.removeEventListener('click', onLinkClick); }; const branding = document.querySelector(bannerClassName); if (!branding) { return; } const links = branding.querySelectorAll('a'); for (let i = 0; i < links.length; i += 1) { const isVisible = getComputedStyle(links[i]).display !== 'none'; const href = links[i].getAttribute('href'); if (isVisible) { sendEvent(href, 'Show'); } links[i].addEventListener('click', onLinkClick); } oneBeforePageChange(() => { for (let i = 0; i < links.length; i += 1) { links[i].removeEventListener('click', onLinkClick); } }); })('.entry-native-branding');

Перевод: Распределение веса в анимации

Правильное распределение веса в анимации — залог успеха для создания реалистичного движения. В новом переводе блоггер Alessandro Camporota расскажет, какую ошибку часто совершают аниматоры, и о чем обязательно нужно помнить, создавая персонажа, поднимающего тяжесть.

(function(bannerClassName) { const sendEvent = (token, action) => { const value = 'Branding ' + token + ' – ' + action; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } else { console.log('GA send: ' + value); } }; const oneBeforePageChange = (callback) => { if (typeof Air === 'object') { const ajaxify = Air.import('module.ajaxify'); ajaxify.one('Before page changed', () => { try { if (callback) { callback(); } } catch (error) { console.log(error); } }); } }; const onLinkClick = (e) => { const link = e.target; const href = link.getAttribute('href'); sendEvent(href, 'Click'); link.removeEventListener('click', onLinkClick); }; const branding = document.querySelector(bannerClassName); if (!branding) { return; } const links = branding.querySelectorAll('a'); for (let i = 0; i < links.length; i += 1) { const isVisible = getComputedStyle(links[i]).display !== 'none'; const href = links[i].getAttribute('href'); if (isVisible) { sendEvent(href, 'Show'); } links[i].addEventListener('click', onLinkClick); } oneBeforePageChange(() => { for (let i = 0; i < links.length; i += 1) { links[i].removeEventListener('click', onLinkClick); } }); })('.entry-article-footer');
0
2 комментария
ZEYTAN MUSIC

Спасибо, очень полезный лонгрид

Ответить
Развернуть ветку
Hy6oMeT .

Хех, этот пост выглядит полезнее любого лонгрида по анимации от вас же (кроме того с советами для новичков) :).
Лучше, конечно, такие мини-туторы или всякие типсы-трики продолжать выпускать, чем 2 страницы А4 с водой ни о чем. Это будет полезно малышам, да еще и вас, как школу, будет продвигать лучше, потому что говорите по делу, а не воду льете в статьях, как всякие XYZ.
UPD
Подсайт "Кино и сериалы" выглядит мискоиком. Уж лучше бы в какой-нибудь Gamedev запостили бы.

Ответить
Развернуть ветку
Читать все 2 комментария
null