JS写滑稽笑脸运动效果


Posted in Javascript onMay 28, 2020

效果演示:

JS写滑稽笑脸运动效果

(就这玩意儿,差点写崩了...)

代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>滑稽笑脸运动</title>
  <meta name="author" content="marinerzp">
  <style>
    *{padding: 0;margin: 0;}
    html,body{
      width: 100%;
      height: 100%;
    }
    #main{
      width: 100px;
      height: 100px;
      border-radius: 50%;
      background:url(images/1.jpg) 0 0/100px 100px;
      position: absolute;
      left: 0;
      top: 0;
      z-index: 3;
    }
    .show{
      width: 50px;
      height: 50px;
      border-radius: 50%;
      background-color: rgb(239, 187, 101);
      position: absolute;
      animation: disappear 1.2s ;
      animation-fill-mode: forwards;
      
    }
    @keyframes disappear{
      0%{
        opacity: 1;
        transform:scale(1);
      }
      100%{
        opacity: 0;
        transform:scale(0);
      }
    }
  </style>
</head>
<body>
  <div id="main">
  </div>
  
  <script>
    let Omain=document.querySelector('#main');
    let MaxLeft=window.innerWidth-Omain.offsetWidth;
    let MaxTop=window.innerHeight-Omain.offsetHeight;
 
    window.οnresize=function(){//监听窗口大小改变事件
      MaxLeft=window.innerWidth-Omain.offsetWidth;
      MaxTop=window.innerHeight-Omain.offsetHeight;
    };
    /*
      水平方向上:以向右为正方向
      竖直方向上:以向下为正方向
    */ 
    let Vx=6;//3px/s
    let Vy=9;//4px/s
    let X=0,Y=0;
    ~~function move(){
      X+=Vx;
      Y+=Vy;
      if (Y>=MaxTop) {
        Y=MaxTop;
        Vy=-Vy;
      }
      if (Y<=0) {
        Y=0;
        Vy=-Vy;
      }
      if (X>=MaxLeft) {
        X=MaxLeft;
        Vx=-Vx;
      }
      if (X<=0) {
        X=0;
        Vx=-Vx;
      }
      Omain.style.left=`${X}px`;
      Omain.style.top=`${Y}px`;
      
      createTail(X,Y);//生成拖尾
      requestAnimationFrame(move);
    }();
    function createTail(X,Y){
      let node=document.createElement('p');
      node.classList.add('show');
      node.style.cssText=`left:${X+20}px;top:${Y+20}px`;
      document.body.appendChild(node);
      setTimeout(()=>{
        document.body.removeChild(node);
        node=null;
      },1200);
    }
    
 
  </script>
</body>
</html>

总结

到此这篇关于JS写滑稽笑脸运动效果的文章就介绍到这了,更多相关js 滑稽笑脸内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
用javascript编写的第一人称射击游戏
Feb 25 Javascript
Javascript Tab 导航插件 (23个)
Jun 11 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
Nov 28 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
Jan 11 Javascript
仅Firefox中链接A无法实现模拟点击以触发其默认行为
Jul 31 Javascript
JavaScript极简入门教程(三):数组
Oct 25 Javascript
jQuery toggle 代替方法
Mar 22 Javascript
使用jQuery制作基础的Web图片轮播效果
Apr 22 Javascript
jQuery+HTML5实现弹出创意搜索框层
Dec 29 Javascript
微信小程序中使用ECharts 异步加载数据的方法
Jun 27 Javascript
原生js实现文件上传、下载、封装等实例方法
Jan 05 Javascript
Vue-cli打包后如何本地查看的操作
Sep 02 Javascript
Python版实现微信公众号扫码登陆
May 28 #Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
May 28 #Javascript
原生js实现五子棋游戏
May 28 #Javascript
Vue微信公众号网页分享的示例代码
May 28 #Javascript
纯JS实现五子棋游戏
May 28 #Javascript
js实现简单五子棋游戏
May 28 #Javascript
js实现双人五子棋小游戏
May 28 #Javascript
You might like
程序员编程十条戒律
2009/07/09 PHP
在PHP中利用wsdl创建标准webservice的实现代码
2011/12/07 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
php采用session实现防止页面重复刷新
2015/12/24 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
用jquery方法操作radio使其默认选项是否
2013/09/10 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
H5上传本地图片并预览功能
2017/05/08 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
js断点调试经验分享
2017/12/08 Javascript
Angular整合zTree的示例代码
2018/01/24 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
django 常用orm操作详解
2017/09/13 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
Python如何读取文件中图片格式
2020/01/13 Python
基于Pytorch SSD模型分析
2020/02/18 Python
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
取保候审保证书
2014/04/30 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
滞留工资返还协议书
2014/10/19 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS