PageSourceSearch

https://tagankateatr.ru/_inc/visitors.js?6794

js tagankateatr.ru collected 2026-10-02 09:59:16 UTC 3,581 bytes, 47 lines download raw bytes

1/* ============================================================
2   VISITORS.JS — блок «Посетителям», Театр на Таганке
3
4   ФАЙЛ БОЛЬШЕ НЕ НУЖЕН. Его следует убрать из шаблонов CMS
5   вместе с тегом <script src="/_inc/visitors.js">, после чего
6   можно удалить и сам файл. Заглушка оставлена только на время
7   выкладки, чтобы страницы не ловили 404.
8
9   ------------------------------------------------------------
10   Что здесь было и почему убрано
11
12   Скрипт отключал CSS-анимацию ленты партнёров
13   (track.style.animation = 'none') и вёл позицию сам: цикл
14   requestAnimationFrame писал transform каждый кадр и вызывал
15   getShiftAmount(), а внутри — getComputedStyle(track).gap и
16   track.scrollWidth. Оба чтения заставляют браузер синхронно
17   пересчитывать раскладку, то есть это происходило 60 раз в
18   секунду бесконечно, при том что оба значения неизменны.
19
20   PageSpeed приписывал файлу 674 мс процессорного времени при
21   всего 85 мс собственно исполнения скрипта — остальное как раз
22   спровоцированные пересчёты стилей и раскладки. Это была самая
23   дорогая строка среди всего собственного кода сайта (838 мс).
24
25   Побочные дефекты той реализации:
26   — скорость задавалась в пикселях на кадр (0.5px), поэтому на
27     дисплеях 120 Гц лента ехала вдвое быстрее задуманного;
28   — комментарий обещал совпадение с 40s из CSS, но на десктопе
29     в CSS стоит 80s, так что скорости не совпадали нигде;
30   — цикл работал, даже когда блок находится в шести экранах
31     ниже сгиба и посетитель до него не доскроллил.
32
33   Причина, по которой скрипт вообще появился, была настоящей:
34   CSS-правило translateX(-50%) недодвигало ленту на половину
35   промежутка между логотипами (40px на десктопе), и на стыке
36   был виден рывок. Это исправлено в visitors.css — промежуток
37   перенесён из gap трека в margin-right карточек, после чего
38   -50% стал точным. Проверено на живой странице: расхождение
39   0,11px вместо 40px.
40
41   Теперь лента целиком описана в CSS, крутится на композиторе
42   и главный поток не занимает. Пауза по наведению и поддержка
43   prefers-reduced-motion — тоже в CSS.
44
45   Свайп пальцем по ленте намеренно не переносился: по решению
46   от 3 августа 2026 логотипы просто крутятся.
47   ============================================================ */

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.