Я столкнулся с подобной проблемой. Вот что я сделал, и он прекрасно работает (only alpha changes on hover and also the text is not affected
), выполнив следующие действия:
1) Примените выделенный (или любой другой по вашему выбору) класс к любому элементу, для которого вы хотите изменить альфа-фон.
2) Получить цвет фона rgba
3) Сохраните его в строку и манипулируйте им (измените альфа), как вам нужно, при наведении курсора (mouseenter и mouseleave)
HTML код:
<div class="highlighted brown">Link 1</div><br><br>
<div class="highlighted green">Link 1</div>
Код CSS:
.brown {background-color: rgba(118,76,41,.8);}
.green {background-color: rgba(51,91,11,.8);}
Javascript код:
$(document).on({
mouseenter: function() {
var rgba_str = $(this).css("background-color");
var new_rgba_str ="rgba(" + rgba_str.substring(rgba_str.lastIndexOf("(")+1,rgba_str.lastIndexOf(",")) + ", 0.5)";
$(this).css("background-color",new_rgba_str );
},
mouseleave: function(){
var rgba_str = $(this).css("background-color");
var new_rgba_str ="rgba(" + rgba_str.substring(rgba_str.lastIndexOf("(")+1,rgba_str.lastIndexOf(",")) + ", 0.8)";
$(this).css("background-color",new_rgba_str );
}
},'.highlighted');
Рабочая скрипка: http://jsfiddle.net/HGHT6/1/