微信小程序实现富文本图片宽度自适应的方法

 更新时间:2019年01月20日 11:36:09   作者:孟小欢  
小程序里图片会显示不全,这时就应该做相应的处理,使小程序里图片显示正确,这篇文章主要介绍了微信小程序实现富文本图片宽度自适应的方法,感兴趣的小伙伴们可以参考一下

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

思路

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

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

  • 需要知道微信小程序里有自己的宽度标准,单位为rpx;
  • 针对所有不同尺寸的浏览器,微信小程序里规定屏幕宽为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里只有图片,并且图片没有设置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里包含多种标签

util.js

/**
 * 处理富文本里的图片宽度自适应
 * 1.去掉img标签里的style、width、height属性
 * 2.img标签添加style属性:max-width:100%;height:auto
 * 3.修改所有style里的width属性为max-width:100%
 * 4.去掉<br/>标签
 * @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
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解ES6 Promise的生命周期和创建

    详解ES6 Promise的生命周期和创建

    这篇文章主要介绍了详解ES6 Promise Promise的生命周期和创建,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • javascript 取小数点后几位几种方法总结

    javascript 取小数点后几位几种方法总结

    这篇文章主要介绍了javascript 取小数点后几位几种方法总结的相关资料,这里提供了四种方法,帮助大家整理,需要的朋友可以参考下
    2017-08-08
  • 在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法

    在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法

    今天小编就为大家分享一篇在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • Javascript实现的简单右键菜单类

    Javascript实现的简单右键菜单类

    这篇文章主要介绍了Javascript实现的简单右键菜单类,通过JavaScript自定义类实现右键菜单功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • JavaScript输入分钟、秒倒计时技巧总结(附代码)

    JavaScript输入分钟、秒倒计时技巧总结(附代码)

    这篇文章主要介绍了JavaScript输入分钟、秒倒计时的代码实现,通过css和js代码展示了逻辑过程,具体操作步骤大家可查看下文的详细讲解,感兴趣的小伙伴们可以参考一下。
    2017-08-08
  • 浅谈JavaScript中内存泄漏的几种情况

    浅谈JavaScript中内存泄漏的几种情况

    本文主要介绍了浅谈JavaScript中内存泄漏的几种情况,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • js实现完全自定义可带多级目录的网页鼠标右键菜单方法

    js实现完全自定义可带多级目录的网页鼠标右键菜单方法

    这篇文章主要介绍了js实现完全自定义可带多级目录的网页鼠标右键菜单方法,实例分析了javascript实现自定义网页鼠标右键弹出菜单的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-02-02
  • uniapp开发小程序的开发规范总结

    uniapp开发小程序的开发规范总结

    uni-app 是一个使用 vue.js 开发跨平台应用的前端框架,下面这篇文章主要给大家介绍了关于uniapp开发小程序的开发规范,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 微信小程序常用的3种提示弹窗实现详解

    微信小程序常用的3种提示弹窗实现详解

    这篇文章主要介绍了微信小程序常用的3种提示弹窗实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • three.js中物体的灯光与阴影设置

    three.js中物体的灯光与阴影设置

    本文主要介绍了three.js中物体的灯光与阴影设置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论