Я запускаю тему wordpress, которая имеет липкий заголовок. Я построил subnav, который отображается прямо под заголовком. Всякий раз, когда я использую этот subnav, заголовок не должен оставаться липким, вместо этого subnav должен быть липким (уже сделанным с помощью простого javascript addClass). Меня интересует только то, как наилучшим образом отключить липкость заголовка.Правила производительности css против jQuery .toggleClass
(1) Использование CSS: Один из способов - использовать css и переопределить классы, которые делают заголовок липким. Это уже работает, я только что изменил позицию, зафиксированную на статике, и отключил местозаполнитель, что позволяет избежать пробела в содержимом, когда позиция установлена на фиксированную, а заголовок выведен из потока. Исходя из того, что я хочу использовать subnav на многих страницах (около 70%), мне пришлось бы написать одно большое правило css для таргетинга на соответствующие страницы своими идентификаторами. Это приводит к моей мысли о том, что javascript может улучшить ресурсы.
(2) Использование Javascript: Я написал небольшой фрагмент JavaScript, который легко удаляет весь CSS-классы, когда идентификатор subnav присутствует на странице:
if(document.getElementById('subnavfullwidth')){
jQuery('.header-sticky-height').toggleClass('header-sticky-height', 'false');
jQuery('.header-wrapper').toggleClass('header-is-sticky', 'false');
jQuery('.header').toggleClass('.header-sticky-shadow', 'false');
}
Simple как название: будет ли javascript лучше или одно большое правило css для производительности сайта? Есть ли способ оптимизировать мой javascript, или это нормально?
С уважением!
Вы можете оплодотворить javascript, добавив идентификаторы к вашим селекторам. См. Это сообщение: http://stackoverflow.com/questions/23518072/improve-inefficient-jquery-selector/23518492#23518492 – terpinmd
Привет, terpmind, мне нужно добавить идентификаторы к классам css выше (.header-sticky-height, .header-wrapper & .header), или также можно использовать идентификатор другого элемента. Самый родительский элемент всей страницы - #wrap_all. Могу ли я использовать это для лучшей производительности? -> jQuery ('#wrap_all'). найти ('. header-sticky-height) .toggleClass и т. д.? – DoUtDes
Эффективность здесь должна быть неактуальной./С точки зрения удобочитаемости и ремонтопригодности я бы переключил/переключил только класс _one_ через JS здесь, для тела или элемента html; все остальное, что я буду хранить в таблице стилей, используя селектор потомков. – CBroe