本节主要讲的是元素跟随鼠标旋转主要是用到了原生js更改css的transform属性,这个属性下有很多方法,下面就只讲关于本节内容的几种方法,其他的可以私下自己去看一看

translate(x,y) 转换2D

translate(x,y)水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动)
translateX(x)仅水平方向移动(X轴移动)
translateY(Y)仅垂直方向移动(y轴移动)
效果:

链接描述

rotate(angle) 定义2D旋转,旋转角度在参数中定义

通过指定rotate内设置角度参数对元素进行一个2D的旋转,设置正数元素则顺时针旋转参数内的角度,设置负数则逆时针旋转参数内的角度
transform-origin可以定义旋转的原点,不设置的话会按中心点进行旋转,这个属性的参数也分为 x轴 y轴 z轴(偏移量)
效果:

链接描述

rotateX(angle) 定义沿着 x 轴的 3D 旋转。

 这主要是沿着X轴进行旋转,顾名思义就是横向不动,肉眼看见的图形应该是上下翻转的效果

rotateY(angle) 定义沿着 Y 轴的 3D 旋转。

 这主要是沿着Y轴进行旋转,顾名思义就是垂直不动,肉眼看见的图形应该是左右翻转的效果,盗个图吧,作者看见别怪!

rotateZ(angle) 定义沿着 Z 轴的 3D 旋转。

 Z轴我个人的理解就是按照你设置的旋转原点,绕圈旋转下面就是x,y,z 轴的图解

链接描述

另外还有最重要的就是transform的矩阵matrix(n,n,n,n,n,n)里面的六个值分别代表不同的属性,这里就不说它,没啥好说的自己下去看看吧!!!

