bogette, моя проблема в том, что я привык к меню, которое работает. А ваша - в том, что вместо того, чтобы принять фидбек вы стараетесь меня убедить в том, что меню рабочее, хотя оно не выполняет основную задачу.
Ну так я не могу посмотреть на концепт. Я хочу попробовать, попереходить. А оно после первого же перехода сразу ломается. Какое же это меню для перехода между страницами, если:
1. Оно позволяет перейти только на одну страницу
2. Я даже не понял, что оно на эту страницу перешло
3. Оно не позволяет ни вернуться на главную, ни снова его открыть
Пока даже та задача перехода между страницами не решена. Тут нет на что смотреть.
Тогда я не понимаю, что тут смотреть. В чем заключается другая страница? В том, что есть такая же картинка? Что вы показываете? Я не понимаю, что этот сайт хочет от меня. Сделайте хотя бы базово понятно. Заполните хотя бы фейковым контентом. Дайте пользователю хотя бы с чем-то повзаимодействовать. Сделайте хотя бы что-то. А потом - показывайте.
Лучше вы бы сначала сделали хотя бы что-то более-менее рабочее, чтобы оно не ломалось от одного нажатия в любом месте, а уже потом показывали хотя бы кому то. Хотели сэкономить себе полтора часа за счет многих часов других людей. Крайне эгоистично, а потому - отвратительно.
for (var i = 0; i < elements; i++) {
elements[i].style.backgroundPosition = '......';
}
Это затратно, если вы изменяете 60 раз в секунду тысячи элементов. Если вы один раз при старте инициируете настройки - в этом ничего затратного не будет, поверьте или проверьте.
starostyants, и что - заработало корректно? Проверьте на крайних случаях. Вроде текста "WWW WWW WWW WWW" и "III III III III", которые вмещаются впритык.
starostyants, вам необходимо определиться - вы хотите, чтобы оно переносило или не хотите? Оно переносится потому что стало шире (как если бы вы дописали несколько символов).
Как совсем кривая альтернатива - поставьте между словами, переносить которые не хотите .
Поймите, что вы сейчас хотите, чтобы оно автоматически переносило, но при этом хотите чтобы оно автоматически не переносило. Задача слишком сложная, увы.
Лучший вариант - изменить верстку. Делайте не жирным, а усиливайте цвет. Скажем неактивный пусть будет #444, а активный - #000. Ощущение будет то же, но ширина не будет изменяться.
Еще можно использовать какой-то моноширинный шрифт. Тогда независимо от ширины будет меняться жирнота.
Как совсем крайний вариант - можно попробовать letter-spacing: -1 для жирного начертания, но это будет лишь прибилизительно - вы не сможете точно сместить буквы на их жирноту.
zlodiak, нет, конечно никаких библиотек. Подход очень простой - если промис еще state = null, то вы функции, которые приходят в then просто сохраняете в какой-то кеш. Когда промис резолвится или реджектится - собираете весь набор из кеша и выполняете. Дальше просто сразу выполняете то, что приходит.