17种不同的点赞按钮动画效果代码
代码语言:html
所属分类:动画
代码描述:17种不同的点赞按钮动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!doctype html> <html lang="zh"> <head> <meta charset="UTF-8"> <link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/font-awesome-4.7.0/css/font-awesome.min.css"> <style> *, *::after, *::before { -webkit-box-sizing: border-box; box-sizing: border-box; } body { font-family: 'Avenir Next', Avenir, 'Helvetica Neue', Helvetica, Arial, sans-serif; counter-reset: gridcounter; background: #f0f0f0;; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } a { text-decoration: none; color: #999; outline: none; } a:hover, a:focus { color: #000; outline: none; } .container { margin: 0 auto; overflow: hidden; } /* Content */ .grid__item { float:left; position: relative; width: 7em; height: 7em; } /* Icons button */ .icobutton { font-size: 3em; position: relative; margin: 0; padding: 0; color: #c0c1c3; border: 0; background: none; overflow: visible; -webkit-tap-highlight-color: rgba(0,0,0,0); } .icobutton .fa { display: block; padding: 0 0.1em; } .icobutton__text { font-size: 0.75em; position: absolute; top: 100%; left: -50%; width: 200%; text-align: center; line-height: 1.5; color: #a6a6a6; } .icobutton__text--side { top: 0; left: 100%; width: 100%; width: auto; padding: 0 0 0 0.25em; } /* fix for mo.js */ .icobutton svg { left: 0; } .icobutton:hover, .icobutton:focus { outline: none; } /* Unicorn */ .icobutton--unicorn svg { fill: #c0c1c3; } </style> </head> <body> <div class="container"> <section class="content"> <ol class="grid"> <li class="grid__item"> <button class="icobutton icobutton--thumbs-up"><span class="fa fa-thumbs-up"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--thumbs-up"><span class="fa fa-thumbs-up"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--thumbs-up"><span class="fa fa-thumbs-up"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--thumbs-up"><span class="fa fa-thumbs-up"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--thumbs-up"><span class="fa fa-thumbs-up"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--thumbs-up"><span class="fa fa-thumbs-up"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--thumbs-up"><span class="fa fa-thumbs-up"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--thumbs-up"><span class="fa fa-thumbs-up"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--thumbs-up"><span class="fa fa-thumbs-up"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--long-arrow-up"><span class="fa fa-long-arrow-up"></span><span class="icobutton__text icobutton__text--side">3</span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--microphone"><span class="fa fa-microphone"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--map-marker"><span class="fa fa-map-marker"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--thumbs-up"><span class="fa fa-thumbs-up"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--heart"><span class="fa fa-heart"></span><span class="icobutton__text icobutton__text--side">10</span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--shopping-cart"><span class="fa fa-shopping-cart"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--heart"><span class="fa fa-heart"></span></button> </li> <li class="grid__item"> <button class="icobutton icobutton--unicorn"> <svg viewBox="0 0 448.546 448.546" width="86px" height="86px"> <path d="M385.7,172.2c-9.7-7.9-19.2-12.4-27.3-14.9c-9.9-3.1-17.5-3.2-20.6-3.2c-16.2,0-32.3,5.5-45.5,15.6c-6,4.6-12.6,8.3-19.5,11c-0.4-56.9-23-110.5-59.3-139.5c-2.3-4.1-5.1-7.9-8.5-11.3l-6-6.1l-4.6,5.2c-14.9-7.2-30.6-9.5-45.7-6.9c-11,2-20.2,9.2-24.6,19.5c-3.1,7.2-3.5,15.2-1.4,22.5c-1.7,0.8-3.3,1.6-4.8,2.6L9.3,1.5l80.4,107.4l-22.6,49.4c-5,10.9-4,23.3,2.6,33.2c6.4,9.5,17,15.2,28.5,15.2c6.1,0,12.2-1.7,17.4-4.8l17.3-10.3c-8.1,18.2-16.9,41-16.9,53.1c0,22.7,7.9,44.7,22.4,61.7c5,6,10.8,11.2,17.1,15.8V450h33h15h42v-110c23.5-2,55.1-15.9,83.1-30.8c-0.1,3.4-0.1,6.4-0.1,9.2V450h32h16h41l-0.6-201.4c0,0-0.6-34.4-8-47.2C401.9,189.5,396.1,180.7,385.7,172.2z M242.6,108.6c9.7,23.5,14.5,49.8,14.1,76.4c-4.1,0.7-8.3,1-12.6,1h-9.4c-2.3-16.2-8.9-56.5-22.2-87.7c5.1-8.3,7.7-17.9,8-27.5C229.2,81.6,236.8,94.4,242.6,108.6z M138.9,48c2.3-5.4,6.9-9.1,12.7-10.1c10.5-1.9,21.2-0.6,31.8,3.7L172.5,54c-1.2,1.1-2.8,1.7-4.8,1.7c-6.8,0-18.5,1.6-29.6,3.9C137,55.8,137.2,51.8,138.9,48z M70.9,57.2l32.5,19.5l-6.2,15.7L70.9,57.2z M107.5,188.2c-2.8,1.7-6,2.6-9.3,2.6c-6.1,0-11.8-3-15.2-8.1c-3.5-5.2-4-12-1.4-17.7l32.3-70.6c4.1-9,12-15.5,21.6-17.9c11.5-2.8,25.4-4.9,32.3-4.9c6.2,0,11.9-2.3,16.1-6.5L199,48c7.9,13.4,7.5,32.2-1.9,44.7l-2.9,3.8l2,4.3c0.6,1.2,1.1,2.5,1.7,3.8c4.2,9.9,4.5,21.3,0,31.1c-3.8,8.3-10.3,15-19.7,19.8c-13.2,6.9-27.2,7.7-27.4,7.7l0,0c-1.3,0.1-2.5,0.5-3.6,1.2L107.5,188.2z M188.4,337.4V409h-17v-77.5C176.8,334,182.5,336,188.4,337.4z M171.4,434v-9h17v9H171.4z M204.4,434v-9h25v9H204.4z M239.9,324.3c-0.7,0-1.4,0-2.1-0.1l-8.4-0.5V409h-25v-84.9l-6.6-1.1c-18.5-3.2-35.3-12.7-47.2-26.9c-12-14.2-18.6-32.5-18.6-51.4c0-10.8,12.4-41,24.6-65.9c6.2-0.8,17.4-3.1,28.5-8.8c9.2-4.7,19.3-12.3,25.8-24.4c6.2,26.1,8.9,48.9,8.9,49.2l0.8,7.1h23.6c21,0,41-6.8,57.8-19.7c10.4-7.9,23.1-12.3,35.7-12.3c6.3,0,12.5,1.1,18.4,3.2c1.9,0.7,3.4,1.3,4.5,2c6.4,3.6,12.2,8,17.3,13.1c15.1,15.1,23.2,30.7,23.2,52l0.1,168.7h-25v-83.4l-4.8-2.1c-10.4-4.5-17.2-14.8-17.2-26.4v-20.9l-12,7C296.8,309.7,260.5,324.3,239.9,324.3z M360.4,335.9V409h-16v-89.3C348.2,326.3,353.7,331.9,360.4,335.9z M344.4,434v-9h16v9H344.4z M376.4,434v-9h25v9H376.4z" /> <path d="M161,128.1c7.4-10.7,4.6-25.5-6.1-32.8c-3.9-2.7-8.6-4.1-13.3-4.1c-7.8,0-15.1,3.8-19.5,10.3c-7.4,10.7-4.6,25.5,6.1,32.8c3.9,2.7,8.6,4.1,13.3,4.1h0C149.3,138.4,156.6,134.5,161,128.1z M147.8,119.1c-1.4,2.1-3.8,3.3-6.3,3.3c-1.5,0-3-0.5-4.3-1.3c-3.5-2.4-4.3-7.1-2-10.6c1.4-2.1,3.8-3.3,6.3-3.3c1.5,0,3,0.5,4.3,1.3c1.7,1.1,2.8,2.9,3.2,4.9C149.4,115.4,148.9,117.4,147.8,119.1z" /> <path d="M363.3,171.6c-0.6,0-1.2,0-1.9-0.1c-6.6-0.5-18.3-3.7-21.8-9.8c-1.4-2.6-1.6-5.5-0.3-8v0c19.7-39.5,10.4-90.8,10.3-91.3l-2.7-14.4l78.3,37.2l-2.1,6.3c-0.3,0.8-6.8,20.1-17,39.4C391.7,158.2,377.6,171.6,363.3,171.6z M352.7,160.3C352.7,160.3,352.7,160.3,352.7,160.3C352.7,160.3,352.7,160.3,352.7,160.3L352.7,160.3z M355.2,154.9c2,0.7,4.6,1.4,7.4,1.6c0.2,0,0.4,0,0.6,0c13.9,0,33.1-35.7,43.4-63.7l-40.5-19.2C367.7,92,368.1,125.2,355.2,154.9z" /></svg> </button> </li> </ol> </section> </div> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/mo.js"></script> <script> /** * demo.js * http://www.codrops.com * * Licensed under the MIT license. * http://www.opensource.org/licenses/mit-license.php * * Copyright 2016, Codrops * http://www.codrops.com */; (function(window) { 'use strict'; // taken from mo.js demos function isIOSSafari() { var userAgent; userAgent = window.navigator.userAgent; return userAgent.match(/iPad/i) || userAgent.match(/iPhone/i); }; // taken from mo.js demos function isTouch() { var isIETouch; isIETouch = navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; return [].indexOf.call(window, 'ontouchstart') >= 0 || isIETouch; }; // taken from mo.js demos var isIOS = isIOSSafari(), clickHandler = isIOS || isTouch() ? 'touchstart': 'click'; function extend(a, b) { for (var key in b) { if (b.hasOwnProperty(key)) { a[key] = b[key]; } } return a; } function Animocon(el, options) { this.el = el; this.options = extend( {}, this.options); extend(this.options, options); this.checked = false; this.timeline = new mojs.Timeline(); for (var i = 0, len = this.options.tweens.length; i < len; ++i) { this.timeline.add(this.options.tweens[i]); } var self = this; this.el.addEventListener(clickHandler, function() { if (self.checked) { self.options.onUnCheck(); } else { self.options.onCheck(); self.timeline.start(); } self.checked = !self.checked; }); } Animocon.prototype.options = { tweens: [ new mojs.Burst({ shape: 'circle', isRunLess: true }) ], onCheck: function() { return false; }, onUnCheck: function() { return false; } }; // grid items: var items = [].slice.call(document.querySelectorAll('ol.grid > .grid__item')); function init() { /* Icon 1 */ var el1 = items[0].querySelector('button.icobutton'), el1span = el1.querySelector('span'); new Animocon(el1, { tweens: [ // burst animation new mojs.Burst({ parent: el1, duration: 1700, shape: 'circle', fill: '#C0C1C3', x: '50%', y: '50%', opacity: 0.6, childOptions: { radius: { 15: 0 } }, radius: { 30: 90 }, count: 6, isRunLess: true, easing: mojs.easing.bezier(0.1, 1, 0.3, 1) }), // ring animation new mojs.Transit({ parent: el1, duration: 700, type: 'circle', radius: { 0: 60 }, fill: 'transparent', stroke: '#C0C1C3', strokeWidth: { 20: 0 }, opacity: 0.6, x: '50%', y: '50%', isRunLess: true, easing: mojs.easing.sin.out }), // icon scale animation new mojs.Tween({ duration: 1200, onUpdate: function(progress) { if (progress > 0.3) { var elasticOutProgress = mo.........完整代码请登录后点击上方下载按钮下载查看
网友评论0