小黄人眼睛跟随鼠标移动

教程地址:原文地址(YouTube)

B站教程:原文转载(bilibili)

两个视频的内容相同,第二个为转载

效果图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TcYEdxOO-1580558297980)(演示.gif)]

代码区

html

<div class="face"> <!-- 脸部 --><div class="eyes"> <!--  眼睛 --><div class="eye"></div><div class="eye"></div></div>
</div>
<script src="js/main.js"></script>

CSS

* {margin: 0; /* 外边距 */padding: 0; /* 内边距 */box-sizing: border-box; /* 盒子大小规则 */
}
body{display: flex; /* 弹性盒模型 */justify-content: center; /* 主轴对齐方式 */align-items: center; /* 交叉轴对齐方式 */min-height: 100vh; /* 最小高度:100视窗大小 */background: #5d3800; /* 背景颜色 */
}/* 黄色圆脸 */
.face{position: relative; /* 相对定位 */width: 300px; /* 宽度 */height: 300px; /* 高度 */border-radius: 50%; /* 边框圆角 */background: #ffcd00;display: flex;justify-content: center;align-items: center;
}
/* 嘴巴 */
.face::before{content: ''; /* 内容 */position: absolute;top: 180px; /* 距上部 */width: 150px;height: 70px;background: #b57700;border-bottom-left-radius: 70px; /* 左下圆角 */border-bottom-right-radius: 70px;transition: .5s; /* 过渡时间 */
}
/* 悬停到face时嘴就行变化 */
.face:hover::before{content: '';top: 200px;width: 150px;height: 30px;/* 圆角归0为矩形 */border-radius: 0;
}
/* 眼睛框体 */
.eyes{position: relative;top: -40px;display: flex;
}
/* 2只眼睛 */
.eyes .eye{position: relative;width: 80px;height: 80px;display: block;background-color: #fff;margin: 0 15px;border-radius: 50%;
}
/* 眼珠 */
.eyes .eye::before{content: '';position: absolute;top: 50%;left: 25px;transform: translate(-50%, -50%); /* x,y轴移动 */width: 40px;height: 40px;background: #333;border-radius: 50%;
}

JS

// 给body添加鼠标移动事件 eyeball
document.querySelector('body').addEventListener('mousemove', eyeball);
// 事件函数
function eyeball() {// 根据css选择器 获取到元素 放入数组var eye = document.querySelectorAll('.eye');// 调用数组中的每个元素eye.forEach(function(eye) {// 元素相对于窗口左边的距离  左边框的宽度let x = (eye.getBoundingClientRect().left + (eye.clientLeft / 2));// 同上let y = (eye.getBoundingClientRect().top + (eye.clientTop / 2));// pageX 鼠标指针的位置,相对于文档左边缘let radian = Math.atan2(event.pageX - x, event.pageY -y);let rot = (radian * (180 / Math.PI) * -1) + 270;// 修改旋转角度eye.style.transform = 'rotate(' + rot + 'deg)';})
}

教程地址:原文地址(YouTube)

B站教程:原文转载(bilibili)

