JS+css实现窗口快速抖动,仿mac、linux系统动画特效!适合于错误提示,弹窗提示,警告窗口等场景!
在Web开发中,可以使用JavaScript和CSS来实现窗口的抖动效果,这种效果常见于错误提示、弹窗提示或者警告中。以下分享一个简单的实现示例(两种方法)
话不多说,直接上代码:
方法一:
@keyframes shake { 0%, 100% { transform: translateX(0); } 5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% { transform: translateX(-3px); } 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% { transform: translateX(3px); } } .shake-animation { animation: shake 0.6s; animation-fill-mode: forwards; }
<div id="box">抖动停止</div> <button onclick="shake"></button>
JS部分
function shake() { document.getElementById('box').classList.add('shake-animation'); }
HTML部分:
<div id="shake-animation">窗口抖动效果</div>
CSS部分:
#shake-animation { position: relative; background-color: #f9f9f9; border: 1px solid #ddd; padding: 10px; width: 200px; text-align: center; }
JS部分:
function shake(element, times, distance, duration) { let counter = 0; // 定义动画函数 function animate() { if (counter >= times) { return; } element.style.transform = 'translate3d(' + distance + 'px, 0, 0)'; // 使用setTimeout来实现延迟动画效果 setTimeout(() => { element.style.transform = 'translate3d(0, 0, 0)'; }, duration / 2); counter++; } // 调用动画函数 animate(); } // 获取窗口抖动元素 const elem = document.getElementById('shake-animation'); // 触发抖动效果 shake(elem, 4, 5, 300); // 抖动次数、抖动距离、抖动持续时间
这段代码定义了一个shake函数,它接受四个参数:element是要实现抖动效果的DOM元素,times是抖动的次数,distance是每次抖动的距离,duration是每次抖动的持续时间。函数内部使用了transform属性和setTimeout来实现窗口的抖动动画。
你可以根据实际需求调整times, distance, duration的值来改变抖动的强度和频率。这个函数适用于Web开发中的各种场景,比如表单验证错误提示、登录失败弹窗等。
下载地址:https://download.csdn.net/download/xiaoyao_studio/89892559
1、基于Uni-app前端框架的SUMER UI3.0组件库
2、uniapp精仿支付宝UI界面源码下载,基于SumerUI一款仿支付宝APP
3、uniapp精仿微信源码,基于SumerUI一款仿微信APP应用
SUMER UI
【用于开发APP
、小程序
、H5网站
、毕业设计
…】
本文所涉及的资源来自公共网络搜索等合法途径整理而来,该资料仅作为学习研究使用,并无任何商业目的,严禁用于商业用途。
任何访问、浏览本文,无论是否下载资源的用户,均代表已阅读、理解并同意遵守本声明条款。
内容来源:本文所有内容均来自公共网络搜索等合法途径,本文只做整理,若版权方认为本文侵权,请立即通知文章作者(微信:sumer-work),提供相关证明材料,如版权属实,作者将在24小时内删除贴文,谢谢!
版权归属:本文所上传的资源内容的版权归相应内容作者或权利人所有,本店不对涉及的版权问题负法律责任!
免责声明:大部分资源均是免费下载,若有部分资源标识为付费资源,则仅仅是对作者搜集、整理资料所付出的汗水和努力作出的一定补偿,请下载了资源的用户尊重版权方的知识产权,并在下载资源后24小时内删除, 谢谢!