以前我們只能通過其他的截圖工具來截取圖像。現(xiàn)代瀏覽器的功能已經(jīng)越來越強(qiáng),隨著H5的逐漸普及,瀏覽器本身就可以截圖啦。html2canvas就是這樣一款前端插件,它的原理是將Dom節(jié)點(diǎn)在Canvas里邊畫出來。雖然很方便,但有以下限制:
- 不支持iframe
- 不支持跨域圖片
- 不能在瀏覽器插件中使用
- 部分瀏覽器上不支持SVG圖片
- 不支持Flash
- 不支持古代瀏覽器和IE,如果你想確認(rèn)是否支持某個(gè)瀏覽器,可以用它訪問 http://deerface.sinaapp.com/ 試試 :)
由于我的使用場(chǎng)景很簡(jiǎn)單,記錄一下異常信息,并且異常頁面也是由自己定義的,那么html2canvas 就足夠使用了。
第一次用html2canvas,目的就是想把整個(gè)頁面截圖下來生成一張圖片給用戶保存
下面我們先來看看HTML渲染出來的是啥樣子的
HTML渲染出來的圖片可以看到上面的圖片是有圓角效果的,但是當(dāng)我用html2canvas來進(jìn)行轉(zhuǎn)換圖片操作的時(shí)候,發(fā)現(xiàn)圖片圓角效果沒失效了。
變成了上面這個(gè)樣子。想了很多解決方案,后來決定把后面的圓角做成一張背景圖片,中間圓的部分背景透明,然后通過絕對(duì)定位覆蓋到原來的圖片上面,相當(dāng)于是一個(gè)遮罩這種效果。
當(dāng)然,遮罩圖片的DOM節(jié)點(diǎn)必須在需要圓角圖片的下面,類似于
<div class="avatar_img fl"><div class="avatar_img fl">
<img src="" id="you" class="avatar_pp fl" /><!--需要圓角的原始圖片-->
<img src="/template/images/avatar.png" class="img-responsive" style="position: absolute;"><!--遮罩圖片-->
</div>
生成出來就是正常的樣子了
<div class="avatar_img fl"><div class="avatar_img fl">
<img src="" id="you" class="avatar_pp fl" /><!--需要圓角的原始圖片-->
<img src="/template/images/avatar.png" class="img-responsive" style="position: absolute;"><!--遮罩圖片-->
</div>
<a href="<a ><img</a> src="<a alt="" width="169" height="300" srcset="<a >http://www.teaxia.com/wp-content/uploads/2018/01/2-169x300.jpg</a> 169w, <a >http://www.teaxia.com/wp-content/uploads/2018/01/2.jpg</a> 377w" sizes="(max-width: 169px) 100vw, 169px" /></a>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。