基于JS写一个点击按钮的代码是什么
Admin 2022-11-15 群英技术资讯 333 次浏览
在这篇文章中我们来了解一下“基于JS写一个点击按钮的代码是什么”,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
视频演示
<main> <div class="grid"> <div class="grid__item theme-1"> <button class="action"><svg class="icon icon--rewind"> <use xlink:href="#icon-rewind" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></use> </svg></button> <button class="particles-button">Send</button> </div> <div class="grid__item theme-2"> <button class="action"><svg class="icon icon--rewind"> <use xlink:href="#icon-rewind" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></use> </svg></button> <button class="particles-button">Upload</button> </div> <div class="grid__item theme-3"> <button class="action"><svg class="icon icon--rewind"> <use xlink:href="#icon-rewind" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></use> </svg></button> <button class="particles-button">Delete</button> </div> <div class="grid__item theme-4"> <button class="action"><svg class="icon icon--rewind"> <use xlink:href="#icon-rewind" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></use> </svg></button> <button class="particles-button">Submit</button> </div> <div class="grid__item theme-5"> <button class="action"><svg class="icon icon--rewind"> <use xlink:href="#icon-rewind" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></use> </svg></button> <button class="particles-button">refresh</button> </div> <div class="grid__item theme-6"> <button class="action"><svg class="icon icon--rewind"> <use xlink:href="#icon-rewind" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></use> </svg></button> <button class="particles-button">Bookmark</button> </div> <div class="grid__item theme-7"> <button class="action"><svg class="icon icon--rewind"> <use xlink:href="#icon-rewind" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></use> </svg></button> <button class="particles-button">Subscribe</button> </div> <div class="grid__item theme-8"> <button class="action"><svg class="icon icon--rewind"> <use xlink:href="#icon-rewind" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></use> </svg></button> <button class="particles-button">Logout</button> </div> <div class="grid__item theme-9"> <button class="action"><svg class="icon icon--rewind"> <use xlink:href="#icon-rewind" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></use> </svg></button> <button class="particles-button">Add to cart</button> </div> <div class="grid__item theme-10"> <button class="action"><svg class="icon icon--rewind"> <use xlink:href="#icon-rewind" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></use> </svg></button> <button class="particles-button">Pause</button> </div> <div class="grid__item theme-11"> <button class="action"><svg class="icon icon--rewind"> <use xlink:href="#icon-rewind" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></use> </svg></button> <button class="particles-button">Register</button> </div> <div class="grid__item theme-12"> <button class="action"><svg class="icon icon--rewind"> <use xlink:href="#icon-rewind" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></use> </svg></button> <button class="particles-button">Export</button> </div> </div> </main> <script src='js/anime.min.js'></script> <script src='js/particles.js'></script> <script src='js/demo.js'></script>
样式代码太长了,影响阅读
关键代码,总共没几行,让它动起来,你们直接复制拿去用就行
/* eslint-disable */ (function(global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('animejs')) : typeof define === 'function' && define.amd ? define(['animejs'], factory) : (global.Particles = factory(global.anime)); }(this, (function(anime) { 'use strict'; /* eslint-enable */ function Particles(element, options) { this.el = getElement(element); this.options = extend({color: getCSSValue(this.el, 'background-color')}, this.defaults, options); this.init(); } Particles.prototype = { defaults: { type: 'circle', style: 'fill', canvasPadding: 150, duration: 1000, easing: 'easeInOutCubic', direction: 'left', size: function() { return Math.floor((Math.random() * 3) + 1); }, speed: function() { return rand(4); }, particlesAmountCoefficient: 3, oscillationCoefficient: 20 }, init: function () { this.particles = []; this.frame = null; this.canvas = document.createElement('canvas'); this.ctx = this.canvas.getContext('2d'); this.canvas.className = 'particles-canvas'; this.canvas.style = 'display:none;'; this.wrapper = document.createElement('div'); this.wrapper.className = 'particles-wrapper'; this.el.parentNode.insertBefore(this.wrapper, this.el); this.wrapper.appendChild(this.el); this.parentWrapper = document.createElement('div'); this.parentWrapper.className = 'particles'; this.wrapper.parentNode.insertBefore(this.parentWrapper, this.wrapper); this.parentWrapper.appendChild(this.wrapper); this.parentWrapper.appendChild(this.canvas); }, loop: function () { this.updateParticles(); this.renderParticles(); if (this.isAnimating()) { this.frame = requestAnimationFrame(this.loop.bind(this)); } }, updateParticles: function () { var p; for (var i = 0; i < this.particles.length; i++) { p = this.particles[i]; if (p.life > p.death) { this.particles.splice(i, 1); } else { p.x += p.speed; p.y = this.o.oscillationCoefficient * Math.sin(p.counter * p.increase); p.life++; p.counter += this.disintegrating ? 1 : -1; } } if (!this.particles.length) { this.pause(); this.canvas.style.display = 'none'; if (is.fnc(this.o.complete)) { this.o.complete(); } } }, renderParticles: function () { this.ctx.clearRect(0, 0, this.width, this.height); var p; for (var i = 0; i < this.particles.length; i++) { p = this.particles[i]; if (p.life < p.death) { this.ctx.translate(p.startX, p.startY); this.ctx.rotate(p.angle * Math.PI / 180); this.ctx.globalAlpha = this.disintegrating ? 1 - p.life / p.death : p.life / p.death; this.ctx.fillStyle = this.ctx.strokeStyle = this.o.color; this.ctx.beginPath(); if ( this.o.type === 'circle' ) { this.ctx.arc(p.x, p.y, p.size, 0, 2 * Math.PI); } else if ( this.o.type === 'triangle' ) { this.ctx.moveTo(p.x, p.y); this.ctx.lineTo(p.x+p.size, p.y+p.size); this.ctx.lineTo(p.x+p.size, p.y-p.size); } else if ( this.o.type === 'rectangle' ){ this.ctx.rect(p.x, p.y, p.size, p.size); } if ( this.o.style === 'fill' ) { this.ctx.fill(); } else if ( this.o.style === 'stroke' ) { this.ctx.closePath(); this.ctx.stroke(); } this.ctx.globalAlpha = 1; this.ctx.rotate(-p.angle * Math.PI / 180); this.ctx.translate(-p.startX, -p.startY); } } }, play: function () { this.frame = requestAnimationFrame(this.loop.bind(this)); }, pause: function () { cancelAnimationFrame(this.frame); this.frame = null; }, addParticle: function (options) { var frames = this.o.duration * 60 / 1000; var speed = is.fnc(this.o.speed) ? this.o.speed() : this.o.speed; this.particles.push({ startX: options.x, startY: options.y, x: this.disintegrating ? 0 : speed * -frames, y: 0, angle: rand(360), counter: this.disintegrating ? 0 : frames, increase: Math.PI * 2 / 100, life: 0, death: this.disintegrating ? (frames - 20) + Math.random() * 40 : frames, speed: speed, size: is.fnc(this.o.size) ? this.o.size() : this.o.size }); }, addParticles: function (rect, progress) { var progressDiff = this.disintegrating ? progress - this.lastProgress : this.lastProgress - progress; this.lastProgress = progress; var x = this.options.canvasPadding; var y = this.options.canvasPadding; var progressValue = (this.isHorizontal() ? rect.width : rect.height) * progress + progressDiff * (this.disintegrating ? 100 : 220); if (this.isHorizontal()) { x += this.o.direction === 'left' ? progressValue : rect.width - progressValue; } else { y += this.o.direction === 'top' ? progressValue : rect.height - progressValue; } var i = Math.floor(this.o.particlesAmountCoefficient * (progressDiff * 100 + 1)); if (i > 0) { while (i--) { this.addParticle({ x: x + (this.isHorizontal() ? 0 : rect.width * Math.random()), y: y + (this.isHorizontal() ? rect.height * Math.random() : 0) }); } } if (!this.isAnimating()) { this.canvas.style.display = 'block'; this.play(); } }, addTransforms: function (value) { var translateProperty = this.isHorizontal() ? 'translateX' : 'translateY'; var translateValue = this.o.direction === 'left' || this.o.direction === 'top' ? value : -value; this.wrapper.style[transformString] = translateProperty + '('+ translateValue +'%)'; this.el.style[transformString] = translateProperty + '('+ -translateValue +'%)'; }, disintegrate: function (options) { if (!this.isAnimating()) { this.disintegrating = true; this.lastProgress = 0; this.setup(options); var _ = this; this.animate(function(anim) { var value = anim.animatables[0].target.value; _.addTransforms(value); if (_.o.duration) { _.addParticles(_.rect, value / 100, true); } }); } }, integrate: function (options) { if (!this.isAnimating()) { this.disintegrating = false; this.lastProgress = 1; this.setup(options); var _ = this; this.animate(function(anim) { var value = anim.animatables[0].target.value; setTimeout(function() { _.addTransforms(value); }, _.o.duration); if (_.o.duration) { _.addParticles(_.rect, value / 100, true); } }); } }, setup: function (options) { this.o = extend({}, this.options, options); this.wrapper.style.visibility = 'visible'; if (this.o.duration) { this.rect = this.el.getBoundingClientRect(); this.width = this.canvas.width = this.o.width || this.rect.width + this.o.canvasPadding * 2; this.height = this.canvas.height = this.o.height || this.rect.height + this.o.canvasPadding * 2; } }, animate: function (update) { var _ = this; anime({ targets: {value: _.disintegrating ? 0 : 100}, value: _.disintegrating ? 100 : 0, duration: _.o.duration, easing: _.o.easing, begin: _.o.begin, update: update, complete: function() { if (_.disintegrating) { _.wrapper.style.visibility = 'hidden'; } } }); }, isAnimating: function () { return !!this.frame; }, isHorizontal: function () { return this.o.direction === 'left' || this.o.direction === 'right'; } }; // Utils var is = { arr: function (a) { return Array.isArray(a); }, str: function (a) { return typeof a === 'string'; }, fnc: function (a) { return typeof a === 'function'; } }; function stringToHyphens(str) { return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase(); } function getCSSValue(el, prop) { if (prop in el.style) { return getComputedStyle(el).getPropertyValue(stringToHyphens(prop)) || '0'; } } var t = 'transform'; var transformString = (getCSSValue(document.body, t) ? t : '-webkit-' + t); function extendSingle(target, source) { for (var key in source) target[key] = is.arr(source[key]) ? source[key].slice(0) : source[key]; return target; } function extend(target) { if (!target) target = {}; for (var i = 1; i < arguments.length; i++) extendSingle(target, arguments[i]); return target; } function rand(value) { return Math.random() * value - value / 2; } function getElement(element) { return is.str(element) ? document.querySelector(element) : element; } return Particles; })));
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
用JS实现图片切换效果的代码怎样写?有不少朋友对此感兴趣,下面小编给大家整理和分享了相关知识和资料,易于大家学习和理解,有需要的朋友可以借鉴参考,下面我们一起来了解一下吧。
vue是前端轻量级MVVM框架,入门门槛相对较低,今天用Vue做一个购物车实例,所以下面这篇文章主要给大家介绍了关于vue实现购物车全部功能的简单方法,需要的朋友可以参考下
这篇文章主要介绍了详解Typescript里的This的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
区别:1.JS运行在浏览器端,用于用户的交互效果,NodeJS运行在服务器端,用于服务器的操作,例如,Web服务器创建,数据库的操作,文件的操作等2.JS运行在浏览器端,存在多个JS解释器,存在兼容性的问题,而NodeJS只有V8引擎一种解释器,不存在兼容性问题3.两者都有内置对象,自定义对象,有不同的宿主对象 词语解释(js为例):js的内置对象、自定义对象,和宿主对象javasc
这篇文章主要介绍了Vue.js中NaiveUI组件文字渐变的实现,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008