微信小程序?qū)崿F(xiàn)富文本圖片寬度自適應(yīng)的方法
引言:在微信小程序里,比如商品展示頁面的商品詳情會有圖片展示,PC端設(shè)置的商品詳情是PC端的寬度,所以在小程序里圖片會顯示不全,這時就應(yīng)該做相應(yīng)的處理,使小程序里圖片顯示正確
思路
- 把圖片的寬度改為手機(jī)屏幕對應(yīng)的寬度
微信小程序需要知道的知識
- 需要知道微信小程序里有自己的寬度標(biāo)準(zhǔn),單位為rpx;
- 針對所有不同尺寸的瀏覽器,微信小程序里規(guī)定屏幕寬為750rpx;
解決
WXML
<view class='html_detail'> <rich-text nodes='{{artical}}'></rich-text> </view>
WXS
data={artical:''} async onLoad(){ const json = await api.getDetail(); if(json !== null){ this.artical = util.formatRichText(json.detail.description); } }
若artical里只有圖片,并且圖片沒有設(shè)置style和寬度/高度
util.js
function formatRichText(html){ let newContent= html.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;"'); return newContent; } module.exports = { formatRichText }
若artical里包含多種標(biāo)簽
util.js
/** * 處理富文本里的圖片寬度自適應(yīng) * 1.去掉img標(biāo)簽里的style、width、height屬性 * 2.img標(biāo)簽添加style屬性:max-width:100%;height:auto * 3.修改所有style里的width屬性為max-width:100% * 4.去掉<br/>標(biāo)簽 * @param html * @returns {void|string|*} */ function formatRichText(html){ let newContent= html.replace(/<img[^>]*>/gi,function(match,capture){ match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, ''); match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, ''); match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, ''); return match; }); newContent = newContent.replace(/style="[^"]+"/gi,function(match,capture){ match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;'); return match; }); newContent = newContent.replace(/<br[^>]*\/>/gi, ''); newContent = newContent.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;"'); return newContent; } module.exports = { formatRichText }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
javascript內(nèi)嵌式與外鏈?zhǔn)降幕緫?yīng)用方式
這篇文章主要介紹了javascript內(nèi)嵌式與外鏈?zhǔn)降幕緫?yīng)用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12基于layPage插件實(shí)現(xiàn)兩種分頁方式淺析
這篇文章主要為大家詳細(xì)介紹了基于layPage插件實(shí)現(xiàn)兩種分頁方式 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07javascript獲取和判斷瀏覽器窗口、屏幕、網(wǎng)頁的高度、寬度等
這篇文章主要介紹了javascript獲取和判斷瀏覽器窗口、屏幕、網(wǎng)頁的高度、寬度等,需要的朋友可以參考下2014-05-05顏色選擇器 Color Picker,IE,Firefox,Opera,Safar
顏色選擇器 Color Picker,需要的朋友可以參考下。2010-11-11微信小程序?qū)崿F(xiàn)點(diǎn)擊按鈕修改view標(biāo)簽背景顏色功能示例【附demo源碼下載】
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)點(diǎn)擊按鈕修改view標(biāo)簽背景顏色功能,涉及微信小程序事件響應(yīng)及數(shù)值運(yùn)算實(shí)現(xiàn)動態(tài)設(shè)置view背景色樣式的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12