【微信小程序开发】 wxParse组件

简单介绍:

wxParse是一个templet组件,Html代码转化成小程序的标签,目的是解决需要兼容手机端、小程序端的HTML内容。

文件有:

html2json.js  //将html每个标签转化成DOM对象的node
htmlparse.js   //由html2json.js引用
showdown.js    //由wxParse.js引用
wxDiscode.js   //支持的符号库
wxParse.js     //主入口的js,和处理各种标签的事件,如图片的onload
wxParse.wxml   //不同标签template组件,内容会循环成HTML的DOM对象,每个都转化成template,显示出来
wxParse.wxss  //样式

使用方法:
js页

//引用

var WxParse = require(‘/wxParse/wxParse.js‘);

//将需要转化的内容加上
var that=this;
WxParse.wxParse(‘Content1‘, ‘html‘, 内容, that, 0);

wxml页

<template is="wxParse" data="{{wxParseData:Content1.nodes}}"/>

wxss页

@import "/wxParse/wxParse.wxss";

下载文件:

https://github.com/icindy/wxParse

如何给图片设置真实的宽高?
wxParse.wxml 在图片tempate里执行bindonload事件,在wxParse.js方法里,获取它的真实宽高,给它的style赋值宽高
当宽度大于屏幕宽度时,使用屏幕宽度,高度改为:宽度  / 屏幕宽度 * 真实高度

最后,that.setData(bindData)给了template

//图片的onload事件
function wxParseImgLoad(e) {
  var that = this;
  var tagFrom = e.target.dataset.from;
  var idx = e.target.dataset.idx;
  if (typeof (tagFrom) != ‘undefined‘ && tagFrom.length > 0) {
    calMoreImageInfo(e, idx, that, tagFrom)
  }
}

// 循环获取计算图片视觉最佳宽高
function calMoreImageInfo(e, idx, that, bindName) {
  var temData = that.data[bindName];
  if (!temData || temData.images.length == 0) {
    return;
  }

  //给图片真实宽高,通过styleStr 20191128 S
  var recal = wxAutoImageCal(e.detail.width, e.detail.height, that, bindName);
  var temImages = temData.images;//获取里面的images对象
  //给styleStr赋值
  var styleStr = (temImages[idx].styleStr!=undefined) ? temImages[idx].styleStr : ‘‘;
  var whStr = ‘width:‘ + recal.imageWidth + ‘px;height:‘ + recal.imageheight+‘px;‘
  styleStr = styleStr +whStr;
  temImages[idx].styleStr = styleStr;
  temData.images = temImages;//还回去
  var bindData={};
  bindData[bindName] = temData;
  that.setData(bindData);
  console.log(bindData)
  //styleStr需要在html2json插入node里。
  //给图片真实宽高,通过styleStr 20191128 E

}

给item加了styleStr。

<template name="wxParseImg">
    <image src="{{item.attr.src}}" class="{{item.classStr}} wxParse-{{item.tag}}" data-from="{{item.from}}" data-src="{{item.attr.src}}"  data-idx="{{item.imgIndex}}"    bindload="wxParseImgLoad" bindtap="wxParseImgTap" mode="aspectFit" mode="widthFix" style="{{item.styleStr}}max-width:100%;" />
</template>

原文地址:https://www.cnblogs.com/laokchen/p/11954531.html

时间: 2024-10-09 22:01:38

【微信小程序开发】 wxParse组件的相关文章

微信小程序开发---自定义组件

开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用:也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护.自定义组件在使用时与基础组件非常相似. 创建自定义组件 类似于页面,一个自定义组件由 json wxml wxss js 4个文件组成.要编写一个自定义组件,首先需要在 json 文件中进行自定义组件声明(将 component 字段设为 true 可这一组文件设为自定义组件):同时,还要在 wxml 文件中编写组件模板,在 wxss 文件中加入组件样式,它们的写法

微信小程序开发05-日历组件的实现

接上文:微信小程序开发04-打造自己的UI库 github地址:https://github.com/yexiaochai/wxdemo 我们这里继续实现我们的日历组件,这个日历组件稍微有点特殊,算是相对复杂的组件了,然后一般的日历组件又会有很多的变化,所以我们这里实现最基本的标签即可: 1 let View = require('behavior-view'); 2 const util = require('../utils/util.js'); 3 4 // const dateUtil

微信小程序开发-地图map组件上使用input组件

