2017-06-05 58 views
0

我需要模糊半頁的內容,基本上我需要在客戶付費之前顯示文檔預覽。模糊半頁

爲了實現這一點我有一個HTML頁面看起來非常像這樣: enter image description here

我需要申請一個模糊,模糊應該從頁面高度的50%開始,然後我會截圖並向客戶展示該圖像。

所以:

  1. 我可以過濾模糊不適用於div,因爲它牽涉到很多的div。可以說模糊會從「來自哪裏」的某個地方開始
  2. 我試圖在過濾器模糊處添加一個div位置絕對位置,但模糊不在文本上。我也試圖用SVG做到這一點,但沒有喜悅。

想法?

+0

爲什麼不只是將模糊效果應用於屏幕截圖? –

+0

@JosephSible這是我的最後一個資源,我希望它由前端團隊維護,所以也許一個SO朋友知道一個竅門。 – hardkoded

+0

沒有多大的幫助,但是不應該只能對要模糊的div進行樣式設置,而應該根據用戶操作進行unblur設置? – 2017-06-06 09:49:03

回答

1

下面是可能有點搖搖晃晃的一個解決方案,但工作 - 在Firefox中,至少有:

<?xml version="1.0" standalone="yes"?> 
<svg width="600" height="800" version="1.1" 
    xmlns="http://www.w3.org/2000/svg" 
    xmlns:xlink="http://www.w3.org/1999/xlink" 
    xmlns:html="http://www.w3.org/1999/xhtml"> 
    <filter id="halfBlur" filterUnits="objectBoundingBox" x="0" y="0.5" width="1" height="0.5"> 
    <feGaussianBlur in="SourceGraphic" stdDeviation="2" /> 
    </filter> 
    <g id="source"> 
    <foreignObject width="600" height="800"> 
     <html:iframe style="width:600px;height:800px" src=""></html:iframe> 
    </foreignObject> 
    </g> 
    <use xlink:href="#source" filter="url(#halfBlur)"/> 
</svg> 

馬克,如果它引用的SVG容器元素,但不是<foreignObject>直接<use>元素只能。

必須注意使所有元素足夠大以包含完整的html頁面。作爲一種額外的措施,爲嵌入式頁面的html元素提供overflow:hidden規則可能是個好主意。如果滾動條出現,它們將獨立工作在頁面的兩個半邊上。

+0

我應該只使用該svg獲取頁面,並在iframe src'中設置html路徑?或者我應該包括在現有的HTML?我找不到任何與「html:iframe」相關的文檔。 – hardkoded

+0

將iframe src'設置爲您的html頁面。 'html:iframe'語法是一個XML命名空間語法,請參閱svg元素中'xmlns:html'的名稱空間定義 – ccprog

+0

僅適用於Firefox,如您所說,它不適用於Chrome:/,非常感謝您時間的人。 – hardkoded