首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试

)y轴的位置; screenX:当鼠标事件发生时,鼠标相对于显示器屏幕x轴的位置; screenY:当鼠标事件发生时,鼠标相对于显示器屏幕y轴的位置; offsetX:当鼠标事件发生时,鼠标相对于事件源...style="white-space:pre"> --> 添加一点样式...margin: 50px; border: none; width: 100px;height: 50px;background: green; } 接下来是js...当我的鼠标放到浏览器有效区域的 0 ,0 处,clientX为0,clientY为0; 而screenX为0,screenY为85,因为鼠标在“浏览器有效区域”里的x坐标就是0,y坐标也是0,而鼠标在“...这个按钮就是事件源,所以通过offsetX和offsetY获取的坐标值就是相对于 test按钮这个事件源的; Test按钮自身的宽100px高50px;为了容易理解,我特意给按钮添加个margin:50px让大家看得效果明显一些

94040

深度剖析浏览器渲染性能原理,你到底知道多少

渲染流程 JavaScript:JavaScript实现动画效果,DOM元素操作等。 Style(计算样式):确定每个DOM元素应该应用什么CSS规则。...优化 JavaScript 的执行效率 降低样式计算的范围和复杂度 避免大规模、复杂的布局 简化绘制的复杂度、减少绘制区域 优先使用渲染层合并属性、控制层数量 对用户输入事件的处理函数去抖动(移动设备)...如果真的有特别耗时且不操作 DOM 元素的纯计算工作,可以考虑放到 Web Workers 中执行。...添加或移除一个 DOM 元素、修改元素属性和样式类、应用动画效果等操作,都会引起 DOM 结构的改变,从而导致浏览器需要重新计算每个元素的样式,对整个页面或部分页面重新布局,这就是所谓的样式计算。...对滚动事件处理函数去抖动 通过requestAnimationFrame可以对样式修改操作去抖动,同时也可以使你的事件处理函数变得更轻 function onScroll(evt) { // Store

1.3K20

原生JS | 导航底部横线跟随鼠标缓动

功能效果 功能需求明确 横向导航条; 当鼠标在导航区域当中左右移动时,横线跟随鼠标移动。...鼠标跟随特效 结构分析 与jQuery实现方法当中使用的结构有所不同,为了更好的获取标签,所以使用如下代码结构: 样式处理 样式方面与此前没有什么变化,依旧使用定位的思路来实现,此处不再重复给出样式代码...原生JS功能实现 功能代码解析 在该效果中,由于鼠标移入淡入或淡出的功能代码的原理与jQuery基本类似,所以不做重复书写,只实现导航底部跟随的效果。...当鼠标移入时,获取当前位置和目标位置,之后调用运动功能函数(move),需要注意的是,为了防止计时器的叠加,在开始新的运动之前需要先清除原有的计时器; 在运动函数(move)当中,有两个参数用于接收运动的起点和终点...数学对象 在JS当中,最小的单位为1像素,对于缓冲运动当中,所计算出的缓冲结果是存在小数的,这些小数需要计算为整数再做处理。

7.1K81

jquery 常用方法总结

可以采用json格式       addClass("myclass")(不影响其他样式)    class="c1 c2"       removeClass("myclass")移除样式      ...toggleClass("myclass")如果存在样式则去掉样式,如果没有样式则添加样式 .例子,做开关灯的时候       hasClass("myclass")判断是否存在样式   设置属性  ...enterfn,当鼠标离开时执行leavefn       toggle(fn1,fn2) 当鼠标第一次点击时执行fn1,第二次点击执行fn2,以后依次执行   事件参数       pageX、pageY...失去焦点   [搜索文本框效果]       获取对像的宽度和高度       var width = $(对像).width();       var height = $(对像).height();...  第四部分,动画    复杂动画可以解决其它动画实现的效果,所以个人觉得,只须记住复杂动画就可以了       show()、hide()       toggle()  切换显示隐藏

1.6K00

浏览器渲染原理及流程

异步http请求线程 在XMLHttpRequest在连接后是通过浏览器新开一个线程请求,将检测到状态变更时,如果设置有回调函数,异步线程就产生状态变更事件放到JS引擎的处理队列中等待处理。 2....优化渲染性能 结合渲染流程,可以针对性的优化渲染性能: 优化JS的执行效率 降低样式计算的范围和复杂度 避免大规模、复杂的布局 简化绘制的复杂度、减少绘制区域 优先使用渲染层合并属性、控制层数量 对用户输入事件的处理函数去抖动...长耗时的JS代码放到Web Workers中执行 JS代码运行在浏览器的主线程上,与此同时,浏览器的主线程还负责样式计算、布局、绘制的工作,如果JavaScript代码运行时间过长,就会阻塞其他渲染工作...4.2 降低样式计算的范围和复杂度 添加或移除一个DOM元素、修改元素属性和样式类、应用动画效果等操作,都会引起DOM结构的改变,从而导致浏览器要repaint或者reflow。...对滚动事件处理函数去抖动 通过requestAnimationFrame可以对样式修改操作去抖动,同时也可以使你的事件处理函数变得更轻 function onScroll(evt) { // Store

4.4K32

前端特效开发 | JS实现聚光灯看图效果

效果展示 2. 实现的原理分析 3. 案例实现 1. 效果展示 ? 如上的效果中,可以实现对查看的图片实现聚光效果。...实现的原理分析 2.1 结构与样式搭建 为了实现图片的的聚光效果,使用了ul>li来嵌套图片的结构,并且采用的是浮动布局,让多个列表项并排在一起;然后为页面的body增加黑色的背景,以期来增加聚光时的高亮状态...之后借助样式设置方法.css(),为列表项的每个列表设置当前图片的大小,使用对象.属性的方式取得前面对象中存储的值。...实现聚光灯效果,主要需要考虑两个方面,一个是鼠标移入时对选中的图片进行高亮展示,同时对其它未选中的设置前面对象中设置好的透明度值;另一方面需要考虑的是当鼠标移开图片时,需要移除高亮显示,并且回归原来的初始状态...<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.<em>js</em>

4.3K50

Qt 自定义 滚动条 样式

稍微好看一点点了吧,最后告诉你实现这个简单的效果在Qt只需要加几句简单的样式。下面就来吐槽吐槽,关于进度条样式的设置问题,欢迎评论交流,高手勿喷。   ...Qt设置样式的方式有两种,一种直接在程序中写,适用于样式不多的情况;另一种,写入到文件中,适用用样式较大且需要提供换肤功能的情况。   ...min-height:20; } QScrollBar::handle:vertical:hover { width:8px; background:rgba(0,0,0,50%); // 鼠标放到滚动条上的时候...border-image:url(:/images/a/1.png); subcontrol-position:top; } QScrollBar::add-line:vertical:hover // 当鼠标放到下箭头上的时候...border-image:url(:/images/a/4.png); subcontrol-position:bottom; } QScrollBar::sub-line:vertical:hover // 当鼠标放到下箭头上的时候

3.5K10

手写原生代码专题 | 图片拖拽效果(一)

一、系列介绍 前端的小伙伴们,我想大多数都是颜值控吧,看到一个漂亮或新奇的效果,都想搞明白是怎么实现的吧。...二、 图片拖拽效果介绍 本篇文章,如下视频所示,界面有5个方格拖放区域,我们可以在这些区域里拖拽图片,当鼠标拖动图片时,图片周围有灰色的粗边框效果提示用户当前元素可拖动,在可放置图片的目标方格会出现白色的虚线边框并且背景色更改为黑色...drag(dragstart 事件触发后,只要元素还在被拖动时,就会持续触发 drag 事件,类似 mouseover,随着鼠标移动而不断触发) dragend(当拖动元素的动作停止时即松开鼠标时,放到目标位置或非目标位置...如果被拖动元素,还在目标元素内持续拖动,会持续触发此事件) dragleave 或 drop(当被拖动的元素,放置在目标之外,dragover事件就会立即停止,触发dragleave事件;如果被拖动元素被放到了目标上...,则会触发drop事件) 四、开始编写代码 复习完基础知识后,我们来开始动手实践吧,我们依次创建3个文件 index.html,style.css,script.js,然后在 index.html 文件里引入样式和脚本文件

2.2K30
领券