Главная » Файлы » Прочие скрипты » Яваскрипты |
Эффекты кнопок при нажатии
[ Скачать с сервера (464.1 Kb) ] | 13.02.15, 10:23:06 |
Йо, я m1haluc4. Я дикий задрот, дикий задрот и ... дикий задрот, Ну и вообщем наверное хватит обо мне, и перейдем к материалу ведь он действительно очень интересный, нету что я В последнее время было создано много интересных эффектов с помощью GooGle Material Design . Эти эффекты основаны на нажатии кнопки или прикосновении сенсора, сама идея получения таких простых эффектов при обратной связи действительно интересна. Как правило, такого рода индикаторы и эффекты используются в приложениях мобильных устройств. Но такого рода эффекты могут быть полезны фактически в любом сочетании, и с мышью и на мобильном устройстве. И так, сегодня я хочу вам представить некоторые их этих click/touch эффектов, используя различные анимации. В то время, как есть уйма видов анимации , которые можно сделать и реализовать, мы особенно заинтересованны в простом “tap-like” эффекте. Пожайлуста, обратите внимание, что данный материал работает только в самых современных материалах IE10, похоже, не поддерживает animationend в псевдо-классах, так что огорчу я любителей IE, в данном браузере вы не увидите правильного и качественного отображения данного материала. Смотрим ДЕМО Вызываем эффект на кнопке: Код <button class="cbutton cbutton--effect-boris"> <i class="cbutton__icon fa fa-fw fa-play"></i> <span class="cbutton__text">Play</span> </button> Кнопки имеют следующий общий стиль: Код .cbutton { position: relative; display: inline-block; margin: 1em; padding: 0; border: none; background: none; color: #286aab; font-size: 1.4em; transition: color 0.7s; } .cbutton.cbutton--click, .cbutton:focus { outline: none; color: #3c8ddc; } .cbutton__icon { display: block; } .cbutton__text { position: absolute; opacity: 0; pointer-events: none; } .cbutton::after { content: ''; position: absolute; top: 50%; left: 50%; margin: -35px 0 0 -35px; width: 70px; height: 70px; border-radius: 50%; opacity: 0; pointer-events: none; } Добавляем класс с JavaScript и вызываем анимации: Код /* Effect Boris */ .cbutton--effect-boris::after { background: rgba(111,148,182,0.1); } .cbutton--effect-boris.cbutton--click::after { animation: anim-effect-boris 0.3s forwards; } @keyframes anim-effect-boris { 0% { transform: scale3d(0.3, 0.3, 1); } 25%, 50% { opacity: 1; } 100% { opacity: 0; transform: scale3d(1.2, 1.2, 1); } } А теперь я вам приведу пример нескольких вариантов: В теге /head помещаем данный код: Код <link rel="stylesheet" type="text/css" href="/Desktop/css/normalize.css" /> <link rel="stylesheet" type="text/css" href="/Desktop/fonts/font/css/font-awesome.min.css" /> <link rel="stylesheet" type="text/css" href="/Desktop/css/component.css" /> <script src="/Desktop/js/modernizr.custom.js"></script> В теге /body в самом низу помещаем: Код <script src="/Desktop/js/classie.js"></script> <script> (function() { // http://stackoverflow.com/a/11381730/989439 function mobilecheck() { var check = false; (function(a){if(/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera); return check; } var support = { animations : Modernizr.cssanimations }, animEndEventNames = { 'WebkitAnimation' : 'webkitAnimationEnd', 'OAnimation' : 'oAnimationEnd', 'msAnimation' : 'MSAnimationEnd', 'animation' : 'animationend' }, animEndEventName = animEndEventNames[ Modernizr.prefixed( 'animation' ) ], onEndAnimation = function( el, callback ) { var onEndCallbackFn = function( ev ) { if( support.animations ) { if( ev.target != this ) return; this.removeEventListener( animEndEventName, onEndCallbackFn ); } if( callback && typeof callback === 'function' ) { callback.call(); } }; if( support.animations ) { el.addEventListener( animEndEventName, onEndCallbackFn ); } else { onEndCallbackFn(); } }, eventtype = mobilecheck() ? 'touchstart' : 'click'; [].slice.call( document.querySelectorAll( '.cbutton' ) ).forEach( function( el ) { el.addEventListener( eventtype, function( ev ) { classie.add( el, 'cbutton--click' ); onEndAnimation( classie.has( el, 'cbutton--complex' ) ? el.querySelector( '.cbutton__helper' ) : el, function() { classie.remove( el, 'cbutton--click' ); } ); } ); } ); })(); </script> А теперь несколько примеров и начнем мы с первого эффекта BORIS: Код <button class="cbutton cbutton--effect-boris"> <i class="cbutton__icon fa fa-fw fa-step-backward"></i> <span class="cbutton__text">Backward</span> </button> <button class="cbutton cbutton--effect-boris"> <i class="cbutton__icon fa fa-fw fa-play"></i> <span class="cbutton__text">Play</span> </button> <button class="cbutton cbutton--effect-boris"> <i class="cbutton__icon fa fa-fw fa-step-forward"></i> <span class="cbutton__text">Forward</span> </button> Второй эффект называется JELENA: Код <button class="cbutton cbutton--effect-jelena"> <i class="cbutton__icon fa fa-fw fa-rotate-left"></i> <span class="cbutton__text">Rotate left</span> </button> <button class="cbutton cbutton--effect-jelena"> <i class="cbutton__icon fa fa-fw fa-cut"></i> <span class="cbutton__text">Cut</span> </button> <button class="cbutton cbutton--effect-jelena"> <i class="cbutton__icon fa fa-fw fa-rotate-right"></i> <span class="cbutton__text">Rotate right</span> </button> И еще один примерчик под названием NOVAK: Код <button class="cbutton cbutton--effect-novak"> <i class="cbutton__icon fa fa-fw fa-minus"></i> <span class="cbutton__text">Minus</span> </button> <button class="cbutton cbutton--effect-novak"> <i class="cbutton__icon fa fa-fw fa-plus"></i> <span class="cbutton__text">Plus</span> </button> <button class="cbutton cbutton--effect-novak"> <i class="cbutton__icon fa fa-fw fa-remove"></i> <span class="cbutton__text">Remove</span> </button> На этом остановлюсь, остальные примеры вы найдете на демо. Теперь очень важный момент! Из прикрепленного архива все файлы нужно залить СООТВЕТСТВЕННО папка в папку! Автор: Мэри Лу Перевел: Я Настроение: Улыбайся | |
Просмотров: 1666 | Загрузок: 374 | Комментарии: 17 | |
Всего комментариев: 17 | ||||||
| ||||||