原生js实现类似弹窗抖动效果


Posted in Javascript onApril 02, 2015

先在之前做的抖动窗口上做了点动作 无限变色

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    div{text-align: center;line-height: 150px;font-weight: bold;}
    #dv{width: 300px;height: 150px;position: absolute;left: 200px;top: 100px;background: red;}
    #dv2{width: 300px;height: 150px;position: absolute;left: 600px;top: 100px;background: yellow;}
  </style>
  <script>
      window.onload=function(){
        // 得到0--255的随机数
        function getRandNumber(rmin,rmax){
          var cha = rmax-rmin;
          var rand = Math.random();
          return rmin+Math.round(cha*rand)
        }
        var oDv = document.getElementById('dv')
        var oDv2 = document.getElementById('dv2')
        //抖动需要获取的值一个数组
        var arr=[];
         
        // 随机变色
        setInterval(function(){
          var arr2 = [
            getRandNumber(0,255),
            getRandNumber(0,255),
            getRandNumber(0,255)
            ];
 
          oDv.style.backgroundColor="rgb("+arr2[0]+","+arr2[1]+","+arr2[2]+")"
        },130) 
        // 抖动获取值放到数组中
          for(var i=20;i>0;i-=2){
            arr.push(i,-i)
          }
        // 第一个盒子抖动
        oDv.onclick=function(){
          sb(oDv,'left',function(){
            sb(oDv,'top')
          })
           
        }
        // 第二个盒子抖动
        oDv2.onclick=function(){
          sb(oDv2,'left',function(){
            sb(oDv2,'top')
          })
           
        }
        // 抖动
        function sb(obj,attr,fnEnd){
          var timer=null;
          var num=0;
     
          clearInterval(timer)
          timer=setInterval(function(){
          obj.style[attr]=parseInt(getStyle(obj,attr))+arr[num]+'px'
          num++;
          if(num===arr.length){
            clearInterval(timer)
            fnEnd&&fnEnd()
            obj.innerHTML='我是'+getStyle(obj,'backgroundColor')+'色'
            //alert(1)
          }
             
          },50)
 
        }
     
        function getStyle(obj,attr){
          return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr]
        }
      };
  </script>
</head>
<body>
  <div id="dv">点我呀</div>
  <div id="dv2">点我呀</div>
</body>
</html>

演示图:

原生js实现类似弹窗抖动效果

原生js实现类似弹窗抖动效果

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
JQuery入门——移除绑定事件unbind方法概述及应用
Feb 05 Javascript
JQuery中对Select的option项的添加、删除、取值
Aug 25 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
Jan 09 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
Apr 01 Javascript
JavaScript事件用法浅析
Oct 31 Javascript
Angular的模块化(代码分享)
Dec 26 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
Jan 03 Javascript
AngularJS constant和value区别详解
Feb 28 Javascript
JavaScript数组排序reverse()和sort()方法详解
Dec 24 Javascript
web前端vue filter 过滤器
Jan 12 Javascript
vue中axios的封装问题(简易版拦截,get,post)
Jun 15 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
Feb 20 Javascript
JavaScript显示表单内元素数量的方法
Apr 02 #Javascript
原创jQuery弹出层插件分享
Apr 02 #Javascript
JavaScript获取网页表单提交方式的方法
Apr 02 #Javascript
Javascript获取表单名称(name)的方法
Apr 02 #Javascript
如何改进javascript代码的性能
Apr 02 #Javascript
JavaScript获得表单target属性的方法
Apr 02 #Javascript
AngularJS快速入门
Apr 02 #Javascript
You might like
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
javascript动画之圆形运动,环绕鼠标运动作小球
2010/07/20 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
js判断60秒以及倒计时示例代码
2014/01/24 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
javascript自执行函数
2017/02/10 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
Javascript实现运算符重载详解
2018/04/07 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
Python中删除文件的程序代码
2011/03/13 Python
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
python的正则表达式re模块的常用方法
2013/03/09 Python
python单元测试unittest实例详解
2015/05/11 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
python的re正则表达式实例代码
2018/01/24 Python
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
CSS3实现div从下往上滑入滑出效果示例
2020/04/28 HTML / CSS
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
《三峡》教学反思
2014/03/01 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
2014年学习部工作总结
2014/11/12 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
PHP遍历数组的6种方式总结
2021/11/17 PHP
redis复制有可能碰到的问题汇总
2022/04/03 Redis