zoukankan      html  css  js  c++  java
  • 一种简单的CSS翻牌效果实现方式

    css翻牌效果在一些活动页面使用的还是比较多的,目前网上大部分的方案都是使用 backface-visibility 等复杂且兼容性差的方案,本文介绍一种非常简单的方案。以扑克牌的翻转为例,如果事先准备好下面的两张图片

    实现图片的翻转很简单,沿Y轴翻转180度的同时更换背景图片即可

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Static Template</title>
        <style>
          #card {
             470px;
            height: 640px;
            transition: 0.5s ease-in-out;
            /* 扑克牌背面 */
            background-image: url("front.png");
            background-size: cover;
          }
          #card.card-flip {
            transform: rotateY(180deg);
            /* 扑克牌正面 */
            background-image: url("back.png");
          }
        </style>
      </head>
      <body>
        <div id="card"></div>
        <script>
          const card = document.querySelector("#card");
          card.addEventListener("click", function () {
            this.classList.toggle("card-flip");
          });
        </script>
      </body>
    </html>
    

    但是直接翻转180度,数字面呈现的是牌7沿Y轴的镜像,如下图所示
    2021-02-21_22-48-21 -1-

    解决这个问题有个简单的方案,我们准备图片的时候直接准备镜像后的图片,这样翻转后就能正常展示了

    其实还有一种更简单的css处理方式,使用scaleX(-1) 同样能实现沿Y轴的镜像。

    transform: rotateY(180deg) scaleX(-1);
    

    效果如下
    https://codesandbox.io/s/ecstatic-sanne-7w14c?file=/index.html
    2021-02-20_10-57-48 -1-

    另外,如果图片加载速度慢,建议做预加载。

  • 相关阅读:
    BZOJ2111: [ZJOI2010]Perm 排列计数
    BZOJ1951: [Sdoi2010]古代猪文
    组合数取模
    BZOJ2226: [Spoj 5971] LCMSum
    BZOJ2820: YY的GCD
    数据结构讲题选做
    解题:HAOI 2015 按位或
    解题:SHOI 2006 有色图
    解题:洛谷 4986 逃离
    解题:HNOI 2013 Cards
  • 原文地址:https://www.cnblogs.com/star91/p/yi-zhong-jian-dan-decss-fan-pai-xiao-guo-shi-xian.html
Copyright © 2011-2022 走看看