自适应屏幕宽度及文字动画效果

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <meta http-equiv="X-UA-Compatible" content="IE=edge">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Document</title>

</head>

<body>

<div class="container">

  <div class="box">

    <div class="imgBx">

      <img src="./imgs/01.jpg">

    </div>

    <div class="content">

      <h2>Title</h2>

      <p>将元素剪裁成一个多边形,这里其实就是描点,多点连线,最少三个点,以距离左上角的长度为单位,跟canvas画布很像,下面以三角形为例</p>

      <a href="#">Read More</a>

    </div>

  </div>

  <div class="box">

    <div class="imgBx">

      <img src="./imgs/02.jpg">

    </div>

    <div class="content">

      <h2>Title</h2>

      <p>将元素剪裁成一个多边形,这里其实就是描点,多点连线,最少三个点,以距离左上角的长度为单位,跟canvas画布很像,下面以三角形为例</p>

      <a href="#">Read More</a>

    </div>

  </div>

  <div class="box">

    <div class="imgBx">

      <img src="./imgs/03.jpg">

    </div>

    <div class="content">

      <h2>Title</h2>

      <p>将元素剪裁成一个多边形,这里其实就是描点,多点连线,最少三个点,以距离左上角的长度为单位,跟canvas画布很像,下面以三角形为例</p>

      <a href="#">Read More</a>

    </div>

  </div>

  <div class="box">

    <div class="imgBx">

      <img src="./imgs/04.jpg">

    </div>

    <div class="content">

      <h2>Title</h2>

      <p>将元素剪裁成一个多边形,这里其实就是描点,多点连线,最少三个点,以距离左上角的长度为单位,跟canvas画布很像,下面以三角形为例</p>

      <a href="#">Read More</a>

    </div>

  </div>

</div>

</body>

<style>

  body {

    margin: 0;

    padding: 0;

    min-height: 100vh;

    display: flex;

    justify-content: center;

    align-items: center;

    font-family: consolas;

  }

  .container {

    position: relative;

    width: 1200px;

    display: flex;

    flex-wrap: wrap;

    justify-content: space-around;

  }

  .container .box {

    position: relative;

    width: 280px;

    height: 400px;

    margin: 20px 0;

    box-sizing: border-box;

    overflow: hidden;

  }

  .container .box .imgBx {

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background: #000;

    clip-path: circle(400px at center 100px);

    transition: 0.5s;

    transition-delay: 0.5s;

  }

  .container .box:hover .imgBx {

    clip-path: circle(80px at center 100px);

    transition-delay: 0s;

  }

  .container .box:hover .imgBx img {

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    object-fit: cover;

  }

  .container .box .content {

    position: absolute;

    left: 0;

    bottom: 0;

    width: 100%;

    height: 60%;

    padding: 20px;

    box-sizing: border-box;

    text-align: center;

  }

  .container .box .content h2 {

    margin: 0;

    padding: 0;

  }

  .container .box .content a {

    text-decoration: none;

    background: #000;

    color: #fff;

    padding: 5px;

    display: inline-block;

  }

  .container .box .content h2,

  .container .box .content p,

  .container .box .content a {

    opacity: 0;

    transition: 0.5s;

    transform: translateY(20px);

  }

  .container .box:hover .content h2 {

    opacity: 1;

    transform: translateY(0);

    transition-delay: 0.5s;

  }

  .container .box:hover .content p {

    opacity: 1;

    transform: translateY(0);

    transition-delay: 0.7s;

  }

  .container .box:hover .content a {

    opacity: 1;

    transform: translateY(0);

    transition-delay: 0.9s;

  }

</style>

</html>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容