我试过使用webkit转换的一些变体,我从google搜索中发现了这些变体,但是我一直无法获得任何工作。我有一些音频控件出现在点击事件中,它们突然出现,所以我想让它们淡入。目标浏览器是iOS,因此我正在尝试使用webkit扩展。在javascript中使用webkit转换挣扎
这是我目前有:
<div id = "controls">
<audio id = "audio" controls></audio>
</div>
#controls {
position:absolute;
top: 35px;
left:73px;
height: 20px;
width: 180px;
display:none;
}
#audio {
opacity:0.0;
}
audio.src = clip;
audio.addEventListener('pause', onPauseOrStop, false);
audio.addEventListener('ended', onPauseOrStop, false);
audio.play();
audioControls.style.display = 'block';
audio.style.setProperty("-webkit-transition", "opacity 0.4s");
audio.style.opacity = 0.7;
对WebKit的过渡的文件说,它发生在该财产的变化效果,所以我是假设在最后一行会踢它改变style.opacity关闭。
该控件显示的不透明度为0.7,但我希望它淡入并且不会发生动画。
我也试过这样:
#audio {
opacity:0.0;
-webkit-transition-property: opacity;
-webkit-transition-duration: 1s;
-webkit-timing-function: ease-in;
}
也试过
从这个发布How to set CSS3 transition using javascript?
我不能得到任何工作,我测试在iOS,Safari浏览器桌面和Chrome。所有这些都没有结果。
UPDATE:
按照提供的控件现在出现在顺利地答案,但衰落出来不工作(他们立即消失了,我在把一个持续时间长,以确保我能看到它的发生)
if (audioControls.style.display && audioControls.style.display === 'block') {
// controls are currently displayed
audio.removeEventListener('pause', onPauseOrStop, false);
audio.removeEventListener('ended', onPauseOrStop, false);
audio.pause();
audioControls.style.display = 'none';
setTimeout(function() {
audioControls.style.webkitTransition = "opacity 4.0s";
audioControls.style.opacity = 0.0;
}, 0);
}
else {
// controls are not displayed, display them and play the audio
audio.src = clip;
audio.addEventListener('pause', onPauseOrStop, false);
audio.addEventListener('ended', onPauseOrStop, false);
audio.play();
audioControls.style.display = 'block';
setTimeout(function() {
audioControls.style.webkitTransition = "opacity 4.0s";
audioControls.style.opacity = 0.7;
}, 0);
}
干杯,并感谢由于线程解释原因。 – Gruntcakes
现在,使控件在外观上淡出效果,但试图淡出它们不起作用。我已经用处理音频控件外观/消失部分的更多javascript更新了我的问题。 – Gruntcakes
设置'display:none;'会导致你的div在动画之前消失。你需要在这里详细介绍一个'transitionend'事件后设置它:http://stackoverflow.com/questions/12277380/css3-transition-cannot-repeat/12277760#12277760 – Duopixel