[英]Keep an SVG Object static while scrolling
在我的Web应用程序中,我正在生成一个SVG文件,其中包含一个“标头”,当用户向下滚动图像时,该标头希望在窗口顶部保持可见。
我可以想到两种方法来实现此目的,但是我正在寻找其他任何出色的想法。 我的两个想法是:
生成两个单独的SVG,一个为“标题”,一个为内容,然后仅将它们显示在两个不同的HTML <div>
元素中,从而使下一个SVG滚动。 我不喜欢这个主意,因为我必须生成两个单独的文档。
在SVG本身中利用ECMAScript,找到一种方法来浮动<g>
,该<g>
包含页面顶部的标题。 我喜欢这样,因为每当查看SVG时它都应该工作,但是我不确定如何完成此工作,并且会感谢任何指示或示例。
您不能只使用CSS吗?
#header_id {
position: fixed;
top : 0;
}
抱歉,我被术语“对象”所吸引。 我认为svg是另一个文档的标题。 但是我检查了一下 ,W3C文档说您可以将CSS2定位应用于除最外层元素之外的任何内容。 让我知道这是否和我的想法一样简单。 我很想知道。
只是想一想,这可能超出或可能不在您的要求范围内。 您可以将页面内容放在带有svg滚动条的viewBox中。 即:
<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/
也可以使用Aspect标签将viewBox的实际视口保持成比例。
我已经解决了一个相似的问题,即页眉和页脚保持固定,并使用在固定位置div中包含三个svg文档的html页面发现了最佳性能和灵活性。 在所有浏览器中均可完美运行,可真正调整大小,并在所有窗口尺寸下均可正确缩放。
您可以创建和定位多个<svg>
元素,可以将其设置(至少根据我的经验在脚本中)为position:fixed
,这将起作用。 确保“浮动” svg区域在z顺序中位于顶部。
一个警告:Firefox在这样的浮动svg层上的“点击”功能与其他浏览器有所不同。 与以前的Firefox版本相比,Firefox 3.6更尊重pointer-events
属性。 其他默认为允许点击。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.