美文网首页视觉艺术
html中如何让图片翻转

html中如何让图片翻转

作者: 生信云笔记 | 来源:发表于2020-07-28 20:00 被阅读0次

    前言

      上个帖子《html如何给图片添加动态的文字说明》分享了如何给图片添加动态的文字说明,今天想给大家分享一下,如何给图片添加翻面的文字说明效果。也就是实现鼠标移入图片时,图片会反转过来,背面显示文字说明的效果。实现这个效果主要会用到transform属性和transition属性,因为上一个帖子说过transition了,那么现在主要来说一下transform有哪些可以设置的选项:

    描述
    none 定义不进行转换。
    matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
    matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。
    translate(x,y) 定义 2D 转换。
    translate3d(x,y,z) 定义 3D 转换。
    translateX(x) 定义转换,只是用 X 轴的值。
    translateY(y) 定义转换,只是用 Y 轴的值。
    translateZ(z) 定义 3D 转换,只是用 Z 轴的值。
    scale(x,y) 定义 2D 缩放转换。
    scale3d(x,y,z) 定义 3D 缩放转换。
    scaleX(x) 通过设置 X 轴的值来定义缩放转换。
    scaleY(y) 通过设置 Y 轴的值来定义缩放转换。
    scaleZ(z) 通过设置 Z 轴的值来定义 3D 缩放转换。
    rotate(angle) 定义 2D 旋转,在参数中规定角度。
    rotate3d(x,y,z,angle) 定义 3D 旋转。
    rotateX(angle) 定义沿着 X 轴的 3D 旋转。
    rotateY(angle) 定义沿着 Y 轴的 3D 旋转。
    rotateZ(angle) 定义沿着 Z 轴的 3D 旋转。
    skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换。
    skewX(angle) 定义沿着 X 轴的 2D 倾斜转换。
    skewY(angle) 定义沿着 Y 轴的 2D 倾斜转换。
    perspective(n) 为 3D 转换元素定义透视视图。

    从上面表格可以看出transform可以设置的效果很多,rotate(旋转)、skew(扭曲)、scale(缩放)和translate(移动),这四种效果应该是最常见的效果,这里我使用的是rotateY(旋转)效果,即沿着Y轴水平翻转,里面数字是反转的角度,数字的正负代表旋转方向(类似顺时针旋转、逆时针旋转)。具体代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style type="text/css">
            .box{
                width:200px;
                height:300px;           
                border:3px solid #000;
                margin:50px auto 0;
                position:relative;
            }
            .box img{
                position:absolute;
                left:0px;
                top:0;
                transform:perspective(800px) rotateY(0deg);
                transition:all 500ms ease;
                backface-visibility:hidden;
            }       
            .box:hover img{
                transform:rotateY(180deg);
            }
            .box .back{
                width:200px;
                height:300px;
                background-color:pink;
                position:absolute;
                left:0px;
                top:0;
                font-size:15px;
                text-align:center;
                line-height:100px;
                transform:rotateY(-180deg);
                transition:all 500ms ease;
                backface-visibility:hidden;
            }
            .box:hover .back{
                transform:rotateY(0deg);
            }
        </style>
    </head>
    <body>
        <div class="box">       
            <img src="images/banner01.jpg" alt="背景图">
            <div class="back">
                <p>新鲜的柠檬 5元/kg <br>好吃不贵,还不赶快行动!</p>
            </div>
        </div>
    </body>
    </html>
    

      解释一下代码的实现过程,首先是在页面中创建了一个块div元素("box",长宽与图片大小一直),然后这个块元素中添加了需要展示的图片和另一个块元素(“back”,这个块元素是当图片翻转过后需要显示的内容)。需要分别给图片和背面的块元素设定rotateY属性,由于二者方向不同所以值一正一负,同时设置backface-visibility:hidden——背面不可见。最后,分别给图片和背面的块元素添加一个“hover”鼠标移入属性,并设定rotateY需要旋转的角度值。这样鼠标移入时图片就会翻转显示后面的文字说明。这个简单的功能就实现了,是不是觉得效果还不错!

    最后

     emm,今天就分享到这里,赶快用起来吧!!!各位看官们帮忙点个赞哦!!!

    相关文章

      网友评论

        本文标题:html中如何让图片翻转

        本文链接:https://www.haomeiwen.com/subject/srmwlktx.html