微信小程序开发-地图map组件上使用input组件 标签: 微信小程序 uni-app 原生组件层级关系 微信小程序在最高层级 在微信小程序中原生组件包括camera canvas input(仅在focus时表现为原生组件) live-player live-pusher map textarea video 在微信小程序开发中原生组件的层级是最高的,所以页面中的其他组件无论设置 z-index 为多少,都无法盖在原生组件上. 后插入的原生组件可以覆盖之前的原生组件. 原生组件还无法在 pic

微信小程序开发心得

微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司认证信息如,营业执照等 再次就是用一个未曾开通过公众号的QQ号或微信号来注册一个微信小程序号. 最后,下载微信小程序开发工具. 由于这里,我们更多的关注如何去开发一些app,而不是科谱微信小程序,故在此不在过多的解释,详细的说明,可以去官网帮助文档. 首先,我们拿自己的项目在一步一步的说明并开发吧,

微信小程序开发入门教程

做任何程序开发要首先找到其官方文档,微信小程序目前还在邀请内测阶段,目前官方放出了部分开发文档,经过笔者一天的查看和尝试,感觉文档并不全面,但是通过这些文档已经能够看出其大概面貌了.闲话不多说,我们先来看看其有哪些官方文档. 微信公众平台开发者文档统一入口为:https://mp.weixin.qq.com/wiki,这里面大部分内容都是以前就有的,微信开发都是基于此份文档. 现在的变化是在这份文档的顶部加了一个“微信公众平台.小程序”的入口,这个入口才就是专门针对微信小程序开发的文档,如下图:

微信小程序开发日记——高仿知乎日报(上)

本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该教程分为以下三篇 微信小程序开发日记--高仿知乎日报(上) 微信小程序开发日记--高仿知乎日报(中) 微信小程序开发日记--高仿知乎日报(下) 三篇分别讲不同的组件和功能块 这篇要讲 API分析 启动页 轮播图 日报列表 浮动按钮 侧滑菜单 API分析 以下是使用到的具体API,更加详细参数和返回结

微信小程序_微信小程序开发,小程序源码、案例、教程

原文地址:http://whosmall.com/?post=448 本文标签: 微信小程序 小程序源码案例 小程序项目 小程序源码 微信小程序教程 什么是微信小程序? 微信小程序是微信基于微信平台的一个应用发布平台,微信小程序app开发属于原生app组件提供js接口的开发方式,比混合是app的用户体验更好,仅次于原生应用. 不过微信小程序定位于小,要符合轻量易用无需下载,所以从体积上也是有限制,整个小程序应用体积不能超过1M. 微信小程序的应用场景? 微信小程序的应用场景适用于轻量应用,非强交

我们的微信小程序开发

基于微信小程序的系统开发准备工作 腾讯推出微信小程序也有一段时间了,在各种行业里面也都掀起一阵阵的热潮,很多APP应用被简化为小程序的功能迅速推出,同时也根据小程序的特性推出各种独具匠心的应用,相对传统的APP来说,微信小程序确实能够大大降低开发成本和难度,但也意味着需要掌握整个微信小程序的各种接口功能.应用场景等相关技术点,本篇随笔先从大的方面来介绍微信小程序开发的一些知识,如架构设计.技术路线 .工具准备等方面做一些浅薄的介绍,希望大家也有所收益,有所借鉴,则善莫大焉. 1.小程序的统一架构

一号旺铺微信小程序开发最全行业模版合集来了

如果仔细观察,我们会发现,其实同一行业的小程序,大部分功能组件和UI设计都是相似的.例如餐饮行业的小程序需要菜品展示和订餐功能,家居行业需要装修案例展示和预约装修功能,婚庆行业的小程序需要婚纱摄影案例展示和婚宴酒店等方案的介绍-- 封面图 其实这些正是广大商家和企业在小程序开发上的主流需求,为了节省广大开发者的开发时间和资金成本,「一号旺铺」(www.wangpu1.com)为广大开发者提供了功能组件非常完善的各行业小程序模板,帮助各行业的企业迅速开发自己的小程序! 以下为部分具有代表性的「一号

微信小程序开发工具测评

1月9日微信小程序正式上线.很多企业都希望能在这个.但是在技术开发的问题上,却不知道该如何下手.经过一些程序员不辞辛苦连夜测试,终于从十余款工具呕心沥血筛选出四款比较靠谱实用的微信小程序开发工具.接下来一起来看看测评吧. 一.微信小程序官方开发工具 注意,它只是个工具,而不是一个IDE.官方工具中的代码编辑功能,就是将vscode的代码编辑功能嵌入到工具中,不足以支撑开发. 优点 因为是官方工具所以有这其它第三方工具有这不可比拟的天然优势,如果不是他代码编辑功能太弱的话. 官方工具,可调试,可预