css3過渡效果的那些坑

坑一:

下面這段代碼:

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta charset="UTF-8">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <meta http-equiv="X-UA-Compatible" content="ie=edge">

? ? <title>Document</title>

</head>

<style>

? ? *{

? ? ? ? margin: 0;

? ? ? ? padding: 0;

? ? }

? ? html{

? ? ? ? height: 100%;

? ? }

? ? body{

? ? ? ? width: 60%;

? ? ? ? height: 60%;

? ? ? ? border: 1px solid;

? ? ? ? margin: 100px auto;

? ? }

? ? .test{

? ? ? ? width: 100px;

? ? ? ? height: 100px;

? ? ? ? background-color: pink;

? ? ? ? margin: 200px auto;

? ? ? ? transition-property: width;

? ? ? ? transition-timing-function: linear;

? ? ? ? transition-duration: 2s;

? ? }

? ? body:hover .test{

? ? ? ? width: 300px;

? ? ? ? height: 200px;

? ? ? ? background-color: orange;

? ? ? ? transition-property: height;

? ? }?

</style>

<body>?

? ? ? ? <div class="test">

? ? ? ? </div>

</body>

</html>

先執(zhí)行transition-property: height;這個效果,后執(zhí)行? transition-property: width;




坑二:

下面這段代碼:

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta charset="UTF-8">

? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">

? ? <meta http-equiv="X-UA-Compatible" content="ie=edge">

? ? <title>Document</title>

</head>

<style>

? ? *{

? ? ? ? margin: 0;

? ? ? ? padding: 0;

? ? }

? ? html{

? ? ? ? height: 100%;

? ? }

? ? body{

? ? ? ? width: 60%;

? ? ? ? height: 60%;

? ? ? ? border: 1px solid;

? ? ? ? margin: 100px auto;

? ? }

? ? .test{

? ? ? ? width: 100px;

? ? ? ? height: 100px;

? ? ? ? background-color: pink;

? ? ? ? margin: 200px auto;

? ? ? ? transition-property: width;

? ? ? ? transition-timing-function: linear;

? ? ? ? transition-duration: 2s;

? ? }

</style>

<body>?

? ? ? ? <div class="test">

? ? ? ? </div>

? ? ? ? <script>? ? ? ? ?

? ? ? ? ? ? var test = document.querySelector(".test");

? ? ? ? ? ? test.style.width = "300px";? ? ?

? ? ? ? </script>

</body>

</html>


這段代碼不執(zhí)行動畫過渡效果,主要原因是transition在元素首次渲染頁面沒有結(jié)束情況下,是不會被觸發(fā)的。

想要觸發(fā)只需要將javascript那段代碼改成:

window.onload = function(){

? ? ? ? ? ? var test = document.querySelector(".test");

? ? ? ? ? ? test.style.width = "300px";

? ? ? ? }? ?

添加一段window.onload即可,window.onload代表頁面加載完成執(zhí)行。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容