小黄人眼睛跟随鼠标移动相关推荐

  1. 模仿ofo小黄人眼睛跟随手机移动

    先上ofo效果图 模仿图 自己为小黄人增加了墨镜 实现原理很简单,就是根据传感器控制控件的移动. 上代码: 实例化传感器管理器对象,并实现传感器监听: public class MainActivit ...

  2. html怎么制作小黄人,【PS教程】制作一个小黄人

    原标题:[PS教程]制作一个小黄人 小黄人已经是个无需介绍的人气角色,呆萌的外表让他成为了践踏主角的超级巨星,在全球拥有无数粉丝,作为喜欢小黄人的设计师,是不是一定要懂得3D软件才能做出小黄人哩?NO ...

  3. 仿新版ofo共享单车小黄人动态效果

    前言 最近升级小黄车到最新版本,发现ofo与小黄人合作,生产了一批小黄人版小黄车,甚是可爱-,并且App的界面也进行了相应的效果改变,用车按钮变成了小黄人的头像,小黄人的眼睛还可以跟随设备的倾斜进行转 ...

  4. 纯CSS3画出小黄人并实现动画效果

    前言 前两天我刚发布了一篇CSS3实现小黄人动画的博客,但是实现的CSS3动画是基于我在站酷网找到的一张小黄人的jpg格式图片,并自己用PS抠出需要实现动画的部分,最后才完成的动画效果.但是,其实我的 ...

  5. IOS绘制小黄人,对绘图知识的一个练习

    IOS绘制小黄人,对绘图知识的一个练习 #define kTopX rect.size.width * 0.5 #define kTopRadius 80 #define kTopY 260// // ...

  6. 绘制半圆_Android Canvas 绘制小黄人

    ❝ 学习往往是枯燥的,如果能用一个有趣 Demo 来学习和练习技术,那对知识的掌握就会更牢固.我在学习 Canvas 绘制 API 的时候就是这样做的. ❞ 截图镇楼 效果图 我觉得这个绘制小黄人的自 ...

  7. 微信小程序相关三、css写小黄人

    小程序上课第三天,因为今天院里有活动,所以没去上课,第四天上午又因为要召开入党转正大会,又耽误了一上午,下午去上课,要了资料.这两天讲了一些零零碎碎的东西,做的实例有上面这个小黄人 都是用的css,基 ...

  8. Python小黄人绘制

    Python小黄人绘制 使用python turtle库绘制小黄人 ​ 附上各坐标点的坐标图 完整代码: import turtle as t # 初始化 t.setup(800,800) t.pen ...

  9. html设计动画小黄人,【二次元的CSS】—— 用 DIV + LESS 做一个小黄人构造器

    仅仅使用div作为身体的布局,用css3的各种transform和圆角属性来绘制各个细节的形状,当然也不会使用任何图片哦.那就没意思了. 有的同学说,用canvas不是能画得更逼真而且更简单吗?这点我 ...

最新文章

  1. Redis问题——Error: 磁盘在使用中,或被另一个进程锁定。
  2. 人民搜索,该怎么说你才好
  3. (转)记录一次迁移 wss WebSocket 的事故
  4. Windows访问Fedora共享文件夹
  5. Ubantu键盘快捷键
  6. 阿里巴巴开源AI技术:强化学习在阿里的技术演进与业务创新
  7. Java—读取多层嵌套Json文件的内容并根据索引返回JsonObject
  8. MAC安装Eclipse
  9. 用matlab进行单整性检验,应用VAR模型时的15个注意点(笔记)
  10. echarts官网下载源码文件一直失败,在这里直接复制源码
  11. indesign怎么查找拼音_indesign拼音插件下载-Indesign拼音排版 免费版 - 河东下载站...
  12. Apollo课程学习2——高精地图HD Map
  13. JavaScript学习笔记二 标识符-字符类型
  14. Spring Security OAuth2实现简单的密钥轮换及配置资源服务器JWK缓存
  15. SSTI 模板注入url_for和get_flashed_messages之[WesternCTF2018]shrine
  16. Java— AWT 绘图(一)
  17. Guides-旅游类App原型分享
  18. 计算机科学期刊是b类吗,《计算机科学》体例格式
  19. 国产骨传导耳机推荐,目前最好用的几款骨传导耳机
  20. JetLinks学习笔记一

热门文章

  1. 高性能MySQL分析
  2. 【平衡二叉树】D. Playoff Tournament
  3. Java初学者入门指南
  4. c语言中 伪指令,汇编语言六大基础伪指令详解
  5. 蓝桥-ALGO-40-会议中心
  6. phpcms数据库备份与恢复_phpcms V9 sql备份文件名爆破
  7. 如何查看oracle数据库用户最大连接数,查看跟设置oracle数据库的最大连接数
  8. 哪款记事本可以在云端存储?云端记事本APP
  9. jquery选择器大于等于_从零开始学前端 30. JS选择器
  10. 【Java】Java中的包装类和基本类型有什么区别,使用场景举例