zoukankan      html  css  js  c++  java
  • 前端特效: 使用CSS生成的闪光照相机效果

    使用纯CSS生成的照相机效果, 相关CSS代码如下:

     

    .container {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
      border-radius: 5px;
      box-shadow: 0px 30px 50px -20px rgba(0, 0, 0, 0.7);
      -webkit-animation: 5s angle infinite;
              animation: 5s angle infinite;
    }
    .camera-top,
    .camera-mid,
    .camera-bottom {
       360px;
    }
    .camera-top {
      height: 60px;
      background: -webkit-linear-gradient(left, #e2e2e2 0%, #f5f5f5 10%, #f5f5f5 90%, #e2e2e2 100%);
      background: linear-gradient(to right, #e2e2e2 0%, #f5f5f5 10%, #f5f5f5 90%, #e2e2e2 100%);
      border: 1px solid #DCDCDC;
      border-top-left-radius: 5px;
    }
    .camera-top:before {
      display: block;
      content: '';
      position: absolute;
      top: -20px;
      right: 0;
       210px;
      height: 20px;
      background: -webkit-linear-gradient(left, #f5f5f5 0%, #f5f5f5 174px, #e2e2e2 100%);
      background: linear-gradient(to right, #f5f5f5 0%, #f5f5f5 174px, #e2e2e2 100%);
      border: 1px solid #DCDCDC;
      border-top-left-radius: 5px;
      border-top-right-radius: 5px;
      border-bottom: none;
      box-shadow: inset 0 15px 15px -15px #FDFDFD;
    }
    .camera-top .zoom {
      position: absolute;
      top: -15px;
      left: 30px;
       42px;
      height: 9px;
      background: -webkit-linear-gradient(left, #b0b0b0 0%, #e2e2e2 30%, #e2e2e2 50%, #e2e2e2 70%, #b0b0b0 100%);
      background: linear-gradient(to right, #b0b0b0 0%, #e2e2e2 30%, #e2e2e2 50%, #e2e2e2 70%, #b0b0b0 100%);
      border: 1px solid #A3A3A3;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      box-shadow: inset 0 15px 15px -15px #FDFDFD;
    }
    .camera-top .zoom:before {
      display: block;
      content: '';
      position: relative;
      top: -6px;
      left: 50%;
      -webkit-transform: translateX(-50%);
              transform: translateX(-50%);
       20px;
      height: 4px;
      background: -webkit-linear-gradient(left, #b0b0b0 0%, #e2e2e2 50%, #b0b0b0 100%);
      background: linear-gradient(to right, #b0b0b0 0%, #e2e2e2 50%, #b0b0b0 100%);
      border: 1px solid #A3A3A3;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
    }
    .camera-top .zoom:after {
      display: block;
      content: '';
      position: relative;
      top: 3px;
      left: 50%;
      -webkit-transform: translateX(-50%);
              transform: translateX(-50%);
       46px;
      height: 4px;
      background: -webkit-linear-gradient(left, #b0b0b0 0%, #e2e2e2 30%, #e2e2e2 50%, #e2e2e2 70%, #b0b0b0 100%);
      background: linear-gradient(to right, #b0b0b0 0%, #e2e2e2 30%, #e2e2e2 50%, #e2e2e2 70%, #b0b0b0 100%);
      border: 1px solid #A3A3A3;
      border-bottom: none;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
    }
    .camera-top .mode-changer {
      position: absolute;
      top: -20px;
      left: 82px;
       60px;
      height: 16px;
      background: -webkit-linear-gradient(left, #b0b0b0 0%, #e2e2e2 30%, #e2e2e2 50%, #e2e2e2 70%, #b0b0b0 100%);
      background: linear-gradient(to right, #b0b0b0 0%, #e2e2e2 30%, #e2e2e2 50%, #e2e2e2 70%, #b0b0b0 100%);
      border: 1px solid #A3A3A3;
      border-radius: 3px;
      box-shadow: inset 0 15px 15px -15px #FDFDFD;
    }
    .camera-top .mode-changer:after {
      display: block;
      content: '';
      position: absolute;
      top: 16px;
      left: 50%;
      -webkit-transform: translateX(-50%);
              transform: translateX(-50%);
       50px;
      height: 2px;
      background: -webkit-linear-gradient(left, #b0b0b0 0%, #e2e2e2 30%, #e2e2e2 50%, #e2e2e2 70%, #b0b0b0 100%);
      background: linear-gradient(to right, #b0b0b0 0%, #e2e2e2 30%, #e2e2e2 50%, #e2e2e2 70%, #b0b0b0 100%);
      border: 1px solid #A3A3A3;
      border-bottom: none;
    }
    .camera-top .sides {
       100%;
    }
    .camera-top .sides:before,
    .camera-top .sides:after {
      display: block;
      content: '';
      position: absolute;
      top: 24px;
       8px;
      height: 30px;
      background: -webkit-linear-gradient(top, #828181 0%, #696767 10%, #4f4d4d 50%, #403e3f 100%);
      background: linear-gradient(to bottom, #828181 0%, #696767 10%, #4f4d4d 50%, #403e3f 100%);
      border: 1px solid #3E3C3D;
      border-radius: 2px;
      box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.5);
    }
    .camera-top .sides:before {
      left: -4px;
      border-top-left-radius: 3px;
      border-bottom-left-radius: 3px;
    }
    .camera-top .sides:after {
      right: -4px;
      border-top-right-radius: 3px;
      border-bottom-right-radius: 3px;
    }
    .camera-top .range-finder {
      position: absolute;
      top: 10px;
      left: 105px;
       30px;
      height: 20px;
      background: #3E3C3D;
      border-radius: 3px;
      box-shadow: inset 0 0 5px 3px #333132;
    }
    .camera-top .range-finder:before {
      display: block;
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
       12px;
      height: 12px;
      background: #797878;
      border-radius: 100%;
    }
    .camera-top .focus {
      position: absolute;
      top: -14px;
      left: 156px;
       15px;
      height: 15px;
      background: #3F3D3E;
      border-radius: 100%;
      box-shadow: inset 0 0 4px 3px #2D2B2B, inset 0 4px 5px 0 #F5F5F5, inset 0 -3px 4px -2px #A3A2A2;
    }
    .camera-top .red {
      position: absolute;
      top: 5px;
      left: 165px;
       30px;
      height: 30px;
      background: #DC2839;
      border-radius: 100%;
    }
    .camera-top .view-finder {
      position: absolute;
      left: 210px;
       48px;
      height: 30px;
      background: -webkit-radial-gradient(center ellipse, #828181 0%, #403e3f 85%, #403e3f 100%);
      background: radial-gradient(ellipse at center, #828181 0%, #403e3f 85%, #403e3f 100%);
      border: 3px solid #312F2F;
      border-radius: 4px;
      box-shadow: inset 0 8px 8px -8px #FDFDFD;
    }
    .camera-top .flash {
      position: absolute;
      top: -6px;
      right: 20px;
       58px;
      height: 46px;
      background: -webkit-radial-gradient(center ellipse, #828181 0%, #403e3f 70%, #403e3f 100%);
      background: radial-gradient(ellipse at center, #828181 0%, #403e3f 70%, #403e3f 100%);
      border: 2px solid #312F2F;
      border-radius: 3px;
      box-shadow: inset 0 8px 8px -8px #FDFDFD;
    }
    .camera-top .flash:before,
    .camera-top .flash:after {
      display: block;
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
    }
    .camera-top .flash:before {
       90%;
      height: 70%;
      background: -webkit-radial-gradient(center ellipse, #696767 0%, #1e1e1e 50%, #1e1e1e 100%);
      background: radial-gradient(ellipse at center, #696767 0%, #1e1e1e 50%, #1e1e1e 100%);
    }
    .camera-top .flash:after {
       16px;
      height: 14px;
      background: #797979;
      border-top-left-radius: 8px 2px;
      border-top-right-radius: 8px 2px;
      border-bottom-left-radius: 8px 2px;
      border-bottom-right-radius: 8px 2px;
    }
    .camera-top .flash .light {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
       20px;
      height: 20px;
      background: -webkit-radial-gradient(center ellipse, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
      background: radial-gradient(ellipse at center, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
      border-radius: 100%;
      z-index: 2;
      -webkit-animation: 1s flash infinite;
              animation: 1s flash infinite;
    }
    .camera-mid {
      position: relative;
      height: 130px;
      background: -webkit-linear-gradient(left, #e4e4e4 0%, #fafafa 10%, #fafafa 90%, #e4e4e4 100%);
      background: linear-gradient(to right, #e4e4e4 0%, #fafafa 10%, #fafafa 90%, #e4e4e4 100%);
      border: 1px solid #DCDCDC;
      border-top: none;
      border-bottom: none;
      box-shadow: inset 0 15px 15px -15px #FDFDFD;
    }
    .camera-mid .sensor {
      position: absolute;
      top: 40px;
      left: 105px;
       30px;
      height: 30px;
      background: #545252;
      border: 2px solid #545252;
      border-radius: 100%;
      box-shadow: inset 0 12px 12px -10px #FDFDFD, 0 2px 5px 1px rgba(0, 0, 0, 0.3);
    }
    .camera-mid .sensor:before,
    .camera-mid .sensor:after {
      display: block;
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
    }
    .camera-mid .sensor:before {
       20px;
      height: 20px;
      background: -webkit-linear-gradient(top, #E9E9E9 0%, #BDBDBD 100%);
      background: linear-gradient(to bottom, #E9E9E9 0%, #BDBDBD 100%);
      border-radius: 100%;
    }
    .camera-mid .sensor:after {
       12px;
      height: 12px;
      background: #FAFAFA;
      border-radius: 100%;
      box-shadow: 0 2px 3px 0 #747474;
    }
    .camera-mid .lens {
      position: absolute;
      top: -20px;
      left: 130px;
       155px;
      height: 155px;
      background: -webkit-radial-gradient(center ellipse, #000000 0%, #000000 15%, #272525 30%, #403e3f 30%, #403e3f 31%, #403e3f 40%, #e9ebec 41%, #e9ebec 44%, #b0b1b2 48%, #e8e9ea 50%, #e8e9ea 60%, #f7f8f8 60%, #787979 65%, #ffffff 66%, #ffffff 100%);
      background: radial-gradient(ellipse at center, #000000 0%, #000000 15%, #272525 30%, #403e3f 30%, #403e3f 31%, #403e3f 40%, #e9ebec 41%, #e9ebec 44%, #b0b1b2 48%, #e8e9ea 50%, #e8e9ea 60%, #f7f8f8 60%, #787979 65%, #ffffff 66%, #ffffff 100%);
      border: 1px solid #B6B7B8;
      border-radius: 100%;
      box-sizing: border-box;
      box-shadow: 0 7px 15px -2px rgba(0, 0, 0, 0.4), inset 0 -2px 15px -2px rgba(0, 0, 0, 0.2), inset 0 7px 15px -2px #FFF;
    }
    .camera-mid .lens:before {
      display: block;
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
       25px;
      height: 25px;
      background: rgba(0, 0, 0, 0.7);
      border-radius: 100%;
      box-shadow: inset 0 5px 3px -2px rgba(255, 255, 255, 0.5), inset 0 -5px 20px -8px rgba(255, 255, 255, 0.5);
    }
    .camera-bottom {
      height: 16px;
      background: -webkit-linear-gradient(left, #e2e2e2 0%, #f5f5f5 10%, #f5f5f5 90%, #e2e2e2 100%);
      background: linear-gradient(to right, #e2e2e2 0%, #f5f5f5 10%, #f5f5f5 90%, #e2e2e2 100%);
      border: 1px solid #DCDCDC;
      border-bottom: none;
      border-bottom-left-radius: 5px;
      border-bottom-right-radius: 5px;
      box-shadow: inset 0 15px 15px -15px #FDFDFD, inset 0 -12px 12px -10px #797979;
    }
    @-webkit-keyframes flash {
      0% {
         0;
        height: 0;
      }
      20% {
         200px;
        height: 200px;
      }
      25% {
         0;
        height: 0;
      }
      45% {
         200px;
        height: 200px;
      }
      50% {
         0;
        height: 0;
      }
      100% {
         0;
        height: 0;
      }
    }
    @keyframes flash {
      0% {
         0;
        height: 0;
      }
      20% {
         200px;
        height: 200px;
      }
      25% {
         0;
        height: 0;
      }
      45% {
         200px;
        height: 200px;
      }
      50% {
         0;
        height: 0;
      }
      100% {
         0;
        height: 0;
      }
    }
    @-webkit-keyframes angle {
      0% {
        -webkit-transform: translate(-50%, -50%) rotate(0deg);
                transform: translate(-50%, -50%) rotate(0deg);
        box-shadow: 0px 30px 50px -20px rgba(0, 0, 0, 0.7);
      }
      25% {
        -webkit-transform: translate(-50%, -50%) rotate(2deg);
                transform: translate(-50%, -50%) rotate(2deg);
        box-shadow: 10px 30px 50px -20px rgba(0, 0, 0, 0.7);
      }
      75% {
        -webkit-transform: translate(-50%, -50%) rotate(-2deg);
                transform: translate(-50%, -50%) rotate(-2deg);
        box-shadow: -10px 30px 50px -20px rgba(0, 0, 0, 0.7);
      }
      100% {
        -webkit-transform: translate(-50%, -50%) rotate(0deg);
                transform: translate(-50%, -50%) rotate(0deg);
        box-shadow: 0px 30px 50px -20px rgba(0, 0, 0, 0.7);
      }
    }
    @keyframes angle {
      0% {
        -webkit-transform: translate(-50%, -50%) rotate(0deg);
                transform: translate(-50%, -50%) rotate(0deg);
        box-shadow: 0px 30px 50px -20px rgba(0, 0, 0, 0.7);
      }
      25% {
        -webkit-transform: translate(-50%, -50%) rotate(2deg);
                transform: translate(-50%, -50%) rotate(2deg);
        box-shadow: 10px 30px 50px -20px rgba(0, 0, 0, 0.7);
      }
      75% {
        -webkit-transform: translate(-50%, -50%) rotate(-2deg);
                transform: translate(-50%, -50%) rotate(-2deg);
        box-shadow: -10px 30px 50px -20px rgba(0, 0, 0, 0.7);
      }
      100% {
        -webkit-transform: translate(-50%, -50%) rotate(0deg);
                transform: translate(-50%, -50%) rotate(0deg);
        box-shadow: 0px 30px 50px -20px rgba(0, 0, 0, 0.7);
      }
    }
    
     
    在线预览:  http://igeekbar.com/igclass/code/af644b88-36ea-4987-ac87-19dbef222f34.htm
  • 相关阅读:
    javascript中闭包
    bootstrap模版
    JS中DOM操作
    css重置样式
    API--未完待续
    JavaScript 的面向对象
    「 JavaScript 篇 」
    CSS篇
    淘宝前端的一些面试题
    BOM里的window命令; cookie的用法
  • 原文地址:https://www.cnblogs.com/gbin1/p/7522181.html
Copyright © 2011-2022 走看看