首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取图片的位置(距离顶部

老规矩,先说需求: 需求是想要获取到图片的位置,然后根据图片的位置添加一个按钮 点击这个按钮 获取图片的信息 正常来讲 这样的需求 先获取dom 再遍历dom 往里面塞按钮就可以了 但是,考虑各型各色的网站限制和...dom变化,这样就有很多问题, 所以就需要根据图片的当前位置(元素距离顶部的位置(包括滚动条),和左边的位置)来动态的添加这个按钮 因为是hover触发的 所以这个按钮只有一个 (这样的做法是参考阿里以图搜图的功能做的...) ok 需求明白了之后 开始说怎么做 先说公式代码:( top: 图片距离顶部的高度+滚动条的高度,left:图片距离左侧的高度) 1.滚动条的高度     // 获取 当前 滚动条的长度, 水平 ... ||             document.body           ).scrollTop;         }         return { x, y };       } 2.图片距离上...、左的距离:(主要方法:dom.getBoundingClientRect)       // 获取 dom 视口左侧和顶部的相对位置       function getDomToViewPosition

2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    js获取各种距离和宽高

    鼠标event事件 属性 说明 offsetX 以当前的元素的左上角为原点, 距离元素顶部距离 offsetY 以当前的元素的左上角为原点, 距离元素左侧的距离 clientX 以浏览器窗口(...视口)的左上角为原点, 距离视口顶部距离, 不随页面滚动而改变 clientY 以浏览器窗口(视口)的左上角为原点, 距离视口左侧距离, 不随页面滚动而改变 pageX 以整个页面的左上角为原点, 距离页面顶部距离..., 随页面滚动而改变 pageY 以整个页面的左上角为原点, 距离页面左侧的距离, 随页面滚动而改变 screenX 以计算机显示屏屏幕左上角为原点, 距离屏幕顶部距离 screenY 以计算机显示屏屏幕左上角为原点...'px', 为字符串类型) 距离 属性 说明 offsetTop/Left 元素距离最近的带有定位(fixed/relative/absolute)的父元素的顶部/左侧的距离 scrollTop/Left...此属性可以获取或者设置对象的最顶部对象在当前窗口显示的范围内的顶边/左侧的距离,也就是元素滚动条被向下/向右拉动的距离

    23110

    Fabric.js 拖放元素进画布

    解2:Fabric.js 创建元素可看 《Fabric.js 从入门膨胀》的基础图形篇,要创建图片可以看 图片篇。 解3:缩放画布我在 《Fabric.js 缩放画布》 里讲解过。...const delta = opt.e.deltaY // 滚轮,向上滚一下是 -100,向下滚一下是 100 let zoom = canvas.getZoom() // 获取画布当前缩放值...我的做法是通过 canvas 元素的 getBoundingClientRect() 方法返回的对象中获取到 top 和 left 两个数据。...这两个数据就是 canvas 元素距离页面顶部和左侧的距离。 然后通过鼠标当前坐标减去 canvas 距离页面顶部或左侧的距离,计算出鼠标点击画布的真实坐标。...canvas.on('drop', function(opt) { // 画布元素距离浏览器左侧和顶部距离 let offset = { left: canvas.getSelectionElement

    3.2K30

    前端性能优化之防抖与节流,大幅度降低你的事件处理性能

    但是我们的目的可能只是想获得滚动停下来以后导航栏距离文档顶部距离, 我们并不需要滚动停止前那过程中变化的距离, 如果一直在滚动时去获取距离,这非常影响性能,这是我们就需要用到 防抖和节流了。...那么防抖,就是我们滚动页面,刚要获取导航栏离文档顶部距离,但是发现等会还要继续滚动,那么就先不获取了,等什么时候停止滚动了,再获取这个距离。...(2)使用 为了解决我们正文刚开始那个例子中,频繁获取导航栏离文档顶部距离的现象,我们可以用一个setTimeout定时器来完成防抖功能 // 这里我们只修改js代码,其他都不变 ...这里我们同样把 ’ 跑步 ’ 看作是 滚动页面的操作, 把 ’ 擦汗 ’ 看作是获取导航栏离文档顶部距离的操作。...那么,节流就是, 我们滚动页面,获取了一下导航栏离文档顶部距离, 此时我们一直在滚动页面, 只不过我们刚获取距离了,就先不获取了, 等距离上一次获取几秒后,我们再获取一次吧。

    1.6K20

    HTML+JS实现简单贪吃蛇游戏

    然后是js代码,首先获取snake的div: var snake = document.getElementById("snake"); 判断按钮,把方向记录下来(wasd、上左下右): //这里的direction...这里就需要使用定时器: //这个的move方法是自己定义的 time = setInterval(move, 200); 然后说一下move方法,先获取snake的div,然后获取div距浏览器上面和左边的距离...: //获取div var snake = document.getElementById("snake"); //获取div顶部距离 var top_length = snake.offsetTop...; //获取div离左边的距离 var left_length = snake.offsetLeft; 然后判断方向移动,这里就写一个方向,其他的也差不多: //根据先前保存的direction,分辨方向...> 0){ //每次向上移动10px top_length -= 10; //改变snake距顶部距离

    4.1K20

    从零开始学 Web 之 BOM(四)client系列

    id="dv"> console.log(...因为当我们滚动滑轮的时候,鼠标距离页面顶部距离改变了,但是 clientY 是可视区域的大小,滚动滑轮的时候, clientY 的大小是没有变的,但是鼠标距离页面顶部距离改变了,而图片在 Y 轴的距离计算还是按照...事件参数 e 有连个属性:pageX,pageY 是距离页面顶部边界的距离,可以直接使用,但是不幸的是,IE8 又不支持。看来,只能是鼠标移动的距离 + 滑轮卷曲出去的距离来实现了。...="common.js"> // 获取所有的元素 // 获取 box var boxObj = my$("box"); // 获取...3、鼠标点击的时候获取鼠标的位置。 4、鼠标滑动的时候计算坐标 y。由于要保证鼠标移动的时候,鼠标相对滑动条顶部距离一定,所以需要 spaceY。还需要注意滑动条滑动的范围。

    82920

    前端实现伸缩框

    比如这样我们设定 resize: both; resize both :root { --primary-color: #3498db...JS 实现伸缩框 我们的思路是这样子的: 实现右下角的三角拖动图标 计算伸缩框距离左边和顶部距离 监听鼠标的点击、拖动、抬起事件,记录鼠标当前相对视窗左上角点的左侧距离顶部距离 计算鼠标距离边框左侧的距离...,即边框的新宽度 计算鼠标距离边框顶部距离,即边框的新高度 限定边框的最小距离,防止 icon 拖动隐藏 我们需要跟浏览器的事件打交道,这里引入 RxJS ,(当然,读者可以手写原生 javascript...当然,我们还需要通过 event.clienX 和 event.clientY 获取当前鼠标距离可视窗口的坐标(clientX, clientY)。..."> 类名为 icon-resize 的元素是用来实现右下角的三角图标的,这里我们结合 css 中的伪元素来实现: :root { --primary-color: #3498db

    25010
    领券