1. js-effect-ripple
Material Design Ripple effect in pure JS & CSS
js-effect-ripple
Package: js-effect-ripple
Created by: dai-siki
Last modified: Sun, 19 Jun 2022 05:33:52 GMT
Version: 1.2.1
License: ISC
Downloads: 766
Repository: https://github.com/dai-siki/js-effect-ripple

Install

npm install js-effect-ripple
yarn add js-effect-ripple

js-effect-ripple

Material Design Ripple effect in pure JS & CSS

Demo

click me.

Evn

webpack + babel + scss

Install

npm

 $ npm install js-effect-ripple

Usage

 
<style>
	* {
		margin: 0;
		padding: 0;
		-webkit-appearance:none;
	}

	body {
		padding: 50px;
	}

	div {
		position: relative;
	}

	button {
		position: relative;
		display: block;
		width: 200px;
		height: 50px;
		line-height: 50px;
		margin-bottom: 20px;
		border: none;
		outline: none;
		border-radius: 2px;
		overflow: hidden;
		background-color: #f55;
		color: #fff;
		font-size: 20px;
		cursor: pointer;
		box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15);
		user-select: none;
		-webkit-tap-highlight-color: transparent;/*此处为了解决谷歌手机浏览器触摸后按钮带有一层阴影的碍事效果*/
		transform: rotate(0deg); /*此处为了解决谷歌浏览器子元素使用transform元素,父元素圆角溢出无效的bug。无奈火狐依然存在*/
	}

	button:hover {
		box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.2);
	}

	button:active {
		box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.23);
	}

	#btn2 {
		background-color: #fff;
		color: #666;
	}

	#btn3 {
		width: 30px;
		height: 30px;
		line-height: 30px;
		font-size: 18px;
		border-radius: 50%;
		background-color: #fff;
		color: #666;
		overflow: visible;
	}

	#btn4 {
		width: 56px;
		height: 56px;
		line-height: 56px;
		border-radius: 50%;
		background-color: #086;
		font-size: 24px;
		color: #fff;
	}
</style>

<div>
	<button id="btn1" type="button" name="button">submit</button>
	<button id="btn2" type="button" name="button">submit</button>
	<button id="btn3" type="button" name="button">+</button>
	<button id="btn4" type="button" name="button">+</button>
	<button id="btn5" type="button" name="button">see above</button>
</div>

<script>
	import effectRipple from 'js-effect-ripple';

	let btn1 = document.getElementById('btn1'),
		btn2 = document.getElementById('btn2'),
		btn3 = document.getElementById('btn3'),
		btn4 = document.getElementById('btn4'),
		btn5 = document.getElementById('btn5');

	btn1.addEventListener('click', function (e) {
		effectRipple(e);
	});

	btn2.addEventListener('click', function (e) {
		effectRipple(e, {bgc: 'rgba(0, 100, 150, 0.3)'});
	});

	btn3.addEventListener('click', function (e) {
		effectRipple(e, {type: 'center'});
	});

	btn4.addEventListener('click', function (e) {
		effectRipple(e, {type: 'center', bgc: 'rgba(255, 255, 255, 0.4)'});
	});

	btn5.addEventListener('click', function (e) {
		effectRipple(e, {ele: btn1, type: 'center'});
		effectRipple(e, {ele: btn2, type: 'center'});
		effectRipple(e, {ele: btn3, type: 'center'});
		effectRipple(e, {ele: btn4, type: 'center', bgc: 'rgba(255, 255, 255, 0.3)'});
	});
</script>

RELATED POST

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin