频道栏目
首页 > 资讯 > 微信小程序 > 正文

微信小程序之富文本图片宽度自适应教程

19-02-12        来源:[db:作者]  
收藏   我要投稿

引言:在微信小程序里,比如商品展示页面的商品详情会有图片展示,PC端设置的商品详情是PC端的宽度,所以在小程序里图片会显示不全,这时就应该做相应的处理,使小程序里图片显示正确

 

 

思路

把图片的宽度改为手机屏幕对应的宽度

微信小程序需要知道的知识

需要知道微信小程序里有自己的宽度标准,单位为rpx;

针对所有不同尺寸的浏览器,微信小程序里规定屏幕宽为750rpx;

解决

WXML


    

复制代码

WXS

data={artical:''}

async onLoad(){
    const json = await api.getDetail();
    if(json !== null){
        this.artical = util.formatRichText(json.detail.description);
    }
}
复制代码

若artical里只有图片,并且图片没有设置style和宽度/高度

util.js

function formatRichText(html){
    let newContent= html.replace(/\

若artical里包含多种标签

util.js

/**
 * 处理富文本里的图片宽度自适应
 * 1.去掉img标签里的style、width、height属性
 * 2.img标签添加style属性:max-width:100%;height:auto
 * 3.修改所有style里的width属性为max-width:100%
 * 4.去掉
标签
 * @param html
 * @returns {void|string|*}
 */
function formatRichText(html){
    let newContent= html.replace(/]*>/gi,function(match,capture){
        match = match.replace(/]+"/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(/]+"/gi,function(match,capture){
        match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;');
        return match;
    });
    newContent = newContent.replace(/]*\/>/gi, '');
    newContent = newContent.replace(/\
相关TAG标签
上一篇:小程序之无限自动滚动的Gallery案例
下一篇:微信小程序组件化的解决案例展示
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站