Kosten  | 
 Четверг, 25 Апреля 2019, 04:06 | Сообщение 1 | 
 
 
 
 | 
Вы ищете лучшие анимационные эффекты кнопок css3, чтобы заменить старые кнопки современными плоскими конструкциями и 3d кнопками. Вы попали в нужное место, так как в настоящее время я составляю список кнопок CSS для ежедневного использования сайта, которые достаточно хороши для использования в реальных веб-проектах.
  Хорошая коллекция красивых кнопок CSS3 с анимационными эффектами, созданными с помощью веб-дизайнера, позволяет легко находить более креативные идеи для кнопок веб-дизайна. Все, что вы можете придумать для кнопок, то здесь мы представили несколько лучших эффектов наведения кнопок css3, которые сделают ваш дизайн красивым.
  1. Кнопка Ripple Effect
  HTML
 
 Код <div class="container">     <a data-animation="ripple">Click <span style="font-weight: bold;">Me</span></a> </div> 
  CSS
 
 Код .container {     position: absolute;     top: 0;     left: 0;     right: 0;     bottom: 0;     height: 50px;     width: 200px;     margin: auto; } *[data-animation="ripple"] {     height: 100%;     width: 100%;     display: block;     outline: none;     padding: 20px;     color: #fff;     text-transform: uppercase;     background: linear-gradient(135deg, #e570e7 0%,#79f1fc 100%);     box-sizing: border-box;     text-align: center;     line-height: 14px;     font-family: roboto, helvetica;     font-weight: 200;     letter-spacing: 1px;     text-decoration: none;     box-shadow: 0 5px 3px rgba(0, 0, 0, 0.3);     cursor: pointer;   /*border-radius: 50px;*/     -webkit-tap-highlight-color: transparent;     border-radius: 5px; }
  *[data-animation="ripple"]:focus {     outline: none; }
  *[data-animation="ripple"]::selection {     background: transparent;     pointer-events: none; } 
  JQUERY
 
 Код window["tmripple"] = /******/ (function(modules) { // webpackBootstrap /******/    // The module cache /******/    var installedModules = {}; /******/ /******/    // The require function /******/    function __webpack_require__(moduleId) { /******/ /******/        // Check if module is in cache /******/        if(installedModules[moduleId]) { /******/            return installedModules[moduleId].exports; /******/        } /******/        // Create a new module (and put it into the cache) /******/        var module = installedModules[moduleId] = { /******/            i: moduleId, /******/            l: false, /******/            exports: {} /******/        }; /******/ /******/        // Execute the module function /******/        modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/        // Flag the module as loaded /******/        module.l = true; /******/ /******/        // Return the exports of the module /******/        return module.exports; /******/    } /******/ /******/ /******/    // expose the modules object (__webpack_modules__) /******/    __webpack_require__.m = modules; /******/ /******/    // expose the module cache /******/    __webpack_require__.c = installedModules; /******/ /******/    // define getter function for harmony exports /******/    __webpack_require__.d = function(exports, name, getter) { /******/        if(!__webpack_require__.o(exports, name)) { /******/            Object.defineProperty(exports, name, { /******/                configurable: false, /******/                enumerable: true, /******/                get: getter /******/            }); /******/        } /******/    }; /******/ /******/    // getDefaultExport function for compatibility with non-harmony modules /******/    __webpack_require__.n = function(module) { /******/        var getter = module && module.__esModule ? /******/            function getDefault() { return module['default']; } : /******/            function getModuleExports() { return module; }; /******/        __webpack_require__.d(getter, 'a', getter); /******/        return getter; /******/    }; /******/ /******/    // Object.prototype.hasOwnProperty.call /******/    __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/    // __webpack_public_path__ /******/    __webpack_require__.p = ""; /******/ /******/    // Load entry module and return exports /******/    return __webpack_require__(__webpack_require__.s = 0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) {
  "use strict";
  // Default Settings var settings = {     area: "",     color: "rgba(255, 255, 255, 0.4)",     offsetEl: null,     eventListener: "click",     mouseMove: false };
  /** * @description Where the magic happens * @param {object} e * @param {string} rippleColor * @param {string} eventListener */ function ripple(e, rippleColor, eventListener) {     var clickedEl = e.currentTarget;     var PageX = eventListener.match(/touch/) ? e.changedTouches[0].pageX : e.clientX;     var PageY = eventListener.match(/touch/) ? e.changedTouches[0].pageY : e.clientY;     var btnWidth = clickedEl.clientWidth;     var el = clickedEl.getBoundingClientRect();     var rippleOffset = settings.offsetEl ? settings.offsetEl.clientHeight : 0;     var btnOffsetTop = el.top + rippleOffset;     var btnOffsetLeft = el.left;     var posMouseX = PageX;     var posMouseY = PageY + rippleOffset;     var rippleX = posMouseX - btnOffsetLeft;     var rippleY = posMouseY - btnOffsetTop;
      var baseCSS = "\n          position: absolute;\n          width: " + btnWidth * 2 + "px;\n          height: " + btnWidth * 2 + "px;\n          border-radius: 50%;\n          transition: transform 700ms, opacity 700ms;\n          transition-timing-function: cubic-bezier(0.250, 0.460, 0.450, 0.940);\n          background: " + rippleColor + ";\n          background-position: center;\n          background-repeat: no-repeat;\n          background-size: 100%;\n          left: " + (rippleX - btnWidth) + "px;\n          top: " + (rippleY - btnWidth) + "px;\n          transform: scale(0);\n          pointer-events: none;\n      ";
      // Prepare the dom     var rippleEffect = document.createElement("span");     rippleEffect.style.cssText = baseCSS;
      // Add some css for prevent overflow errors     clickedEl.style.overflow = "hidden";
      // Check if the element is not static because the ripple is in absolute     if (window.getComputedStyle(clickedEl).position === "static") {         clickedEl.style.position = "relative";     }
      // Check for the mousemove event     if (settings.mouseMove) {         settings.mouseMove = false;         return;     }
      clickedEl.appendChild(rippleEffect);
      // start animation     requestAnimationFrame(function () {         rippleEffect.style.cssText = baseCSS + " transform: scale(1); opacity: 0;";     });
      setTimeout(function () {         rippleEffect.remove();     }, 700); }
  /** * @description Prevent ripple when scrolling (Mobile Only) * @param {string} eventListener */ function onDrag(eventListener) {     if (eventListener === "touchend") {         document.getElementsByTagName("body")[0].addEventListener("touchmove", function () {             settings.mouseMove = true;         });     } }
  function attachRipple(els, rippleColor, eventListener) {     for (var i = 0; i < els.length; i += 1) {         var currentBtn = els[i];         currentBtn.addEventListener(eventListener, function (e) {             return ripple(e, rippleColor, eventListener);         });     } }
  function attachRippleToAttribute(area, rippleColor, eventListener) {     var attributeEl = document.querySelectorAll(area + " [data-animation='ripple']");
      if (attributeEl.length > 0) {         attachRipple(attributeEl, rippleColor, eventListener);     } else {         throw new Error('not found any element with data-animation="ripple"');     } }
  function attachRippleToSelectors(selectors, rippleColor, eventListener) {     if (selectors) {         var selectorsEl = document.querySelectorAll(selectors);     } else {         throw new Error("You have to enter at least 1 selector");     }
      if (selectorsEl.length > 0) {         attachRipple(selectorsEl, rippleColor, eventListener);     } else {         console.warn("No element found with this selector: ", selectors);     } }
  module.exports = {     init: function init() {         var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
          try {             var area = settings.area,                 color = settings.color,                 offsetEl = settings.offsetEl,                 eventListener = settings.eventListener;
              area = data.area || area;             color = data.color || color;             offsetEl = data.offsetEl ? this.setOffsetEl(data.offsetEl) : offsetEl;             eventListener = data.eventListener || eventListener;
              onDrag(eventListener);             attachRippleToAttribute(area, color, eventListener);         } catch (e) {             console.warn(e.message);         }     },     attachToSelectors: function attachToSelectors() {         var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
          try {             var elSetting = {                 color: data.color || settings.color,                 eventListener: data.eventListener || settings.eventListener             };             var color = elSetting.color,                 eventListener = elSetting.eventListener;
              attachRippleToSelectors(data.selectors, color, eventListener);         } catch (e) {             console.warn(e.message);         }     },     setOffsetEl: function setOffsetEl(el) {         settings.offsetEl = document.querySelector(el);     },
      ripple: ripple };
  /***/ }) /******/ ]);
  tmripple.init() 
  Демонстрация
 
  See the Pen  Button Ripple Effect by Димон Разведос (@razvedocs) on CodePen.
 
 
 
  2. Эффекты наведения кнопок
  HTML
 
 Код <section class="buttons">   <div class="container">     <div >       <img src="https://4.bp.blogspot.com/-7OHSFmygfYQ/VtLSb1xe8kI/AAAAAAAABjI/FxaRp5xW2JQ/s320/logo.png" style="width: 100px;margin-bottom:15px">       <h1 class="heading">Button Hover Effects</h1>     </div>     <a class="btnfos btnfos-1">       <svg>         <rect x="0" y="0" fill="none" width="100%" height="100%"/>       </svg>      Hover     </a>     <a class="btnfos btnfos-2">Hover</a>     <!--End of Button 2 -->          <a class="btnfos btnfos-3">Hover</a>     <!--End of Button 3 -->          <a class="btnfos btnfos-4"><span>Hover</span></a>     <!--End of Button 4 -->          <a class="btnfos btnfos-5">Hover</a>     <!--End of Button 5 -->   </div>    </section> 
  CSS
 
 Код @import url(https://fonts.googleapis.com/css?family=Roboto:400,100,900); * {   -moz-box-sizing: inherit;        box-sizing: inherit;   -webkit-transition-property: all;           transition-property: all;   -webkit-transition-duration: .6s;           transition-duration: .6s;   -webkit-transition-timing-function: ease;           transition-timing-function: ease; }
  html, body {   -moz-box-sizing: border-box;        box-sizing: border-box;   height: 100%;   width: 100%; }
  body {   background: #3498db;   font-family: 'Roboto', sans-serif;   font-weight: 400; }
  .buttons {   display: table;   height: 100%;   width: 100%; }
  .container {   display: table-cell;   padding: 1em;   text-align: center;   vertical-align: middle; }
  h1.heading {   color: #fff;   font-size: 1.25em;   font-weight: 900;   margin: 0 0 0.5em; } @media (min-width: 450px) {   h1.heading {     font-size: 1.75em;   } } @media (min-width: 760px) {   h1.heading {     font-size: 3.25em;   } } @media (min-width: 900px) {   h1.heading {     font-size: 4.25em;     margin: 0 0 0.5em;   } }
  .btnfos {   color: #fff;   cursor: pointer;   display: block;   font-size: 16px;   font-weight: 400;   line-height: 45px;   max-width: 160px;   margin: 0 auto 2em;   position: relative;   text-transform: uppercase;   vertical-align: middle;   width: 100%; } @media (min-width: 400px) {   .btnfos {     display: inline-block;     margin-right: 2.5em;   }   .btnfos:nth-of-type(even) {     margin-right: 0;   } } @media (min-width: 600px) {   .btnfos:nth-of-type(even) {     margin-right: 2.5em;   }   .btnfos:nth-of-type(5) {     margin-right: 0;   } }
  .btnfos-1 {   background: #3498db;   font-weight: 100; } .btnfos-1 svg {   position: absolute;   left: 0;   top: 0;   width: 100%;   height: 45px; } .btnfos-1 rect {   fill: none;   stroke: #fff;   stroke-width: 1;   stroke-dasharray: 422, 0; }
  .btnfos-1:hover {   background: rgba(225, 51, 45, 0);   letter-spacing: 1px;   font-weight: 900; } .btnfos-1:hover rect {   stroke-width: 5;   stroke-dasharray: 15, 310;   stroke-dashoffset: 48;   -webkit-transition: all 1.35s cubic-bezier(0.19, 1, 0.22, 1);           transition: all 1.35s cubic-bezier(0.19, 1, 0.22, 1); }
  .btnfos-2 {   letter-spacing: 0; }
  .btnfos-2:hover, .btnfos-2:active {   letter-spacing: 5px; }
  .btnfos-2:after, .btnfos-2:before {   -webkit-backface-visibility: hidden;           backface-visibility: hidden;   border: 1px solid rgba(255, 255, 255, 0);   bottom: 0px;   content: " ";   display: block;   margin: 0 auto;   position: relative;   -webkit-transition: all 280ms ease-in-out;           transition: all 280ms ease-in-out;   width: 0; }
  .btnfos-2:hover:after, .btnfos-2:hover:before {   -webkit-backface-visibility: hidden;           backface-visibility: hidden;   border-color: #fff;   -webkit-transition: width 350ms ease-in-out;           transition: width 350ms ease-in-out;   width: 70%; }
  .btnfos-2:hover:before {   bottom: auto;   top: 0;   width: 70%; }
  .btnfos-3 {   background: #3498db;   border: 1px solid white;   box-shadow: 0px 2px 0 white, 2px 4px 6px #eee;   font-weight: 900;   letter-spacing: 1px;   -webkit-transition: all 150ms linear;           transition: all 150ms linear; }
  .btnfos-3:hover {   background: #3498db;   border: 1px solid rgba(0, 0, 0, 0.05);   box-shadow: 1px 1px 2px rgba(255, 255, 255, 0.2);   color: #74e6e0;   text-decoration: none;   text-shadow: -1px -1px 0 #136a65;   -webkit-transition: all 250ms linear;           transition: all 250ms linear; }
  .btnfos-4 {   border: 1px solid;   overflow: hidden;   position: relative; } .btnfos-4 span {   z-index: 20; } .btnfos-4:after {   background: #fff;   content: "";   height: 155px;   left: -75px;   opacity: .2;   position: absolute;   top: -50px;   width: 50px;   -webkit-transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);           transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);   -webkit-transform: rotate(35deg);       -ms-transform: rotate(35deg);           transform: rotate(35deg);   z-index: -10; }
  .btnfos-4:hover:after {   left: 120%;   -webkit-transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);           transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1); }
  .btnfos-5 {   border: 0 solid;   box-shadow: inset 0 0 20px rgba(255, 255, 255, 0);   outline: 1px solid;   outline-color: rgba(255, 255, 255, 0);   outline-offset: 0px;   text-shadow: none;   -webkit-transition: all 1250ms cubic-bezier(0.19, 1, 0.22, 1);           transition: all 1250ms cubic-bezier(0.19, 1, 0.22, 1);   outline-color: rgba(255, 255, 255, 0.5);   outline-offset: 0px; }
  .btnfos-5:hover {   border: 1px solid;   box-shadow: inset 0 0 20px rgba(255, 255, 255, 0.5), 0 0 20px rgba(255, 255, 255, 0.2);   outline-offset: 15px;   outline-color: rgba(255, 255, 255, 0);   text-shadow: 1px 1px 2px #427388; } 
  Демонстрация
 
  See the Pen  Эффекты наведения кнопок by Димон Разведос (@razvedocs) on CodePen.
 
 
 
  3. Кнопка Hover Эффекты   HTML
 
 Код <div class="container">   <button class="btn-1">Button 1</button>   <button class="btn-2">Button 2</button>   <button class="btn-3">Button 3</button>   <button class="btn-4">Button 4</button>   <button class="btn-5">Button 5</button> </div> 
  CSS  
 Код body {   background: #2ecc71;   font-size: 62.5%; }
  .container {   padding: 2em; }
  /* GENERAL BUTTON STYLING */ button, button::after {   -webkit-transition: all 0.3s;     -moz-transition: all 0.3s;   -o-transition: all 0.3s;     transition: all 0.3s; }
  button {   background: none;   border: 3px solid #fff;   border-radius: 5px;   color: #fff;   display: block;   font-size: 1.6em;   font-weight: bold;   margin: 1em auto;   padding: 2em 6em;   position: relative;   text-transform: uppercase; }
  button::before, button::after {   background: #fff;   content: '';   position: absolute;   z-index: -1; }
  button:hover {   color: #2ecc71; }
  /* BUTTON 1 */ .btn-1::after {   height: 0;   left: 0;   top: 0;   width: 100%; }
  .btn-1:hover:after {   height: 100%; }
  /* BUTTON 2 */ .btn-2::after {   height: 100%;   left: 0;   top: 0;   width: 0; }
  .btn-2:hover:after {   width: 100%; }
  /* BUTTON 3 */ .btn-3::after {   height: 0;   left: 50%;   top: 50%;   width: 0; }
  .btn-3:hover:after {   height: 100%;   left: 0;   top: 0;   width: 100%; }
  /* BUTTON 4 */ .btn-4::before {   height: 100%;   left: 0;   top: 0;   width: 100%; }
  .btn-4::after {   background: #2ecc71;   height: 100%;   left: 0;   top: 0;   width: 100%; }
  .btn-4:hover:after {   height: 0;   left: 50%;   top: 50%;   width: 0; }
  /* BUTTON 5 */ .btn-5 {   overflow: hidden; }
  .btn-5::after {   /*background-color: #f00;*/   height: 100%;   left: -35%;   top: 0;   transform: skew(50deg);   transition-duration: 0.6s;   transform-origin: top left;   width: 0; }
  .btn-5:hover:after {   height: 100%;   width: 135%; } 
  Демонстрация
 
   See the Pen   Эффекты наведения кнопок by Димон Разведос (@razvedocs)  on CodePen.
 
 
 
  4. Переходные кнопки
  HTML
 
 Код     <div class="wrap">     <a href="#" class="button">Hover Me!</a>     <a href="#" class="button2">Awesome Button</a>     </div>
   CSS  
 Код body {     background-image: url(http://p1.pichost.me/i/11/1344899.jpg);     background-size: cover;     background-repeat: no-repeat;    font-family: Arial, sans-serif;     font-weight: bold;     font-size: 14px; }
  .wrap {     position: absolute;     top: 50%;     left: 50%;     margin-top: -86px;     margin-left: -89px;     text-align: center; }
  a {     -webkit-transition: all 200ms cubic-bezier(0.390, 0.500, 0.150, 1.360);     -moz-transition: all 200ms cubic-bezier(0.390, 0.500, 0.150, 1.360);     -ms-transition: all 200ms cubic-bezier(0.390, 0.500, 0.150, 1.360);     -o-transition: all 200ms cubic-bezier(0.390, 0.500, 0.150, 1.360);     transition: all 200ms cubic-bezier(0.390, 0.500, 0.150, 1.360);     display: block;     margin: 20px auto;     max-width: 180px;     text-decoration: none;     border-radius: 4px;     padding: 20px 30px; }
  a.button {     color: rgba(30, 22, 54, 0.6);     box-shadow: rgba(30, 22, 54, 0.4) 0 0px 0px 2px inset; }
  a.button:hover {     color: rgba(255, 255, 255, 0.85);     box-shadow: rgba(30, 22, 54, 0.7) 0 0px 0px 40px inset; }
  a.button2 {     color: rgba(30, 22, 54, 0.6);     box-shadow: rgba(30, 22, 54, 0.4) 0 0px 0px 2px inset; }
  a.button2:hover {     color: rgba(255, 255, 255, 0.85);     box-shadow: rgba(30, 22, 54, 0.7) 0 80px 0px 2px inset; } 
  Демонстрация
 
   See the Pen   Переходные кнопки by Димон Разведос (@razvedocs)  on CodePen.
 
 
 
  5. Коробка / Пуговицы
  HTML
 
 Код <span class="title">Basic Box Hover</span> <div class="basicBox">   Hover   <svg width="130" height="65" viewBox="0 0 130 65" xmlns="http://www.w3.org/2000/svg">     <rect x='0' y='0' fill='none' width='130' height='65'/>   </svg> </div>
  <span class="title">Swiggle Box Hover</span> <div class="swiggleBox">   Hover   <svg width="130" height="65" viewBox="0 0 130 65" xmlns="http://www.w3.org/2000/svg">     <path d="M0.6,0.5c0,5.4,0,61.5,0,61.5s4.5,5.4,9.9,0c5.4-5.4,9.9,0,9.9,0s4.5,5.4,9.9,0c5.4-5.4,9.9,0,9.9,0     s4.5,5.4,9.9,0c5.4-5.4,9.9,0,9.9,0s4.5,5.4,9.9,0c5.4-5.4,9.9,0,9.9,0s4.5,5.4,9.9,0c5.4-5.4,9.9,0,9.9,0s4.5,5.4,9.9,0     c5.4-5.4,9.9,0,9.9,0s4.5,5.4,9.9,0c0,0,0-56.1,0-61.5H0.6z"/>   </svg> </div>
  <span class="title">Check Box Hover</span> <div class="checkBox">   Hover   <svg width="140" height="65" viewBox="0 0 140 65" xmlns="http://www.w3.org/2000/svg">     <rect x="10" class="button" width="128.8" height="63.9"/>     <rect x="0" y="22.5" class="box" width="20" height="20"/>     <polyline class="checkMark" points="4.5,32.6 8.7,36.8 16.5,29.1"/>   </svg> </div>
  <!-- Signature --> <div class="madeByContainer">   <span>Made By With</span>   <div class="heart"></div>   <span>Andrew Wierzba</span> </div> 
  CSS
 
 Код @import url(https://fonts.googleapis.com/css?family=Open+Sans);
  *, *::before, *::after {   box-sizing: border-box; }
  body {   background: #FDFDFD;   margin: 25px 0; }
  span.title {   margin: 0 auto;   color: #BBB;   font-family: 'Open Sans', sans-serif;   font-size: 0.85rem;   text-align: center;   display: block; }
  .basicBox, .swiggleBox, .checkBox {   width: 130px;   height: 65px;   margin: 15px auto;   color: #4274D3;   font-family: 'Open Sans', sans-serif;   font-size: 1.15rem;   line-height: 65px;   text-transform: uppercase;   text-align: center;   position: relative;   cursor: pointer; }
  svg {   position: absolute;   top: 0;   left: 0; } svg rect, svg path, svg polyline {   fill: none;   stroke: #4274D3;   stroke-width: 1; }
  .basicBox:hover svg rect, .swiggleBox:hover svg path, .checkBox:hover svg polyline {   stroke: #4274D3; }
  /* Basic Box */ svg rect {   stroke-dasharray: 400, 0;   -webkit-transition: all 0.8s ease-in-out;   -moz-transition: all 0.8s ease-in-out;   -ms-transition: all 0.8s ease-in-out;   -o-transition: all 0.8s ease-in-out; } .basicBox:hover svg rect {   stroke-width: 3;   stroke-dasharray: 35, 245;   stroke-dashoffset: 38;   -webkit-transition: all 0.8s ease-in-out;   -moz-transition: all 0.8s ease-in-out;   -ms-transition: all 0.8s ease-in-out;   -o-transition: all 0.8s ease-in-out; }
  /* Swiggle Box */ svg path {   stroke-dasharray: 265, 0;   -webkit-transition: all 1s ease-in-out;   -moz-transition: all 1s ease-in-out;   -ms-transition: all 1s ease-in-out;   -o-transition: all 1s ease-in-out; } .swiggleBox:hover svg path {   stroke-width: 3;   stroke-dasharray: 0, 350;   stroke-dashoffset: 20;   -webkit-transition: all 1s ease-in-out;   -moz-transition: all 1s ease-in-out;   -ms-transition: all 1s ease-in-out;   -o-transition: all 1s ease-in-out; }
  /* Check Box */ .checkBox {   /* Add Padding Left To Center Text */ } .checkBox svg {   /* Presentation Purposes */   margin-left: -10px; } .checkBox svg rect, .checkBox svg polyline {   fill: none;   stroke: #4274D3;   stroke-width: 1;   -webkit-transition: all 0.8s ease-in-out;   -moz-transition: all 0.8s ease-in-out;   -ms-transition: all 0.8s ease-in-out;   -o-transition: all 0.8s ease-in-out; } .checkBox:hover svg rect {   stroke-width: 2;   -webkit-transition: all 0.8s ease-in-out;   -moz-transition: all 0.8s ease-in-out;   -ms-transition: all 0.8s ease-in-out;   -o-transition: all 0.8s ease-in-out; } .checkBox:hover svg polyline {   stroke-width: 2;   -webkit-transition: all 0.8s ease-in-out;   -moz-transition: all 0.8s ease-in-out;   -ms-transition: all 0.8s ease-in-out;   -o-transition: all 0.8s ease-in-out; } .checkBox svg .button {   stroke-dasharray: 400px, 0; } .checkBox:hover svg .button {   stroke-dasharray: 0, 400px;   stroke-dashoffset: 33px; } /* Check Mark Effect */ .box, .checkMark {   opacity: 0; } .checkBox:hover .box {   -webkit-animation: boxDisplay 0.2s forwards;   -moz-animation: boxDisplay 0.2s forwards;   -ms-animation: boxDisplay 0.2s forwards;   -o-animation: boxDisplay 0.2s forwards;   animation: boxDisplay 0.2s forwards;   -webkit-animation-delay: 0.65s;   -moz-animation-delay: 0.65s;   -ms-animation-delay: 0.65s;   -o-animation-delay: 0.65s;   animation-delay: 0.65s; } .checkBox:hover .checkMark {   -webkit-animation: checkDisplay 0.2s forwards;   -moz-animation: checkDisplay 0.2s forwards;   -ms-animation: checkDisplay 0.2s forwards;   -o-animation: checkDisplay 0.2s forwards;   animation: checkDisplay 0.2s forwards;   -webkit-animation-delay: 1s;   -moz-animation-delay: 1s;   -ms-animation-delay: 1s;   -o-animation-delay: 1s;   animation-delay: 1s; } /* Check Box Display */ @-webkit-keyframes boxDisplay {   0% { opacity: 0; }   100% { opacity: 1; } } @-moz-keyframes boxDisplay {   0% { opacity: 0; }   100% { opacity: 1; } } @-ms-keyframes boxDisplay {   0% { opacity: 0; }   100% { opacity: 1; } } @-o-keyframes boxDisplay {   0% { opacity: 0; }   100% { opacity: 1; } } @keyframes boxDisplay {   0% { opacity: 0; }   100% { opacity: 1; } } /* Check Mark Display */ @-webkit-keyframes checkDisplay {   0% { opacity: 0; }   100% { opacity: 1; } } @-moz-keyframes checkDisplay {   0% { opacity: 0; }   100% { opacity: 1; } } @-ms-keyframes checkDisplay {   0% { opacity: 0; }   100% { opacity: 1; } } @-o-keyframes checkDisplay {   0% { opacity: 0; }   100% { opacity: 1; } } @keyframes checkDisplay {   0% { opacity: 0; }   100% { opacity: 1; } }
   Демонстрация 
 
   See the Pen   Коробка / Пуговицы by Димон Разведос (@razvedocs)  on CodePen.
 
 
 
  Коллекции кнопок поможет заменить ваши старые кнопки новыми анимированными кнопками.
 | 
 
| [ RU ] | 
 
 | 
 
  |