Главная » Файлы » Прочие скрипты » Яваскрипты

Эффекты кнопок при нажатии
[ Скачать с сервера (464.1 Kb) ] 13.02.15, 10:23:06



Йо, я m1haluc4. Я дикий задрот, дикий задрот и ... дикий задрот, Ну и вообщем наверное хватит обо мне, и перейдем к материалу ведь он действительно очень интересный, нету что я biggrin

В последнее время было создано много интересных эффектов с помощью 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>


На этом остановлюсь, остальные примеры вы найдете на демо.

Теперь очень важный момент! Из прикрепленного архива все файлы нужно залить СООТВЕТСТВЕННО папка в папку!

Автор: Мэри Лу
Перевел: Я
Настроение: Улыбайся
Категория: Яваскрипты | Добавил: m1haluc4 | Теги: кнопок, эффекты, при, нажатии
Просмотров: 1596 | Загрузок: 336 | Комментарии: 17 | Рейтинг: 1.7/12
Всего комментариев: 17
0
Ещё один комментарий 5

1
Ещё один комментарий 4

1
Ещё один комментарий 3

0
Ещё один комментарий 2

0
Ещё один комментарий 1

Имя *:
Email: