2012-09-21 31 views
0

我有一個包含大型SVG節點的本地HTML文件。如果我打開這個文件,它將在瀏覽器中呈現SVG文件,這需要一些時間(由於過濾器)。由於瀏覽器限制,我無法通過從文件加載SVG節點來外包源代碼。 有沒有辦法,覆蓋整個頁面的動畫,從我啓動瀏覽器時可見,直到SVG內容已被渲染?在呈現大型本地文件時顯示動畫

什麼不工作是:

... 
<head> 
    <style type="text/css"> 
    #content { 
     display: none; 
    } 
    </style> 
</head> 
<body onload="$('#content').css('display','block');$('#loading').css('display','none');"> 
    <div id="content"> 
    ... 
    <svg> .... </svg> 
    ... 
    </div> 
    <div id="loading">&nbsp;</div> 
</body> 

因爲加載動畫是不是從加載網頁可見,SVG節點已經被加載之前是看不到的。

幫助表示讚賞!

+0

煎茶實驗室似乎都有一個* AfterRender階段*事件SVG元素。我不太瞭解它,但也許這是你的起點。 – m90

回答

0

正文onload事件在加載svg之前觸發,這就是爲什麼當頁面加載時看不到動畫。 您需要添加#內容< - > #loading切換在SVG的onload事件,而不是:

<body> 
    <div id="content"> 
    ... 
    <svg onload="$('#content').css('display','block');$('#loading').css('display','none');"> .... </svg> 
    ... 
    </div> 
    <div id="loading">&nbsp;</div> 
</body>