欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

css3 加 hover 实现网页遮罩从下至上渐变拉伸效果

程序员文章站 2022-07-12 13:42:43
...

                             css3 加 hover 实现网页遮罩从下至上渐变拉伸效果

这种效果在很多稍微炫酷的网站都会用到,开始自己也一直琢磨怎么写,去了W3C上面看了一下有一个css3过渡效果,没错,文档就是它了http://www.w3school.com.cn/tiy/t.asp?f=css3_transition1,但是一直感觉到很苦恼,它的效果是从上至下,一直无法改变过来。搞了差不多2个小时就为了一直研究这个东西,但是最终还是弄出来了。

首先看一下效果图,不知道csdn怎么一直不出添加短视频的编辑,渐变效果是这样的,图片说明:

css3 加 hover 实现网页遮罩从下至上渐变拉伸效果

 

css3 加 hover 实现网页遮罩从下至上渐变拉伸效果

 

css3 加 hover 实现网页遮罩从下至上渐变拉伸效果

 

css3 加 hover 实现网页遮罩从下至上渐变拉伸效果

 

 那么下面我们就给出html + css 的实现效果

一、html(VUE写法,不懂可以咨询, imageUrl为你本地图片路径,我的就是‘assets/images/home/kaili.jpg’),.背景为一张图片,图片上部分是.pictureTemp白色div,下面部分是.pictureDesc 阴影div和字体描述,通过控制高度加上css3过渡即可以实现这个效果,是不是很简单,但是第一次弄还是有点难受。

<div class="pictureContent">
        <div class="pictureContentLeft">
          <div class="pictureImageWrapper">
            <div class="pictureImage" :style="{backgroundImage:`url(${imageUrl})`}">
              <div class="pictureTemp"></div>
              <div class="pictureDesc">
                <p>郎德苗寨</p>
              </div>
            </div>
          </div>
        </div>
      </div>

二、css3加hover实现效果

<style lang="stylus" scoped>
   .pictureContent {
    background-color white
    padding 15px 15px
    display flex
    width 1170px
    height 350px
    margin 0 auto
    .pictureContentLeft {
      margin-right 10px
      width 50%
      .pictureImageWrapper {
        cursor pointer
        width 580px
        height 350px
        overflow hidden
        .pictureImage {
          width 580px
          height 350px
          background-repeat: no-repeat;
          background-size: cover;
          background-position 50% 50%
          .pictureDesc {
            width 100%
            height 50px
            background: rgba(0, 0, 0, 0.5);
            transition all 0.2s linear
            p {
              color white
              padding-left 5px
              line-height 50px
              display: -webkit-box;
              -webkit-box-orient: vertical;
              -webkit-line-clamp: 1;
              overflow: hidden;
            }
          }
          .pictureTemp {
            transition all 0.2s linear
            width 100%
            height 300px
          }
        }
      }
      .pictureImageWrapper:hover {
        text-align center
        .pictureTemp {
          height 0px
        }
        .pictureDesc {
          height 350px
          p {
            line-height 350px
          }
        }
      }
    }
  }
</style>

transition all 0.2s linear 就是我们的动画效果,hover就是改变我们的高度,两者结合效果即可实现,关于transition的用法可以查看文档文章开头给出的链接

css3 加 hover 实现网页遮罩从下至上渐变拉伸效果

到此结束