美文网首页
关于拖动盖章实现的方式

关于拖动盖章实现的方式

作者: 吴高亮 | 来源:发表于2018-12-24 22:53 被阅读0次

    这个背景是因为我们公司要做一个金融项目;有这样的一个需求;就是盖章的位置不同;也就是没办法定死在第几页;或者那个关键位置盖章;还有另外一点就是增加一个参与感;

    首先说遇到的技术点:

    • pdf方面;一般上传的就是用pdf;因为他的不可更改性;当然前端需要做的就是pdf的预览;我用到了pdf.js进行了封装;并在npm的官网上传了;大家可以下载下来就行尝试使用;需要改造成为自己想要的[https://www.npmjs.com/package/vuepdflook]
      npm install vueshowpdf -D
    • 另外就是怎么和服务端协定盖章的位置;因为在浏览器中咱们用到的是px;用户拖动过;没没办法扫描到关键字;没办法的时候就想想自己有什么;能那这些做些什么;
      我有这个章拖动过的位置;我有当前正在预览的pdf的第几页;也知道;这个pdf在页面中显示的位置;于是就有了先看几个基础的概念;
      首先是元素在页面中的位置怎么进行相对定位;对;相对;有了相对的话;无论你是厘米\px\rem;进行相对后;单位就消除掉了;然后剩余就是值;
      继续基础概念;
      1:偏移量
      offsetHeight:元素在空间上占用的额空间大小[元素的高度\滚动条\边框\内边距]
      offsetWidth:这个水平的高度;
      offsetLeft:元素左边边框到父级左边的中间的间距;
      offsetTop: 元素上边边框到父级上边的中间的间距;
      这个图是真的挺好;
      image.png ;
      2客户区大小;
      clientWidth;和clientHeight;都是都是不包含边框的;
      image.png ;
      3:滚动大小
      scrollHeight:在没有滚动条的情况下;元素内容的总高度;
      scrollWidth:同样;总宽度;
      scrollLeft:被隐藏在内容区域左侧的像素;可以用这个改变元素滚动的位置;
      scrollTop:同样;可以改变元素滚动的上下的位置;
      下面的图也很有用
      image.png ;
      有用 ;

    接下来我需要详细的知道:pdf文档距离浏览器左边的距离;pdf元素的宽度;pdf的高度;pdf距离浏览器上面的高度;offsetTop;offsetLeft;以及offsetHeight offsetWidth;

    r然后获取拖动章的元素的top;left;对这样也涉及到拖动章的事件;这个网上多找一个
    接下来计算公式就出来了

    var  pH=offsetHeight;//pdf元素的高度;
    var  pW=offsetWidth;//pdf元素的宽度;
    var  PBtop=offsetTop;//pdf距离顶部的距离;
    var  PBleft=offsetLeft;//pdf距离左边的距离
    var sTop=top;//拖动过章(固定定位)的距离浏览器中的距离;
    var sLeft=left;//通动过章距离左边的距离
    公式
    x%=(sLeft-PBleft)/pW;算出x在pdf的左右百分处;
    y%=(sTop-PBtop)/pH;算出y在pdf的上下百分处;
    搞定;中间还要细化;明天把DEMO奉上
    
    
    

    相关文章

      网友评论

          本文标题:关于拖动盖章实现的方式

          本文链接:https://www.haomeiwen.com/subject/tbutlqtx.html