怎么用css做一个动态风车,鼠标悬停还会加速

html-css037

怎么用css做一个动态风车,鼠标悬停还会加速,第1张

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>动态风车</title>

    <style>

        body {

    background: purple

    overflow: hidden

}

* {

    margin: 0

    padding: 0

}

ul {

    position: relative

    width: 100px

    height: 100px

    top: 100px

    left: 50%

    margin-left: -50px

    transform-style: preserve-3d

    animation: sport 15s linear 0s infinite normal

}

ul:hover {

    animation: sport 1.5s linear 0s infinite normal

}

@keyframes sport {

    form {

        transform: rotateZ(0deg)

    }

    to {

        transform: rotateZ(360deg)

    }

}

ul li {

    position: absolute

    top: 0

    left: 0

    border: 50px solid transparent

    list-style: none

}

li.li_1st {

    border-bottom: 50px solid #5697FD

    transform: translateY(-70px) rotateZ(45deg)

}

li.a {

    border: 35px solid transparent

    border-bottom: 35px solid #5687E7

    transform: translate(50px,-20px) rotateZ(90deg)

}

li.li_2nd {

    border-bottom: 50px solid #A1BD76

    transform: translateX(70px) rotateZ(135deg)

}

li.b {

    border: 35px solid transparent

    border-bottom: 35px solid #3AA37A

    transform: translate(50px,50px) rotateZ(180deg)

}

li.li_3th {

    border-bottom: 50px solid #FFB12C

    transform: translateY(70px) rotateZ(225deg)

}

li.c {

    border: 50px solid transparent

    border-bottom: 50px solid #FFCD34

    transform: translate(0px,0px) rotateZ(45deg)

    z-index: 1

}

li.li_4th {

    border-bottom: 50px solid #EF7A64

    transform: translateX(-70px) rotateZ(315deg)

}

li.d {

    border: 35px solid transparent

    border-bottom: 35px solid #C1523E

    transform: translate(-20px,-20px) rotateZ(0deg)

}

div.e {

    position: relative

    width: 10px

    height: 200px

    background-color: gray

    top: 50px

    left: 257px

    z-index: -1

}

    </style>

</head>

<body>

    <div class="box">

        <ul>

            <li class="li_1st"></li>

            <li class="a"></li>

            <li class="li_2nd"></li>

            <li class="b"></li>

            <li class="li_3th"></li>

            <li class="c"></li>

            <li class="li_4th"></li>

            <li class="d"></li>

        </ul>

        <div class="e"></div>

    </div>

</body>

</html>

您好,您的问题实现起来并不复杂。我说一下思路吧。

1)按钮问题:例如小灯,你要准备两套图片,一套灰色的灯代表关闭,另一套黄色的灯代表打开。当点击小灯后,利用JS代码把灰灯图片替换成黄灯图片。OFF和ON按钮处理方法相同。当然,要先点击ON后小灯才能被点亮,这与现实生活中的风扇一样,OFF时小灯是不能被点亮的。

2)风扇旋转问题:CSS3有新功能:object.style.transform="rotate(10deg)" ,表示将这个元素旋转10度。要让风扇转起来,你要做两件事:1是准备一张风扇的图片;2当按下ON按钮后启动定时器SetInterva,每隔一定时间就用上述旋转命令转动风扇图片。时间越短转得越快。当选择不同的速度时,修改不同的的定时器定时参数。比如1档时间为100毫秒(旋转最快),2档200毫秒,3档300毫秒(旋转最慢)。具体数值要看最终效果而定。

希望有用。