ExEr7um
@ExEr7um
Фронтендер

Как изменить свойства с помощью jQuery?

У меня есть <input type="range">, его свойства я менял через CSS:
.signSize {
  ...
}

.signSize::-webkit-slider-runnable-track {
  ...
}

.signSize::-webkit-slider-thumb {
  width: 1px;
  -webkit-appearance: none;
  height: 50px;
  background: #C4C4C4;
  box-shadow: -20rem 0 0 20rem #C4C4C4;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.signSize::-moz-range-progress {
  background-color: #C4C4C4;
}

.signSize::-moz-range-track {
  background-color: #FFF;
}

.signSize::-ms-fill-lower {
  background-color: #C4C4C4;
}

.signSize::-ms-fill-upper {
  background-color: #FFF;
}

Мне нужно, чтобы при изменении значения менялся его цвет. Просто изменить его границу у меня получилось:
$('#signSize').on('input', function () {
      $('#sign').css('font-size', $('#signSize').val() / 2);
      $(this).css('border', '1px solid #1EA896');
  });

Но мне нужно также изменить свойства в .signSize::-webkit-slider-runnable-track и так далее, то есть там, где класс называется через :
Как это сделать? Заранее спасибо всем за ответы!
  • Вопрос задан
  • 209 просмотров
Решения вопроса 1
customtema
@customtema
arint.ru
Это НЕ правильный путь, но есть хак, позволяющий изменять свойства классов и псевдоклассов в реальном времени с помощью JS:

document.write('<style type="text/css> а тут ваш CSS </style>');


Теоретически, можете менять свойства классов и псевдоклассов сколько угодно. На практике - работает, но гарантию дать нельзя. На то он и хак.

Лучше пересмотрите архитектуру. Вы можете менять классы, и в CSS прописать разницу свойств псевдоклассов - подклассов. Короче, как обычно на jQuery и делают, toggleClass();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы