Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Переливы прозрачности. Плавное изменение свойства
Работает во всех браузерах!
Исходный код этого примера:
<style>
#a {
background-color: #dc251c;
border: 3px solid #b4241b;
padding: 5px;
opacity: 0.5;
width: 166px;
}
</style>
<script type="text/javascript">
<!--
function showElement(show, obj, time, resolution) {
resolution=(resolution>0? resolution: 50); //пауза между фреймами
var step=(show? 1: -1)*(1/(time>0? time: 1000))*resolution; //шаг в процентах от заданного времени
var opacity=(typeof(obj.style.KhtmlOpacity)!="undefined")? parseFloat(obj.style.KhtmlOpacity): //konquerror и его семейство
(typeof(obj.style.MozOpacity)!="undefined")? parseFloat(obj.style.MozOpacity): //мозилла и прочие Gecko. мозилла не покажет какое сейчас значение, если его не меняли...
(typeof(obj.filters)!="undefined")? obj.filters.Alpha.Opacity.value/100: //IE вариант
(typeof(obj.style.opacity)!="undefined")? parseFloat(obj.style.opacity): //не стоит доверять, может не undefined для понту, а всё равно не поддерживаеться CSS3
null; //нет прозрачности как таковой
if(opacity==null) return;
opacity=isNaN(opacity)? (show? 0: 1) : opacity; //тест на вшивость
//и так здесь мозилла(возможно konquerror) обложалась, мы не можем узнать значение opacity если оно не менялось
//потому в первый раз возьмём как будто мы находимся на границе, либо 0, либо 1
var timer=window.setInterval(function() {
if((opacity+=step)>=1||opacity<=0) window.clearInterval(timer);
if(obj.filters) obj.filters.alpha.opacity=Math.round(opacity*100);
obj.style.KhtmlOpacity=obj.style.MozOpacity=obj.style.opacity=opacity;
}, resolution);
}
//-->
</script>
<img src="../ann.jpg" id="a">
<br>
<input type=submit value="Скрыть" onClick="showElement(0,document.getElementById('a'),0,0)">
<input type=submit value="Отобразить" onClick="showElement(1,document.getElementById('a'),0,0)">
.
Прокомментировать/Отблагодарить