麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > HTML5 > 正文

html2canvas生成的圖片偏移不完整的解決方法

2024-09-05 07:23:28
字體:
來源:轉載
供稿:網友

情景一:

問題背景:生成的圖片在一個彈窗里面,如果頁面沒有滾動條就是正常的,但是一旦出現滾動條并且頁面發生滾動時html2canvas繪制成的圖片就會偏移出對應滾動高度的白邊,如下:


 

解決辦法
 

樓主查了很多資料,也用了很多方法都沒能解決這個問題,一氣之下打算研究研究html2canvas的配置參數,果不其然,在配置參數RenderOptions下找到如下配置


 

眼尖的樓主立馬發現了scrollY這個東西。沒錯,這個肯定是配置偏移量的對吧,既然你是向下偏移我頁面滾動的高度,那我把scrollY設置為負的那不就好了嗎,說干就干。于是樓主設置了{scrollY: -window.pageYOffset},結果發生詭異的事,它倒是不向下偏移了,卻開始向上偏移,如下


 

這個世界是怎么了,于是樓主又設置{scrollY: 0},再次查看,解決了。
 


 

原來,是因為在不設置scrollY的情況下,canvas繪制頁面時會根據全局頁面的滾動情況自動向下偏移。當然了,scrollX也是一樣的道理。

奉上代碼:
 

scrollY: 0, 其他的參數根據自己情況配置,這個參數一定不能少

var htmlDom = document.getElementsByClassName('dialog_content')[0];html2canvas(htmlDom, {    logging: false, //日志開關,便于查看html2canvas的內部執行流程    width: htmlDom.clientWidth, //dom 原始寬度    height: htmlDom.clientHeight,    scrollY: 0,     scrollX: 0,    useCORS: true // 【重要】開啟跨域配置}).then(canvas => {    var url = canvas.toDataURL();//圖片地址    htmlDom.appendChild(canvas);});

情景二:
 

用html2canvas繪制完圖片后,始終會有個偏移距離,之前的解決辦法是設scrollY: 0,scrollX: 0這兩個參數為0,但是這次怎么弄都不行,最后排查出的原因是因為繪制的box上加了transform:translateX(-50%)這個樣式。

解決辦法:

用戶繪圖的區域不用transform來定位,換一種沒有偏移的方式,比如設置百分比或者固定寬高。

到此這篇關于html2canvas生成的圖片偏移不完整的解決方法的文章就介紹到這了,更多相關html2canvas生成圖片偏移內容請搜索武林網以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品在线视频播放 | 久久国产精品二区 | 麻豆一二区 | 福利在线国产 | 国产黄色毛片 | 97超视频在线观看 | 综合99| 羞羞的视频免费 | 毛片午夜 | 成年人视频在线免费播放 | 色妇视频 | 国产精品久久久久久久久久 | 性aaa| 日韩毛片在线看 | 九九精品在线观看视频 | 欧美一级色片 | 久久久久久久久亚洲精品 | 国产午夜网 | 麻豆国产网站 | 最新黄色毛片 | 久久污| chinese-xvideos | 久久国产精品免费视频 | 亚洲国产一区二区三区 | 毛片免费一区二区三区 | 韩国三级日本三级香港三级黄 | 三人弄娇妻高潮3p视频 | 国产午夜亚洲精品午夜鲁丝片 | zzzzzzzxxxxxx日本人 | a一级黄色大片 | 亚洲国产视频在线 | 日本免费一区二区三区四区 | 国产精品久久久久久久亚洲按摩 | 日本精品久久久一区二区三区 | 欧美一级特级 | 欧美色视 | 午夜爱爱福利 | 主播粉嫩国产在线精品 | 一区二区三区视频在线观看 | 日本看片一区二区三区高清 | 国产在线精品一区二区不卡 |