Вот элемент:
<button class="nos" id="nos1" onClick="nos(0)"></button>
В css прописываем свойство при нажатии изменять задний фон:
#nos1:active{background-position: -118 -27;}
Затем в js заменяем самостоятельно задний фон:
documet.getElementById('nos1').style.backgroundPosition = "-59 -27"
Код из css перестает работать (кнопка не изменяется при нажатии). Почему происходит так? Есть ли способ задать псевдокласс не через html, а в js (то есть через js влиять на стиль при нажатии)?
Добавьте в CSS !important
function nos(int) {
document.getElementById('nos1').style.backgroundColor = "red";
}
#nos1:active {
background-color: yellow !important;
}
<button class="nos" id="nos1" onClick="nos(0)">Test</button>
js накладывает inline стили, у них большой приоритет. лучше создайте класс в css, а в js добавляйте его и удаляйте.
$('button').on('click', function(e){
$(e.target).addClass('bgc_red')
})
.bgc_red{
background-color: blue;
}
button:active{
background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Azaza</button>
Вы забыли единицы, пиксели, судя по всему.
documet.getElementById('nos1').style.backgroundPosition = "-59px -27px";
Так же и в CSS:
#nos1:active{
background-position: -118px -27px;
}
Напишите программу (на языке JavaScript), которая найдет в массиве все пары целых чисел, сумма которых равна заданному значению