节点悬浮窗打开

feicaixian 2022-5-11 705

插件功能:shift+鼠标悬停,悬浮窗打开折叠节点,同预览链接。

预览折叠内容,减少折叠展开操作。

 

插件代码

pluginManager.register("dlg_open", {
    run() {
        function close(i, n=200) {
                    e = !1,
                    setTimeout((()=>{
                        e || (t = !1,
                        P.hover.close(i.topicData.ky))
                    }
                    ), n, "hide-hover-popup")
                }
        
        let ckey = "shiftKey ctrlKey";
        const n = "[nel=dom].node-foldup";
        mouseKeyEvt({
            selector: n,
            key: ckey,
            async callback({pageX: n, pageY: a}) {
                if (jutil.browser.isMobile())
                    return;
                if ("no" === P.config.topictableHoverPreview && $(this).is("#topic-table-rows *"))
                    return;
                if (await jsleep(10),
                !this._mousemove)
                    return;
                const s = this;
                
                this._mousemove = !1,
                e = !0;
                let r = isEmpty(P.config.hoverSeconds) ? .15 : parseFloat(P.config.hoverSeconds);
                ckey && (r = 0),
                delayAction((async()=>{
                    const cur_node_ky = $(this).attr("ky");
                    var cur_node_data=P.memory.get(cur_node_ky);
                    P.hover.closeAll(this);
                    const m_dialog = P.hover.popup(cur_node_data);
                    
                    if (!m_dialog)
                        return;
                    this.dialog = m_dialog;
                    let pos = "right-middle";
                    let port = $("[ky=" + cur_node_ky + "] .icon-circle.node-btn");
                    m_dialog.$view.snapTo(pos, port);
                    let right_side = m_dialog.$view.offset().left+150;
                    let left_side = m_dialog.$view.offset().left+20;
                    let cursor_x = (n>right_side)?right_side:(n<left_side)?left_side:n+5;
                    
                    m_dialog.$view.offset({
                        left: cursor_x,
                    });
                    m_dialog.$view.offset().left + m_dialog.$view.width() > $(window).width() && m_dialog.$view.offset({
                        left: $(window).width() - m_dialog.$view.width()
                    });
                    const l = $(this).parents(".node,.topic-table-row")
                      , d = l.width() + l.offset().left;
                    m_dialog.$view.offset().left > d && m_dialog.$view.offset({
                        left: d
                    }),
                    until((()=>m_dialog.$view && m_dialog.$view.offset().top + m_dialog.$view.height() > $(window).height()), (()=>{
                        m_dialog.$view.offset({
                            top: $(window).height() - m_dialog.$view.height() - 15
                        })
                    }
                    ), 3e3),
                    until((()=>m_dialog.$view && m_dialog.$view.offset().top < 0), (()=>{
                        m_dialog.$view.offset({
                            top: 3
                        })
                    }
                    ), 3e3),
                    m_dialog.$view.attr("theKy", cur_node_data.ky),
                    m_dialog.$view.on("mouseenter", (function() {
                        e = !0;
                    }
                    )).on("mouseleave", (function() {
                        close(m_dialog);
                    }
                    ))
                }
                ), 1e3 * r)
            }
        }),
        EVT(n, {
            mousemove_dlgopenMoveTrue() {
                $(this).css("cursor", "context-menu"),
                this._mousemove = !0
            },
            mouseleave_dlgopenPreventPreview(e) {
                t === e.target && (t = !1),
                this.dialog && close(this.dialog)
            },
            mousedown_dlgopenHidePreview(e) {
                t === e.target && (t = !1),
                this.dialog && close(this.dialog, 0)
            }
        })
    }
});
快速回复
最新回复 (9)
  • 加佳 2022-5-11
    1 2
    大佬,666
    折点节点能悬浮窗简直棒
  • 加佳 2022-5-11
    2 3

    ctrl+左键点击,可以让搜索的节点直接悬浮窗打开


    还有这里 http://club.roamedit.com/club/?thread-926.htm Hardy给过一个悬浮窗菜单,不知道和现在的冲不冲突

     

    想单独求一个折点节点shift+悬浮可以悬浮窗显示,这个刚需,跪求

  • feicaixian 2022-5-12
    2 4
    加佳 ctrl+左键点击,可以让搜索的节点直接悬浮窗打开 还有这里 http://club.roamedit.com/club/?thread-926.htm Hardy给过一个悬浮窗菜单,不知道和现在的 ...
    谢谢告知哦~  帖子已更新,代码只有折叠节点悬停预览功能。
  • Jasleen 2022-5-30
    1 5
    有时可以有时不行,经常shift+鼠标悬停呼不出悬浮窗
  • feicaixian 2022-5-31
    2 6
    Jasleen 有时可以有时不行,经常shift+鼠标悬停呼不出悬浮窗
    可能是因为插件没有加载,出现无效情况需重新安装插件,即可呼出悬浮窗
  • Jasleen 2022-5-31
    1 7
    feicaixian 可能是因为插件没有加载,出现无效情况需重新安装插件,即可呼出悬浮窗
    嗯嗯好。这个插件是真的强👍
  • feicaixian 2022-5-31
    1 8
    Jasleen 嗯嗯好。这个插件是真的强👍
    谢谢~ 感谢加佳提出折叠预览idea
  • Jasleen 2022-6-1
    1 9
    加佳 ctrl+左键点击,可以让搜索的节点直接悬浮窗打开 还有这里 http://club.roamedit.com/club/?thread-926.htm Hardy给过一个悬浮窗菜单,不知道和现在的 ...
    感谢 这个用法!
  • Jasleen 2022-6-1
    2 10
    用SHIFT+ESC也可以随意呼出节点变成悬浮窗✔
返回