原生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 相关文章推荐
用dom+xhtml+css制作的一个相册效果代码打包下载
Jan 24 Javascript
jQuery LigerUI 使用教程表格篇(1)
Jan 18 Javascript
JS上传前预览图片实例
Mar 25 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
Apr 30 Javascript
JavaScript判断微信浏览器实例代码
Jun 13 Javascript
AngularJs html compiler详解及示例代码
Sep 01 Javascript
vue2.0获取自定义属性的值
Mar 28 Javascript
微信小程序实现天气预报功能
Jul 18 Javascript
手把手教你使用TypeScript开发Node.js应用
May 06 Javascript
js实现一个简易计算器
Mar 30 Javascript
React路由鉴权的实现方法
Sep 05 Javascript
linux服务器快速卸载安装node环境(简单上手)
Feb 22 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
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
php中json_decode()和json_encode()的使用方法
2012/06/04 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
微信小程序开发的基本流程步骤
2019/01/31 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
python实现矩阵乘法的方法
2015/06/28 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python 统计字数的思路详解
2018/05/08 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
谈谈Python中的while循环语句
2019/03/10 Python
pip安装python库的方法总结
2019/08/02 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
高中自我鉴定范文
2013/11/03 职场文书
大学生四年生活自我鉴定
2013/11/21 职场文书
事业单位请假制度
2014/01/13 职场文书
品牌宣传方案
2014/03/21 职场文书
亲属关系公证书
2014/04/08 职场文书
学生检讨书范文
2015/01/27 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL