过渡的加载状态

过渡的加载状态

1 例如以下例子,如果我使用的是内部样式来书写css,那么,网页打开的时候,默认就能显示出加载后的状态,如果使用外部样式,那么,可以看到变形的全过程。现在我想使用外部样式,但是我不想看到变形的全过程,以下代码要如何修改。

2 还有个问题,之前的课程学习到,内部样式的加载方式是html和css同时加载,但是实际上,是先加载css样式,然后加载html,给元素添加了过渡属性就很明白了。老师之前的课上讲解的有些问题。


代码如下,我把css和html分开来写,使用外部样式,但是我想实现的效果是打开网页,就是已经加载好的状态,而不需要出现过渡,当鼠标触碰的时候,发生相对应的效果


<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

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

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

    <title>过渡案例【5】</title>

    <link rel="stylesheet" href="06_过渡案例【5】.css">

</head>

<body>

    <section>

        <div class="small-box">

            <div></div>

            <div></div>

            <div></div>

            <div></div>

            <div></div>

            <div></div>

        </div>

        <div class="big-box">

            <div></div>

            <div></div>

            <div></div>

            <div></div>

            <div></div>

            <div></div>

        </div>

    </section>

</body>

</html>


---------------------------------------------------------------------------------------------'


*{

    padding:0;

    margin:0;

}

section{

    width:1000px;

    height:1000px;

    position:absolute;

    top:0;

    left:0;

    right:0;

    bottom:0;

    margin:auto;

}

