• 技术文章 >web前端 >css教程

    CSS3制作的鼠标悬停时边框旋转

    高洛峰高洛峰2017-02-24 13:32:00原创789
    本文给大家分享一段css3代码实现鼠标悬停时边框旋转的效果,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友参考下

    下面以2017年新年祝福语为例给大家展示下效果。

    纯CSS3实现的鼠标悬停时边框旋转的效果:

    鼠标悬停时边框旋转动画

    实现代码如下,代码中注释已经比较详细,就不再多说了:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            body {
                width: 40rem;
                height: 30rem;
                font-size: 62.50%;   /* 把body的字体设置为10px以方便使用rem时的计算 */
            }
            .container {
                width: 100%;
                height: 100%;
                background: #0f0;
                text-align: center;
            }
            /* 设置content元素的属性 */
            /* 此元素的宽和高必须相等,即设置border-radius: 50%;后应该是一个圆 */
            /* 使用rem相对于body的字体尺寸设置了宽和高 */
            .content {
                display: inline-block;
                margin-top: 5rem;
                width: 20rem;
                height: 20rem;
                border: solid 15px rgba(255, 255, 255, 1);  /* 此处设置边框,使用rgba的方式是为了后面隐藏时方便,只需要设置a的值为0即可隐藏 */
                border-radius: 50%;
                box-sizing: border-box;                     /* 使用此属性防止边框撑开盒子,border-box会让边框占用盒子里面的空间 */
                transition: all 2s;                          /* 该元素的所有属性的变化会在2s内完成 */
            }
            /* 使用伪类before设置需要转动的边框 */
            /* 因为如果元素边框转动,内容也会跟着转动 */
            /* 此处要的效果是只有边框转动而内容不转动 */
            .content:before {
                display: inline-block;
                width: 100%;
                height: 100%;
                border-radius: 50%;
                box-sizing: border-box;
                content: '';
            }
            /* 设置鼠标悬停在content元素上时content属性的变化 */
            .content:hover {
                /*border: solid 15px rgba(255, 255, 255, 0);*/
            }
            /* 设置鼠标悬停在content上时content的before伪类属性的变化 */
            .content:hover:before {
                border: dashed 30px #fff;
                animation: whirl 9s linear infinite;  /* 执行动画whirl,执行一次的周期是9s,执行期间的速度曲线为linear,无限循环 */
            }
            /* 设置文本内容显示的样式 */
            .con-text {
                margin: -60% auto;
                width: 80%;
                font-size: 3rem;
                /* 以下三个属性为了让文字超出宽度时显示省略号,必须同时使用才有效果 */
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
            }
            /* 动画whirl,从0度旋转到360度 */
            @keyframes whirl {
                from {
                    transform: rotate(0deg);
                }
                to {
                    transform: rotate(360deg);
                }
            }
        </style>
    </head>
    <body>
        <section class="container">
            <p class="content" title="新年好新年好新年好">
                <p class="con-text">新年好新年好新年好</p>
            </p>
        </section>
    </body>
    </html>

    以上所述是小编给大家介绍的纯CSS3制作的鼠标悬停时边框旋转,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    更多CSS3制作的鼠标悬停时边框旋转相关文章请关注PHP中文网!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:css属性box-sizing 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 实例详解CSS渐变锯齿问题如何解决!• 带你吃透Flex布局的三个属性:flex-grow、flex-shrink、flex-basis• 另辟蹊径!看看使用CSS滤镜怎么构建圆角和波浪效果• 聊聊怎么利用 CSS 构建花式透视背景• 详解css中的比较函数(示例介绍)
    1/1

    PHP中文网