利用上一篇文章所讲的坐标来计算鼠标移动的时候计算角度

  1. 获取旋转元素的中心点

       设置默认旋转的中心X原点以及Y的中心原点,根据元素的位置计算,利用元素的width + 元素的偏移量 计算 旋转原点,鼠标点击时获取centerX = n.offsetLeft + n.offsetWidth / 2centerY = n.offsetTop + n.offsetHeight / 2
  2. 这里会用到计算弧度Math.atan2
  3. 获取旋转的角度centerx

       static angle (centerx, centery, endx, endy) {// 鼠标移动获取鼠标移动的e.client - 鼠标点击时的clientvar diff_x = endx - centerx, // 拿到计算弧度的差值diff_y = endy - centery// Math.atan2利用x,y坐标计算角度// 360 * Math.atan2(diff_y, diff_x) 映射到360度// 一个完整的圆的弧度是2π,所以:2π rad = 360°// / (2 * Math.PI) 转换成角度var c = 360 * Math.atan2(diff_y, diff_x) / (2 * Math.PI)// 其实在这里就分逆时针和顺时针旋转了,(360 + -c)逆时针// 如果为-90 = 360 + -90 ,如果为-80 = -80 + 90c = c <= -90 ? (360 + c) : c// 补上-90度的差值return c + 90}

    例如:

        centerx:40,centery:30 取的都是中心点的值endx: 80, endy: 60

元素跟随鼠标旋转,未待完续。。。。相关推荐

  1. unity 用四元素实现摄像机的跟随鼠标旋转,缩放

    此文章中的摄像机是第三人称游戏摄像机,脚本挂载在游戏人物身上 用四元素实现的unity摄像机跟随鼠标旋转缩放,并且有障碍物遮挡的时候摄像机会自动往前移. float MouseZ = -(Input. ...

  2. javascript元素跟随鼠标在指定区域运动

    元素跟随鼠标在指定区域运动通常是用在商城图片的放大镜中,下面是完整的Demo: <!DOCTYPE html> <html lang="en"> <h ...

  3. js进阶 12-3 如何实现元素跟随鼠标移动

    js进阶 12-3 如何实现元素跟随鼠标移动 一.总结 一句话总结:获取鼠标位置,将鼠标位置设置为元素偏移即可. 1.用什么事件获取鼠标位置? 用mousemove可以获取鼠标移动的时候的位置 $(d ...

  4. Unity——指针跟随鼠标旋转,GTA武器菜单选择等效果实现

    GTA武器菜单选择 简单实现这种效果 Demo的效果 以下是主要代码 using System.Collections; using System.Collections.Generic; using ...

  5. unity摄像机跟随鼠标旋转

    第一种 float vertical = Input.GetAxis("Mouse X") float horizontal = Input.GetAxis("Mouse ...

  6. 实现div在固定区域跟随鼠标移动点击拖动而产生的变化

    一.思路 1.在外层增加一个 DIV 容器,并设置好容器的大小.(即:宽和高) 当容器存在边框的时候,由于这里还没找到获取的方法,所以,在容器边框大于 0 的时候,获得的容器的限制区域的坐标会有误差. ...

  7. js-拖拽-div跟随鼠标的拖拽而移动

    拖拽: 鼠标按下目标区域---开始拖拽---onmousedown __并列__鼠标移动时候被拖拽的元素跟随鼠标移动-onmousemove _并列_ 当鼠标松开时,被拖拽的元素固定在当前位置onmo ...

  8. 在html上绑定touch,实现html元素跟随touchmove事件的event.touches[0].clientX移动

    主要是使用了transform:translateX 实现 newWaterChart * { padding:0; margin:0; -webkit-box-sizing: border-box; ...

  9. JavaScript基础13-day15【DOM增删改、DOM添加删除记录、操作内联样式、获取元素的样式、DOM Element 对象、滚动条练习、事件对象、div跟随鼠标移动、事件冒泡】

    学习地址: 谷粒学院--尚硅谷 哔哩哔哩网站--尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) JavaScript基础.高级学习笔记汇总表[尚硅谷最新版Ja ...

最新文章

  1. 太赞了:中文版开源!这或许是最经典的计算机编程教材
  2. 【每日一算法】罗马数字转整数
  3. vdi voi idv区别_VDI桌面虚拟化和IDV桌面虚拟化到底有哪些不同
  4. NanoPi NEO Air使用十五:移植RTL8723BU驱动
  5. 十一、Redis五大数据类型之三Set
  6. push_heap算法 (即满足max-heap条件,最大值在根节点)
  7. 【数学和算法】初识卡尔曼滤波器(五)
  8. Delphi替换PE图标资源
  9. Flink从入门到放弃之源码解析系列-第1章 Flink组件和逻辑计划
  10. java 中的单引号报错_shell中的单引号,双引号,反引号
  11. SpringBoot2.0 基础案例(07):集成Druid连接池,配置监控界面
  12. java-第五章-while=计算1~50中是7的被耍的数值之和
  13. 实战篇:教你建设企业销售分析系统
  14. 主成分分析spss_主成分分析
  15. 项目resource下文件读取失败
  16. python 读写西门子PLC例子
  17. 【python学习】如何批量从文件夹中根据文件后缀名提取文件,并存储到新的文件夹
  18. 我的高中时代──纪念1995年进入高中20周年
  19. 面向数据结构的分析设计方法(JSD)
  20. 【转】ESL和ESR的基本認識

热门文章

  1. 干货来袭!java核心技术卷一pdf
  2. python类添加方法以及pow和cmp的使用
  3. Skywalking微服务监控分析
  4. ubuntu合并终端_技术|初级:如何在终端及图形界面中更新 Ubuntu
  5. java 锁表后事务提交_关于synchronized锁在Spring事务中进行数据更新同步,仍出现线程安全问题...
  6. rpg制作大师2003_RPG制作大师MV 我们一起做游戏(十五)
  7. oracle+查表物理块数,查询Oracle表实际物理使用大小
  8. python编程词典_Python 字典(Dictionary)操作详解
  9. 读《学习JavaScript数据结构与算法》 第二章
  10. Java中的frontcolor_关于java:Color.red和Color.RED之间的区别