section div.small-box{

    width:300px;

    height:300px;

    position:absolute;

    top:0;

    left:0;

    right:0;

    bottom:0;

    margin:auto;

    perspective: 500;

    transform-style:preserve-3d;

    transform: rotateX(45degrotateY(45deg);

    transition:transform 5s linear 0s;

}

section div.small-box div{

    width:300px;

    height:300px;

    position:absolute;

    top:0;

    left:0;


}

section .small-box div:nth-child(1){

    background:rgba(25500,.5);

    transform:translateY(-150pxrotateX(90deg);

}

section .small-box div:nth-child(2){

    background:rgba(2551650,.5);

    transform:translateY(150pxrotateX(-90deg);

}

section .small-box div:nth-child(3){

    background:rgba(2552550,.5);

    transform:translateX(150pxrotateY(90deg);

}

section .small-box div:nth-child(4){

    background:rgba(01280,.5);

    transform:translateX(-150pxrotateY(-90deg);

}

section .small-box div:nth-child(5){

    background:rgba(0255255,.5);

    transform:translateZ(150px);

}

section .small-box div:nth-child(6){

    background:rgba(00255,.5);

    transform:translateZ(-150px);

}


section div.big-box{

    width:600px;

    height:600px;

    position:absolute;

    top:0;

    left:0;

    right:0;

    bottom:0;

    margin:auto;

    perspective: 500;

    transform-style:preserve-3d;

    transform: rotateX(45degrotateY(45deg);

}


section div.big-box div{

    width:600px;

    height:600px;

    position:absolute;

    top:0;

    left:0;

    transition:transform 5s linear 0s;

}

section .big-box div:nth-child(1){

    background:rgba(25500,.5);

    transform:translateY(-300pxrotateX(90deg);

}

section .big-box div:nth-child(2){

    background:rgba(2551650,.5);

    transform:translateY(300pxrotateX(-90deg);

}

section .big-box div:nth-child(3){

    background:rgba(2552550,.5);

    transform:translateX(300pxrotateY(90deg);

}

section .big-box div:nth-child(4){

    background:rgba(01280,.5);

    transform:translateX(-300pxrotateY(-90deg);

}

section .big-box div:nth-child(5){

    background:rgba(0255255,.5);

    transform:translateZ(300px);

}

section .big-box div:nth-child(6){

    background:rgba(00255,.5);

    transform:translateZ(-300px);

}


section:hover .big-box div:nth-child(1){

    transform:translateY(-600pxrotateX(90deg);

}

section:hover .big-box div:nth-child(2){

    background:rgba(2551650,.5);

    transform:translateY(600pxrotateX(-90deg);

}

section:hover .big-box div:nth-child(3){

    background:rgba(2552550,.5);

    transform:translateX(600pxrotateY(90deg);

}

section:hover .big-box div:nth-child(4){

    background:rgba(01280,.5);

    transform:translateX(-600pxrotateY(-90deg);

}

section:hover .big-box div:nth-child(5){

    background:rgba(0255255,.5);

    transform:translateZ(600px);

}

section:hover .big-box div:nth-child(6){

    background:rgba(00255,.5);

    transform:translateZ(-600px);

}

section:hover .small-box{

    transform:rotateX(315degrotateY(315deg);

}



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕久久 2021-05-28 15:45:08

同学你好,css引入方式简单总结如下:

1、行内式:

样式写在html标签的style属性内,样式与html文件混在一起。

2、内嵌式:

写在head标签的<style></style>,位于html文件中。

3、外部样式:

写在head标签内,使用link标签引入

以上三种方式,正常情况下,css代码与html代码会一起加载,但是结构与样式什么时候渲染到页面、如何渲染,可能有区别。比如同学的代码中,涉及了transition这种复杂的内容后,内嵌式与外部样式在不同浏览器上,展示出来的效果不一样。由于目前没有官方的说明,所以老师无法确定的告诉同学,这三种方式中html与css的加载顺序是什么样的,也建议同学不要过于关注顺序问题,就正常的写代码,遇到了问题,在具体问题具体分析。

4、导入式:

使用@import引入样式,渲染html结构时,不会等待css文件加载,会出现html结构已经展示了,但是却没有样式的情况。

祝学习愉快!

好帮手慕久久 2021-05-28 11:09:46

同学你好,解答如下:

1、老师测试了同学的代码发现,使用外部样式时,谷歌浏览器页面打开后,能看到元素的过渡过程,但是火狐浏览器没有过渡过程,火狐效果如下:

http://img1.sycdn.imooc.com//climg/60b05c690a5553ae15570886.jpg

所以怀疑是浏览器的渲染机制不同(或者渲染机制改变了)造成的。

知道这个现象就行了,不用深究。

2、老师找了一下之前的课程,没找到如下话术:

http://img1.sycdn.imooc.com//climg/60b05cf109140cdf07750099.jpg

如果同学知道在哪,可以告诉老师一下,老师再审核一下视频。如果忘记了在哪也没事,老师多花时间找找。

3、使用外部样式加载后,之所以能看到动画,主要是因为transition属性造成的,建议将该属性利用js添加到元素上(结构和初始样式都加载完成后,再添加上transition属性):

http://img1.sycdn.imooc.com//climg/60b05da409f3cb1906830472.jpg

http://img1.sycdn.imooc.com//climg/60b05dac094c9b4007890271.jpg

http://img1.sycdn.imooc.com//climg/60b05e7809c5d65a09010434.jpg

js​代码如下:

 <script>

    var el1 = document.getElementById("test1")

    var el2 = document.querySelectorAll(".big-box div")

    el1.style.transition = " transform 5s linear 0s"

    for (var i = 0; i < el2.length; i++) {

      el2[i].style.transition = " transform 5s linear 0s"

    }

  </script>

js的内容,后面会学,同学先了解一下即可。

祝学习愉快!

  • 提问者 怒焰狂暴 #1
    是在前端0基础课程里的ppt,之前买的教程,现在下架了
    2021-05-28 11:16:53
  • 好帮手慕久久 回复 提问者 怒焰狂暴 #2

    同学你好,之前问同学,是因为没有在当前这版新课中找到,只是怀疑是旧课中的内容,听同学这样说,就确定知道是哪里了。个人觉得,之前的课程可能并没有错,因为当时的浏览器可能就是那样解析的。但是拿到现在,可能就不太对了,因为浏览器也会变,而我们没法确定各个浏览器是怎么变的。因此了解一下即可,不用深究。

    祝学习愉快!

    2021-05-28 12:05:55
  • 提问者 怒焰狂暴 #3

    老师,能不能重新帮我总结下css中几种不同的加载方式,导入式,内部样式,行内样式,外部样式,我弄个表格记录下

    2021-05-28 12:06:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师