Непрозрачность не работает должным образом в JavaScript, если он начинается с 0,0
У меня есть два деления друг на друга. Один имеет фоновое изображение, а другой - наложение с непрозрачностью 0. При наведении мыши фон меняется, и наложение получает непрозрачность 1, а при отпускании мыши фон возвращается к оригиналу, а наложение возвращается к прозрачному.
Вот странная часть, если непрозрачность начинается с 0, она не работает. Если непрозрачность начинается с 1, она работает отлично, за исключением того, что наложение видно при загрузке страницы. Итак, что происходит и как мне заставить его работать, начиная с непрозрачности 0?
HTML
<BODY>
<div id="corporate" onmouseover="changebg('contract.jpg', 1)"
onmouseleave="changebg('corporate.jpg', 0)"
onclick="changepage('corporate.html')"><div id="corporateoverlay">
<h1>Corporate</h1></div>
</div>
</BODY>
</HTML>
CSS
body {
background-color: #000000;
color: #ffff00;
}
h1 {text-align: center;}
#corporate {
width: 50%;
height: 250px;
clear: left;
float: left;
background-image: url('corporate.jpg');
background-size: 100%;
}
#corporateoverlay {
color: rgba(255,255,0,1)
}
JS
function changebg (newpic, opac) {
var urlString = 'url(' + newpic + ')';
document.getElementById("corporate").style.backgroundImage = urlString;
document.getElementById("corporateoverlay").style.opacity = opac;
}
2 ответа
Прежде всего, цвет - определяет цвет текста, поэтому я не знаю, хотите ли вы это сделать. Во-вторых, проверьте здесь совместимость http://css-tricks.com/rgba-browser-support/. В-третьих, вы меняете непрозрачность style.opacity, но используете color: rgba(), непрозрачность - еще один ключ в css. Вы должны установить стандарт, а затем работать с ним, потому что вы все путаете.
Что -то вроде этого? Я просто применил прозрачность в CSS отдельно от RGBA.
function changebg (newpic, opac) {
var urlString = 'url(' + newpic + ')';
document.getElementById("corporate").style.backgroundImage = urlString;
document.getElementById("corporateoverlay").style.opacity = opac;
}
body {
background-color: lightgray;
color: gray;
}
h1 {text-align: center;}
#corporate {
width: 50%;
height: 250px;
clear: left;
float: left;
background-image: url('corporate.jpg');
background-size: 100%;
}
#corporateoverlay {
color: gray;
opacity: 0;
}
<div id="corporate" onmouseover="changebg('contract.jpg', 1)"
onmouseleave="changebg('corporate.jpg', 0)"
onclick="changepage('corporate.html')">
<div id="corporateoverlay">
<h1>Corporate</h1>
</div>
</div>