V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
meteor2013
V2EX  ›  问与答

能不能让 SVG 和 CANVAS 重叠使用呢?

  •  
  •   meteor2013 · 2015-08-21 03:01:27 +08:00 · 1569 次点击
    这是一个创建于 3382 天前的主题,其中的信息可能已经有所发展或是发生改变。
    4 条回复    2015-08-21 11:11:46 +08:00
    yyfearth
        1
    yyfearth  
       2015-08-21 09:12:45 +08:00
    没试过 不过觉得当然可以啦 除非浏览器实现有问题
    你把 canvas svg 两个 element 的 position 重叠在一起就是咯
    无非相当于把两个 image 重叠到一起了
    不过我觉得 canvas 应该在 svg 下面比较好
    另外不知道覆盖的情况如何
    ljbha007
        2
    ljbha007  
       2015-08-21 09:31:50 +08:00
    @yyfearth 肯定是 SVG 在上面 因为大多数 Canvas 的代码需要刷新画布 所以每次绘图前会覆盖背景色上去 这样就把 SVG 给挡住了
    learnshare
        3
    learnshare  
       2015-08-21 09:39:49 +08:00
    能,两个 position 调一下就是了,默认都是透明的
    w88975
        4
    w88975  
       2015-08-21 11:11:46 +08:00
    可以 我们就是这么做的,用 canvas 绘制一些刷新率比较高的底部组件,用 SVG 来与鼠标事件交互.

    不过现在我们也全部改成了 canvas,毕竟 SVG 效率低下,碰到很多节点的时候,渲染会非常慢,canvas 效率则是高了一个量级.

    SVG 和 canvas 的 position 设置为 absolute,宽高一样就行,覆盖在 canvas 上面.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2825 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 07:06 · PVG 15:06 · LAX 23:06 · JFK 02:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.