zoukankan      html  css  js  c++  java
  • CSS 文字覆盖图像悬停效果

    文字覆盖悬停效果:

    transtion 属性可以被指定为一个或是多个CSS属性的过渡效果,多个属性之间用逗号进行分隔。

    每个单属性转换都描述了应该用于单个属性的转换(或特殊值 all 和 none)包括:

    1、0或1个值,表示转换适用的属性,包括以下几种情况:

    • 关键字none
    • 关键字all
    • 命名CSS属性的 custom-ident(用户自定义的字符串标识符)

    2、0或1个过渡的速度曲线值表示要使用的过渡函数

    3、0 、1或2个time 时间值。

    • 可以解析为时间的第一个值被分配为 transtion-duration(过渡动画所需要的时间)
    • 可以解析为时间的第二个值被分配给 transtion-delay(过渡动画开始前的所需的时间,延迟时间)

    当鼠标悬停图片上,文字就会上浮到图片上。

    HTML 部分

    <p>鼠标移动到图片上查看效果</p>
    
     <div class='container'>
         <img src="11.jpg" alt="spring" class='image'>
         <div class='overlay'>
             <div class='text'>Hello World</div>
         </div>
     </div>

    一、文字覆盖图像悬停效果(淡出效果)

    CSS代码

    在实现淡出效果的时候,遮盖元素相对定位于图像在其正上方,并且与父元素同等大小。

    设置透明度为0完全透明,当鼠标移动到图像上,透明度变为 0.7,遮盖元素就会显示出来。

    .container{
                position:relative;
                /* 容器盒子相对定位 */
                width:50%
            }
            .image{
                display:block;
                /* 将图片转换为块元素 */
                width:100%;
                height:auto;
                /* 元素高度设置为auto,保持图片原有纵横比 */
            }
            .overlay{ 
                /* 遮盖元素 */
                position:absolute; 
                top:0;
                bottom:0;
                left:0;
                right:0;
                /* 相对父元素,距离上下左右都是0,相对定位在父元素之上 */
                height:100%;
                width:100%;
                /* 宽高100%,和父元素同等大小 */
                opacity:0;
                /* 透明度 */
                transition:1s ease;
                background-color:#2e8e9a;
            }
            .container:hover .overlay{
                opacity:.7;
                /* 透明度 0.7 */
            }
    
            .text{
                position:absolute;
                top:50%;
                left:50%;
                transform:translate(-50%,-50%);
                /* 绝对定位设置偏移量,将元素居中定位 */
                color:white;
                font-size:20px;
                font-weight:bold;
                font-size:30px;
                /* 文字样式 */
            }

    二、文字覆盖图片悬停效果(从上到下)

    CSS代码

     .container{
                position:relative;
                width:50%;
            }
            .image{
                display:block;
                width:100%;
                height:auto;
                /* 将图片设置为块元素,保持图片的纵横比 */
            }
            .overlay{
                position:absolute;
                bottom:100%;
                left:0;
                right:0;
                background-color:#2e8e9a;
                overflow:hidden;
                width:100%;
                height:0;
                /* opacity:0.6; */
                transition: .5s ease;
                /* 相对于container定位,距离父元素底面100%,在元素上面,不显示 
                过渡使得位移有着时间过渡,而不是突然出现*/
            }
            .container:hover .overlay{
                bottom:0;
                height:100%;
                opacity:0.7;
                /* 鼠标悬浮在元素上时,距离定位底面相距0,高度相对父元素为100%,
                bottom为0 ,所以定位在上面的元素才会改变
                (这些样式的实现,由一个过渡缓冲 transition)
                最终透明度达到 0.7*/
            }
            .text{
                white-space:nowrap;
                color:white;
                font-size:30px;
                position:absolute;
                overflow:hidden;
                top:50%;
                left:50%;
                transform:translate(-50%,-50%);
                font-weight:bold;
                /* 设置覆盖文字的样式:无折行、字体白色加粗30px、绝对定位设置偏移量 */
            }

     

    三、文字覆盖图像悬停效果(从右向左)

    CSS代码

    .container{
                position: relative;
                width: 50vw;
            }
            .image{
                display: block;
                width: 100%;
                height: auto;
            }
            .overlay{
                position:absolute;
                bottom:0;
                left:100%;
                top:0;
                background-color:#2e8e9a;
                overflow:hidden;
                height:100%;
                width:0;
                transition:.5s ease;
            }
            .container:hover .overlay{
                left:0;
                width:100%;
                opacity:0.7;
            }
            .text{
                white-space:nowrap;
                color:white;
                font-size:30px;
                position:absolute;
                overflow: hidden;
                top:50%;
                left:50%;
                transform:translate(-50%,-50%);
                font-weight: bold;
            }

    四、文字覆盖图像悬停效果(淡入透明)

    HTML代码

    <h3>淡入透明</h3>
    <p>鼠标移动到图片上查看效果</p>
        <div class='container'>
            <img src="11.jpg" alt="spring" class='image'>
            <div class='overlay'></div>
                <div class='text'>Hello World</div>
        </div>

    CSS代码

    .container{
                position:relative;
                width:50%;
            }
            .image{
                display:block;
                width:100%;
                height:auto;
                opacity:1;
                transition:.5s ease;
                backface-visibility:hidden;
                /* 背面隐藏 */
            }
            .overlay{
                transform:.5s ease;
                opacity:0;
                position:absolute;
                top:50%;
                left:50%;
                transform:translate(-50%,-50%);
            }
            .container:hover .image{
                opacity:0.2;
            }
            .container:hover .overlay{
                opacity:1;
            }
            .text{
                white-space:nowrap;
                opacity:0.5;
                background-color:#2e8e9a;
                color:white;
                font-size:30px;
                padding:20px;
                text-align:center;
                vertical-align: middle;
            }


    参考资料:

    https://www.runoob.com/css/css-examples.html

  • 相关阅读:
    Head First设计模式(观察者模式Observer)
    Head First设计模式(装饰者模式)
    Head First设计模式
    Head First设计模式 单件模式 独一无二的对象
    .NET 设计规范.NET约定、惯用法与模式8.使用规范
    .NET 设计规范.NET约定、惯用法与模式附录:C#编程风格约定
    设计模式 一 引言
    .NET 设计规范.NET约定、惯用法与模式7.异常
    Head First设计模式 工厂模式 烘烤OO的精华
    前端IDE中Emmet插件快捷输入HTML代码
  • 原文地址:https://www.cnblogs.com/nyw1983/p/12397352.html
Copyright © 2011-2022 走看看