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$)?>
Чтобы оставить комментарий под этой публикацией, войдите или зарегистрируйтесь.

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

Кнопка вверх/вниз для uCoz
Кнопка вверх/вниз для uCoz
Ajax добавление фотографий в фотоальбом
Ajax добавление фотографий в фотоал
Material Design Buttons
Material Design Buttons
Крутой шаблон для дизайнеров в плоском стиле
Крутой шаблон для дизайнеров в плос
Плавающая кнопка меню от Kanavas
Плавающая кнопка меню от Kanavas
Классный анимационный эффект с изображениями
Классный анимационный эффект с изоб