javascript - js的點(diǎn)擊事件,用css3 transition做過渡,沒有效果 如下代碼
問題描述
html
<section id='dialog'> <p id='box'><p id='close'>x</p> </p> <p id='bg'></p></section><footer id='store-footer'> <p id='btn'>在線詢價(jià)</p> <p class='footer-item goin'>加入購物車</p> <p class='footer-item collect'>立即購買</p></footer>
css
#bg { position: fixed; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(7,17,27,0.5); z-index: 999; display: none; border-radius: 0.5rem; transition:all 2s; -moz-transition:all 2s; /* Firefox 4 */ -webkit-transition:all 2s; /* Safari and Chrome */ -o-transition:all 2s; /* Opera */}#box { position: fixed; width: 80%; height: 30%; top: 30%; left: 10%; display: block; margin: 0 auto; background-color: #fff; z-index: 1000; display: none; border-radius: 0.5rem; transition: 2s; -moz-transition: 2s; /* Firefox 4 */ -webkit-transition: 2s; /* Safari and Chrome */ -o-transition: 2s; /* Opera */}
js
<script> window.onload = function() {var box = document.getElementById('box');var bg = document.getElementById('bg');var btn = document.getElementById('btn');var close = document.getElementById('close');btn.onclick = function() { box.style.display = 'block'; bg.style.display = 'block';}close.onclick = function(){ box.style.display = 'none'; bg.style.display = 'none';} }</script>
問題解答
回答1:因?yàn)閐isplay是狀態(tài)屬性,也就是說,它的改變會(huì)導(dǎo)致從一個(gè)狀態(tài)直接跳到另外一個(gè)狀態(tài),所以不存在漸變動(dòng)畫。如果需要隱藏,建議使用opacity來做。opacity是控制透明度的屬性,當(dāng)透明度為0時(shí),元素就不可見了。
另外,提醒一下,你的#box樣式里寫了兩次display屬性。
回答2:你如果要用transition不妨不用display:none換成height:0或者width:0,從高度或?qū)挾壬蟻黼[藏
回答3:你想要的是關(guān)閉聊天對(duì)話框的窗口動(dòng)畫效果?合并關(guān)閉或者右側(cè)淡出,用框架吧,容易實(shí)現(xiàn)
