小程序模板网

微信小程序小技巧系列《四》使元素占满整个屏幕高度,修改swiper 圆点样式

发布时间:2018-02-06 17:14 所属栏目:小程序开发教程

一:微信小程序中使元素占满整个屏幕高度
在项目中经常要用到一个容器元素占满屏幕高度和宽度,然后再在这个容器元素里放置其他元素。
 
宽度很简单就是width:100%
 
但是高度呢,我们知道的是height:100%必须是在父元素的高度给定了的情况下才可以。
 
以前我的做法是用js获取屏幕的高度,然后将其赋值给height,
 
屏幕高度在网页中为:window.innerHeight;
 
在微信小程序中则需要调用wx.getSystemInfo接口,然后通过setData赋值
 
但是显然通过js来进行的,效率上肯定不如css直接给定样式。
 
 
于是我们使用另一种方法:
 
在网页中设置body,html{height:100%};
 
将body和html设置为100%,这样我们就可以在他们的子元素中使用height:100%来使的我们的容器元素占满屏幕的高度啦。
 
但是在微信小程序中,是没有dom对象的,但是我们看调试工具可以看到在dom树(我也不知道怎么叫了,就这么叫吧)中,根节点是page,所以我们来试试使用page{height:100%}
 
果然,是可行的。高度占满了整个小程序的窗口。
 
二:swiper 圆点样式怎么修改
page .wx-swiper-dot{
    width: 18rpx;
    display: inline-flex;
    height: 18rpx;
    margin-right: 18rpx;
}
page .wx-swiper-dot::before{
    content: '';
    background: #8c8c8f;
    flex-grow: 1; 
    border-radius: 100%;
}
page .wx-swiper-dot-active::before{
    content: '';
    background:#fff;
    flex-grow: 1;
    border-radius: 100%;
}
 
三:判断当前项让其滑动
场景如下:
wx:for动态读取一个列表,绑定touchstart、touchmove、touchend事件,代码如下

<block wx:for="{{arrayList}}">
    <view catchtouchstart="touchstart" catchtouchmove="touchmove" catchtouchend="touchmove">{{username}}</view>
</block>
现在不管滑动哪一项都是所有列表一块儿动,要怎么判断当前项让其滑动?
 
解决方法:每个item都加入一个style="left:{{arrayList.left}}",然后滑动的时候动态改变left(当前项实际数值,其他项0)


易优小程序(企业版)+灵活api+前后代码开源 码云仓库:starfork
本文地址:https://www.eyoucms.com/wxmini/doc/course/21672.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询