Material Design Buttons
Кнопки являются неотъемлемой частью любого функционального сайта. В последнее время мне начал нравиться Material Design. Сегодня расскажу как сделать себе на сайт кнопки в этом стиле.

И так начнем!


Сначала нужно выбрать цвет кнопки. Вот несколько сайтов для выбора цветов:

Materialpalette Color adobe Getuicolors Materialui


Теперь добавляем кнопку:

Код
<button class="btn material-design" data-color="#426FC5">Senden</button>

Вставляем скрипт:

Код
var canvas = {},
  centerX = 0,
  centerY = 0,
  color = '',
  containers = document.getElementsByClassName('material-design')
  context = {},
  element = {},
  radius = 0,

  requestAnimFrame = function () {
  return (
  window.requestAnimationFrame ||  
  window.mozRequestAnimationFrame ||  
  window.oRequestAnimationFrame ||  
  window.msRequestAnimationFrame ||  
  function (callback) {
  window.setTimeout(callback, 1000 / 60);
  }
  );
  } (),
   
  init = function () {
  containers = Array.prototype.slice.call(containers);
  for (var i = 0; i < containers.length; i += 1) {
  canvas = document.createElement('canvas');
  canvas.addEventListener('click', press, false);
  containers[i].appendChild(canvas);
  canvas.style.width ='100%';
  canvas.style.height='100%';
  canvas.width = canvas.offsetWidth;
  canvas.height = canvas.offsetHeight;
  }
  },
   
  press = function (event) {
  color = event.toElement.parentElement.dataset.color;
  element = event.toElement;
  context = element.getContext('2d');
  radius = 0;
  centerX = event.offsetX;
  centerY = event.offsetY;
  context.clearRect(0, 0, element.width, element.height);
  draw();
  },
   
  draw = function () {
  context.beginPath();
  context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
  context.fillStyle = color;
  context.fill();
  radius += 2;
  if (radius < element.width) {
  requestAnimFrame(draw);
  }
  };

init();

Добавляем стиле:

Код
.btn {
  border: none;
  color: white;
  overflow: hidden;
  margin: 1rem;
  padding: 0;
  text-transform: uppercase;
  width: 150px;
outline: none;
  height: 40px;
  background-color: transparent;
border: 2px solid #426FC5;
color: #426FC5;
}
.material-design {
  position: relative;
}
.material-design canvas {
  opacity: 0.25;
  position: absolute;
  top: 0;
  left: 0;
}

Вот и все. Удачи.

Всего комментариев: (0)

_LOGGED_IN$)?>
Чтобы оставить комментарий под этой публикацией, войдите или зарегистрируйтесь.

Случайные материалы

Плавная прокрутка по блокам с jQuery
Плавная прокрутка по блокам с jQuer
Крутой шаблон для дизайнеров в плоском стиле
Крутой шаблон для дизайнеров в плос
Driver Status Dashboard
Driver Status Dashboard
Боковое меню как на YouTube для uCoz
Боковое меню как на YouTube для uCo
Как создавался новый логотип Google
Как создавался новый логотип Google
Материалы пользователя в его профиле
Материалы пользователя в его профил