首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    HTML DOM的各种宽高、偏移位置的属性总结

    Event事件对象 1.clientX和clientY 这对属性是当事件发生时,鼠标点击位置相对于浏览器(可视区)的坐标,即浏览器左上角坐标的(0,0),该属性以浏览器左上角坐标为原点,计算鼠标点击位置距离其左上角的位置...2.screenX和screenY 事件发生时鼠标相对于屏幕的坐标,以设备屏幕的左上角为原点,事件发生时鼠标点击的地方即为该点的screenX和screenY值,如下所示:可以看到尽管浏览器窗口被缩到很小...3.offsetX和offsetY 这一对属性是指当事件发生时,鼠标点击位置相对于该事件源的位置,即点击该div,以该div左上角为原点来计算鼠标点击位置的坐标,如下所示: 可以看到,点击该div的靠近左上角处...event.layerY,所以需要兼容浏览器时,获取鼠标点击位置相对于事件源的坐标的兼容写法为var disX=event.offsetX||event.layerX....在mousemove中使用offsetXoffsetY有可能会导致的问题 offsetX 表示鼠标指针位置相对于触发事件的对象的 x 坐标。

    1.9K30

    【动画进阶】神奇的 3D 卡片反光闪烁动效

    这个交互效果主要有两个核心: 借助了 CSS 3D 的能力 元素的旋转需要和鼠标的移动相结合 我们的目标是实现这样一个动画效果: 这里,我们其实有两个核心元素: 鼠标活动区域 旋转物体本身 鼠标在鼠标活动区域内的移动...Y 轴移动,并且值从 0 开始,越来越小,范围为(-∞, 0)deg 这样,我们可以得到这样一个公式: rotateY = (鼠标 x 坐标 - 元素左上角 x 坐标 - 元素宽度的一半)deg 通过绑定...-1; 结合 X、Y 方向的移动 OK,到这里,我们只需要把上述的结果合并一下即可,同时,上面我们使用的是 onmousemove 触发每一次动画移动。...现代 Web 动画中,我们更倾向于使用 requestAnimationFrame 去优化我们的动画,确保每一帧渲染一次动画即可。...,还有最后一个问题,就是当我们的鼠标离开活动区域时,元素的 transform 将停留在最后一帧,正确的表现应该是复原到原状。

    49020

    网页精美动效动画制作 按钮鼠标悬浮动效的注意点 02《炫彩网页 iVX 无代码动效动画制作》

    一、按钮动效的使用 在上一节中,我们创建了一个动效,但是并没有使用,在此我们给按钮设置一个悬浮事件,当鼠标悬浮在按钮之上后就调用该动效,点击按钮添加事件: 点击按钮添加事件后将会出现一个事件编辑框...,在事件编辑框中,选择触发时间为鼠标移入: 随后使用箭头选择对应的动效对象: 随后在选择动作时对应的选择重新播放即可: 此时将会出现一个回调时间,并不用理会: 最后点击预览按钮即可...: 二、动效需要注意的情况 此时我们预览后发现效果如下: 此时发现动效是有了,但是移动的感觉不是很对,我们再到这个按钮周围添加对应的按钮查看一下效果: 效果如下: 接着我们查看绝对项目下的动效使用...我们只需要使用事件即可更改: 在这里只需要在动效播放完毕后,在对应的动作中设置当前按钮的宽高即可,预览之后效果如下: 此时当鼠标移出并不会使其大小恢复,只需要增加一个动效,设置鼠标移出时返回其大小即可...,首先编辑动效,设置初始关键帧为变化时的宽高: 接着设置最后一个关键帧为第一次鼠标悬浮进入第一次按钮时的宽高: 接着选择按钮添加事件: 在鼠标移出事件中使用鼠标悬浮出的按钮的动效即可

    74110

    基于three.js的3D粒子动效实现 顶

    three.js是用JavaScript编写的WebGL的第三方库,three.js提供了丰富的API帮助我们去实现3D动效,本文主要介绍如何使用three.js实现粒子过渡效果,以及基本的鼠标交互操作...attributes的position属性设置为true,用来提醒场景需要更新,在下次渲染时,render会使用最新计算的值进行渲染。...调用自定义的循环动画执行函数 animate,利用requestAnimationFrame方法进行逐帧渲染。...添加鼠标操作事件实现角度控制 我们还可以添加鼠标操作事件实现角度控制,其中winX、winY分别为window的宽高的一半,当然具体的坐标位置可以根据自己的需求进行计算,具体的效果如下图所示。...当粒子数量极为庞大时,想要实现较为流畅的动画效果需要注意优化代码、减少计算等,也可以通过提升硬件配置来达到效果。

    6.7K11

    如何用原生 JS 复刻 Bilibili 首页头图的视差交互效果

    本文将一步步介绍整个制作思路,讲解涉及的相关知识点,干货非常多,搬好你的小板凳,咱们话不多说直接开摸吧。...,所有图片应该都会紧紧跟随鼠标的位置而变化了,但在浏览器中,我们通常不会这么执行动画,而是采用 requestAnimationFrame 来辅助执行,它会通过浏览器的刷新频率来调度动画帧,自动以最佳的性能进行渲染...// 动画持续时间(毫秒)function leave() { startTime = 0; // 离开时初始值归零 requestAnimationFrame(homing); // 开始回弹动画...我们依旧使用 animate 函数进行动画操作,为它传入 progress 参数,后面判断当 isHoming 为 true 时即执行回正动画:function homing(timestamp) {...欢迎在评论区说说你的想法~图片最后让我们来回顾下,虽然整体效果看上去似乎也不算难,但本文知识点还是蛮多的,首先是如何利用鼠标事件计算以及执行动画;知道了什么是矩阵变换以及如何使用它实现平移旋转缩放等操作

    62060

    HTML5 Canvas开发详解(7) -- 高级动画

    用户交互 用户交互,指的是用户可以借助鼠标或键盘参与到Canvas动画中去,来实现一些互动的效果。这节主要基于鼠标事件来实现一些用户交互功能。...1.1 捕获物体 1.1.1 矩形的捕获 可以通过获取鼠标点击时的坐标来判断是否捕获了矩形。...如果鼠标点击坐标落在矩形上,则说明捕获了这个矩形;如果鼠标点击坐标没有落在矩形上,则说明没有捕获到这个矩形。...(mousedown)时,判断鼠标坐标是否落在物体上面,如果落在,就添加两个事件(mousemove和mouseup); 2)移动物体:在鼠标移动(mousemove)中,更新物体坐标为鼠标坐标; 3)...松开物体:在鼠标松开(mouseup)时,移除mouseup事件和mousemove事件。

    1.2K30

    基于 three.js 的 3D 粒子动效实现

    three.js是用JavaScript编写的WebGL的第三方库,three.js提供了丰富的API帮助我们去实现3D动效,本文主要介绍如何使用three.js实现粒子过渡效果,以及基本的鼠标交互操作...attributes的position属性设置为true,用来提醒场景需要更新,在下次渲染时,render会使用最新计算的值进行渲染。...调用自定义的循环动画执行函数 animate,利用requestAnimationFrame方法进行逐帧渲染。...添加鼠标操作事件实现角度控制** 我们还可以添加鼠标操作事件实现角度控制,其中winX、winY分别为window的宽高的一半,当然具体的坐标位置可以根据自己的需求进行计算,具体的效果如下图所示。...当粒子数量极为庞大时,想要实现较为流畅的动画效果需要注意优化代码、减少计算等,也可以通过提升硬件配置来达到效果。

    7.5K30

    【动画进阶】极具创意的鼠标交互动画

    利用混合模式实现叠加效果 整个效果,比较核心的一块便是当鼠标 Hover 上去时,整个元素叠加上一层黑色图层,但是呈现了不一样的叠加效果。...利用 cursor 修改鼠标样式 cursor CSS 属性设置鼠标指针的类型,在鼠标指针悬停在元素上时显示相应样式。...及相对页面右上角的坐标 由于模拟的鼠标元素,本身就是绝对定位,因此,可以通过第(3)步的计算,设置模拟的鼠标元素新的高宽及绝对定位坐标,并且其坐标不再随鼠标指针的变化而变化 只有当鼠标指针离开目标元素...而放大吸附动画其实也很简单,其核心就是在 mouseover 时,计算出目标元素的坐标及高宽,再设置需要放大的外圈鼠标元素的新的 width、height、border-radius、transform...同时,让其不再跟随真实的鼠标运动而运动。 在 mouseout 时,复原外圈鼠标元素的大小及恢复其跟随真实的鼠标运动而运动。

    61410

    JavaScript动画 —— 弹动动画

    由于受到摩擦力的影响,反复几次后,小球的运动逐渐慢下来,停在目标点上。 一. 一维坐标上的弹动 1 . 首先需要一个变量存储弹性比例系数,取值为0~1,较大的弹性比例常熟会表现出较硬的弹簧效果。...如果我们想让小球同时在x轴和y轴上运动,就需要引入二维坐标上的弹动。事实上很简单,只需要把目标点、速度和加速度扩展到二维坐标系上即可。...目标点移动的弹动 目标点移动,我们很容易就想到把鼠标当成目标点。在上一篇介绍缓动动画时,有一个小球跟随鼠标的缓动动画。...让小球跟随鼠标弹动同样很简单,只要把targetX和targetY替换为当前坐标即可。效果很炫酷,但是代码基本没变。...总结 弹动和缓动非常类似,都是使用循环函数逐帧绘制从当前位置到目标位置的运动效果。不同的是缓动是指速度与距离成比例,而弹动是加速度与距离成比例关系。

    1.8K00

    Canvas之鼠标滑动特效

    例如,它可以用于绘制图形、制作照片、创建动画,甚至可以进行实时视频处理或渲染。...但是图像一直是静态的,人们越来越希望在其网站和应用程序中使用动态媒体(如音频、视频和交互式动画等),于是 Flash 就出现了。...案例-鼠标滑动效果 了解了canvas之后,我们使用新标签搭配原生JS,实现一个简单的页面特效 ------ 鼠标滑动效果,如下所示: 页面搭建 <!...myCanvas.height = window.innerHeight; }; init(); 监听 window.onresize = init; // 监听屏幕大小改变 重新为canvas大小赋值 移动事件 // 当鼠标移动时...将鼠标坐标传入构造函数 同时创建一个对象 myCanvas.addEventListener('mousemove', function (e) { // 将对象push到数组中,画出来的彩色小点可以看作每一个对象中记录着信息

    2.3K10

    有意思的鼠标跟随 3D 旋转动效

    今天,群友问了这样一个问题,如下所示的鼠标跟随交互效果,如何实现: 简单分析一下,这个交互效果主要有两个核心: 借助了 CSS 3D 的能力 元素的旋转需要和鼠标的移动相结合 本文,就将讲述如何使用纯...: rotateY = (鼠标 x 坐标 - 元素左上角 x 坐标 - 元素宽度的一半)deg 通过绑定 onmousemove 事件,我们尝试一下: const mouseOverContainer...-1; 结合 X、Y 方向的移动 OK,到这里,我们只需要把上述的结果合并一下即可,同时,上面我们使用的是 onmousemove 触发每一次动画移动。...现代 Web 动画中,我们更倾向于使用 requestAnimationFrame 去优化我们的动画,确保每一帧渲染一次动画即可。...现在,还有最后一个问题,就是当我们的鼠标离开活动区域时,元素的 transform 将停留在最后一帧,正确的表现应该是复原到原状。

    1.2K31

    three.js 新手指南

    你也可以使用鼠标滚轮进行缩放。 ?...创建相机之后,我们使用 XYZ 坐标设置位置。默认为 0,0,0 但我将 Y 值设置为 6,为了让视图与网格之间有一些距离。 最后,我们需要将相机添加到场景中。...渲染场景 初始化函数之后,我们需要完成动画函数。这里似乎没有传统意义上的“动画”,但当相机焕然网格时我们的确需要重新绘制。...requestAnimationFrame() 是浏览器一个新的 API,将重绘委托给浏览器。它有许多的有点,但主要的优点是它能够确保不在当前选项卡时浏览器不会绘制不必要的动画。...WEB前端性能优化常见方法 一小时内搭建一个全栈Web应用框架 干货:CSS 专业技巧 四步实现React页面过渡动画效果 让你分分钟理解 JavaScript 闭包 ---- ---- 小手一抖,

    8.4K20

    前端高性能滚动 scroll 及页面渲染优化

    加之用户鼠标滚动往往是连续的,就会持续触发 scroll 事件导致掉帧扩大、浏览器 CPU 使用率增加、用户体验受到影响。...JavaScript:一般来说,我们会使用 JavaScript 来实现一些视觉变化的效果。比如做一个动画或者往页面里添加一些 DOM 元素等。...,那么可以使用浏览器的原生方法 rAF(requestAnimationFrame)。...rAF 常用于 web 动画的制作,用于准确控制页面的帧刷新渲染,让动画效果更加流畅,当然它的作用不仅仅局限于动画制作,因为同时它也是一个定时器。...pointer-events: none 可用来提高滚动时的帧频。的确,当滚动时,鼠标悬停在某些元素上,则触发其上的 hover 效果,然而这些影响通常不被用户注意,并多半导致滚动出现问题。

    2.8K30

    移动端滚动研究

    在使用模拟滚动时,浏览器在js层面会消耗更多的性能去改变dom元素的位置,在dom复杂层级深的页面更为高,所以在长列表滚动时还要使用正常滚动更好。...tranlateY值,将两者同时位移来将下拉刷新元素显示出来,手指离开时(touchend)收回,这种方案满足了在正常列表滚动时使用原生的滚动节省性能,只在下拉刷新时使用模拟滚动来实现效果。...使用rAF(requestAnimationFrame)触发滚动事件 如果页面只需要兼容高版本浏览器或应用在移动端,又或者页面需要追求高精度的效果,那么可以使用浏览器的原生方法 rAF(requestAnimationFrame...rAF 常用于 web 动画的制作,用于准确控制页面的帧刷新渲染,让动画效果更加流畅,当然它的作用不仅仅局限于动画制作,我们可以利用它的特性将它视为一个定时器。...滑动过程中尝试使用 pointer-events: none 禁止鼠标事件 pointer-events 是一个 CSS 属性,可以有多个不同的值,大概的意思就是禁止鼠标行为,应用了该属性后,譬如鼠标点击

    3.6K20
    领券