Yandex Metrika
sanches.free

Чекбокс в виде переключателя: скрыть нативный input и стилизовать label с псевдоэлементом бегунка

Разбор задачи

Нативный input типа checkbox остаётся в дереве документа, визуал перенесён на соседний label. Так состояние «вкл» читают скрипты форм Битрикс без кастомного hidden поля.

.neo-switch {
  appearance: none; width: 0; height: 0; position: absolute; opacity: 0;
 }
.neo-switch + label {
    position: relative; display: inline-block; width: 44px; height: 26px;
    background: #94a3b8; border-radius: 999px; cursor: pointer;
 }
.neo-switch:checked + label { background: #22c55e; }
.neo-switch:checked + label::after { translate: 18px 0; }
.neo-switch:focus-visible + label { outline: 2px solid #38bdf8; outline-offset: 2px; }
.neo-switch + label::after { content: ''; position:absolute; inset: 3px auto 3px 3px;
 width:20px;height:20px;border-radius:50%;background:#fff;transition:translate .18s ease; }

В списках настроек модуля прокладывайте name из шаблона компонента, чтобы POST совпадал с ожидаемым PHP обработчиком.

Замечания перед выкладкой

Вносите правки только через среду с бэкапом и понятным diff. Если сниппет идёт в шаблон на Битрикс, проверьте конфликт с уже подключённым jQuery/UI и включите «отложенный» запуск там, где длинный главный файл может обрезать DOMContentLoaded.

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии