美文网首页
VUE+ELECTRON模拟窗口吸附效果

VUE+ELECTRON模拟窗口吸附效果

作者: Alui | 来源:发表于2022-12-23 08:25 被阅读0次

APP.VUE

        mounted() {
            document.body.addEventListener('mouseenter', res => {
                ipcRenderer.send('adsorbent')
            })
            document.body.addEventListener('mouseleave', res => {
                console.log('离开窗体')
                ipcRenderer.send('adsorptionEcho')
            })
        },

渲染层

  <div class="hello" @mousedown="mousedown">
      HelloWorld
  </div>
        mousedown(e){
              this.isKeyDown = true 
              this.dinatesX = e.x
              this.dinatesY = e.y
                
              document.onmousemove = (ev) => {
                  if(this.isKeyDown){
                    const x = ev.screenX - this.dinatesX
                    const y = ev.screenY - this.dinatesY
                    //给主进程传入坐标
                    let data = {
                        appX:x,
                        appY:y
                    }
                    ipcRenderer.send('custom-adsorption',data)
                  }
              };
              document.onmouseup = (ev) => {
                  this.isKeyDown = false
              };
        },

主进程

//adsorbent  
ipcMain.on('adsorbent', (e, data) => { 
    if(adsorptiveState && win.getPosition()[0] == 1910){
        win.setPosition(1300,win.getPosition()[1]);
        adsorptiveState = false
    }
})
 
//adsorptionEcho 
ipcMain.on('adsorptionEcho', (e, data) => { 
    if(!adsorptiveState && windowStatus && win.getPosition()[0] == 1300){
        win.setPosition(1910,win.getPosition()[1]);
        adsorptiveState = true
    }
})

//吸附
ipcMain.on('custom-adsorption',(event,res) => {
    let x = res.appX;
    let y = res.appY;
    console.log(x,y)
    if(x > 1500 && !adsorptiveState){
        win.setPosition(1910,y); 
        adsorptiveState = true
        windowStatus = true
    } else{
        if(!adsorptiveState){
            win.setPosition(res.appX,res.appY)
        }
    }
})

效果


预览效果.gif

相关文章

  • 【Unity】自己做一个console窗口

    效果 功能 显示Log,以及堆栈信息 console窗口开关 console日志上下吸附开关 窗口拖拽 EasyL...

  • css简单动效

    简单的css3动效 直接上代码 摆钟 景色动效 相册 模拟ios手机相册吸附效果

  • iOS开发之UIKit Dynamics学习心得

    在iOS7上新增加了UIKit Dynamic,它能够让UIView模拟逼真的物理效果。如重力,碰撞,弹簧,吸附等...

  • iOS 吸附悬浮按钮实现

    实现按钮吸附在屏幕左右两侧效果 效果图 代码

  • 活性炭吸附塔

    活性炭吸附塔式处理有机废气、臭味处理效果显著的净化设备。活性炭吸附塔能对苯、醇、酮、酯、汽油等有机溶剂的废气吸附回...

  • 菜鸟日记 -- axure8 顶部导航吸附

    效果展示 1. 准备元件:可滚动的动态面板 & 吸附导航 2. 隐藏【吸附导航】 3. 给【滚动区面板】添加【滚动...

  • css速记之属性(-)

    positionsticky(吸附效果)absolute绝对定位的元素,在top, left, right, bo...

  • React-Native模拟器不能刷新和调出菜单问题

    模拟器初始效果⤵️: 模拟器刷新效果⤵️: 模拟器调试菜单效果⤵️: 第一次使用无法通过command + R调用...

  • pygame

    一、创建窗口 创建的窗口如下: 窗口中显示文字 三、窗口中显示图片 运行效果: 四、显示图形 运行效果: 五、动画原理

  • Flutter吸附效果如何实现?

    本文多图预警,请注意在wifi下观看O(∩_∩)O~~很多软件都有吸附顶部的效果,一图胜千言(这里偷懒,使用的是简...

网友评论

      本文标题:VUE+ELECTRON模拟窗口吸附效果

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