代码之家  ›  专栏  ›  技术社区  ›  Kitson

滚动时保持SVG对象静态

  •  9
  • Kitson  · 技术社区  · 15 年前

    • 生成两个单独的SVG,一个是“标题”,一个是内容,然后简单地用两种不同的HTML显示它们 <div> 元素,允许较低的元素滚动。我不喜欢这个想法,因为我必须生成两个单独的文档。

    • 在SVG本身中使用ECMAScript,并找到一种浮动 <g>

    4 回复  |  直到 6 年前
        1
  •  8
  •   Christian Neverdal    6 年前

    我有第一个案例的例子 here :

    footer {
        background: url(images/grasspat.svgz);
        height: 64px; width: 100%;
        position: fixed; left: 0; right: 0; top: auto; bottom:0;
    }
    

    另一种情况当然需要客户端启用脚本,并且会闪烁一点(因为它是如何完成的:scroll event>dom操作>重新绘制),可以看到完整的示例 here

        2
  •  1
  •   Anthony    15 年前

    你不能只用CSS吗?

    #header_id {
        position: fixed;
        top : 0;
     }
    

    抱歉,我被术语对象抛出。我认为svg是另一个文档的标题。但我 checked W3C文档说,除了最外层的元素,您可以将CSS2定位应用于任何东西。让我知道它是否像我的想法一样简单。我很想知道。

        3
  •  0
  •   AgentK    15 年前

    这可能超出您的需求范围,也可能不超出您的需求范围,只是大声思考一下。 即:

    <svg>
      <g id='header'>Header</g>
      <svg viewBox='0 0 800 600'>Page Content</svg>
      <g id='scrollbar'></g>
    </svg>
    

    这意味着要在滚动条上进行大量的EMCAScript工作。但大部分内容应在carto.net上提供:

    http://www.carto.net/papers/svg/samples/

    viewBox的实际视口也可以使用aspect标记按比例保持。

        4
  •  0
  •   Plynx    15 年前

    您可以创建和定位多个 <svg> 元素,您可以将其设置为 position:fixed

    需要注意的是:Firefox与其他浏览器相比,在像这样的浮动svg层上“点击”是不同的。Firefox3.6尊重 pointer-events 属性优于Firefox的早期版本。其他默认为允许点击。