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

开发小程序的一些小经验总结与分享

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

图片在微信小程序中可以说是一个神奇的存在。在web开发中,我们会利用图片的自适应比如百分比而省去不少麻烦,因为高度会自适应。但是小程序中的图片都有一个初始大小,而且是固定的,无论你的图片多大多小,都是统一的320px*240px。虽然作为组件的图片支持平铺,剪切等呈现效果,但是容器大小都是固定的,所以每次使用image我们要想办法控制图片的大小。

css控制(大小固定的图片)

用CSS控制一部分固定比例的图片,我们可以使用微信自带的单位rpx来固定。

image{
  width: 128rpx;
  height: 128rpx;
}
复制代码

动态计算(用于多种不同尺寸的图片)

如果遇到了内容页这种,不知道图片固定尺寸的情况,就只能根据在后端给的图片尺寸,然后在JS中换算,通过setData设置图片大小。

this.setData({
  imageWidth: 200,
  imageHeight: 200
})
复制代码

 复制代码

动态布局

如果你的页面需要根据当前页面,计算的高度和宽度,那么页面一定会闪以下,因为wx.getSystemInfo是异步的。

wx.getSystemInfo({
  success (res) {
    console.log(res.pixelRatio)
    console.log(res.windowWidth)
    console.log(res.windowHeight)
  }
})
复制代码

如果像解决这个问题,我们可以这样,设置一个isLoaded的参数,等页面加载好了再显示。





复制代码

当然还有一个方法叫做同部wx.getSystemInfoSync,这样就不会像异步那样闪了。

try {
  const res = wx.getSystemInfoSync()
  console.log(res.pixelRatio)
  console.log(res.windowWidth)
  console.log(res.windowHeight)
} catch (e) {
  // Do something when catch error
}
复制代码

高度100%问题

如何高度百分百,这里如果page相当于html如果不是100%,那么即使内部元素设置高度100%也是无效的,因为百分比是相对父元素而定的。如果这张页面只用于一屏的,那么我们可以page设置高度100%,但是如果这张页面我们只是loading的时候需要100%,那么这个时候我们可以使用vh这个单位,vh相当于把屏幕的高度分为了100份,因此我们100vh就是满屏的意思。

.onePageWrapper{
  height: 100vh;
}
复制代码

part 2: 复用问题

CSS复用问题,wxss复用

有时候,我们不想写重复的CSS,但是又不想写在全局app.wxss中。我们只是有几张页面需要共享,这个时候可以创建一个wxss,然后导入当前页面的wxss。就像下方这样导入就可以了。

模板复用问题,wxml复用

重复两遍以上的都用模板。同样为了解决重复问题,我们可以定义模板,然后引入模板调用模板,这样可以极大地减少重复代码。

定义模板时,使用


复制代码

使用模板时,使用

相关TAG标签
上一篇:hooks在微信小程序中的试验简介
下一篇:苹果公司居然打折卖iPhone手机?
相关文章
图文推荐

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

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