小计最近踏的微信小程序的坑

简介: 小程序的一坑,cover-view,事件

最近做小程序,实在不想做。然后来吐槽下小程序的坑吧。也只做了这一个项目,有不对的地方请指正见谅。

一、
tabbar
这里写图片描述
app.json里配置tabbar是原生层的,所以要实现比价奇怪的tabbar只有自己用view写了,比如:
这里写图片描述
这样选中的按钮图标都超出了tabbar 的高度,只有的就自己定义一个组件吧

<template name="tabbar">
    <view class="tabbar_box">
        <block wx:for="{{tabbar.list}}" wx:for-item="item" wx:key="index">
            <!-- 选中 -->
            <navigator class="tabbar_nav" url="{{item.pagePath}}" style="color:{{tabbar.selectedColor}}" 
                open-type="switchTab" wx:if="{{item.selected}}">
                <image class="tabbar_icon_on" src="{{item.selectedIconPath}}"></image>
            </navigator>
            <navigator class="tabbar_nav" url="{{item.pagePath}}" style="color:{{tabbar.color}}" open-type="redirect" wx:else>
                <image class="tabbar_icon" src="{{item.iconPath}}"></image>
                <text class="tabbar_text">{{item.text}}</text>
            </navigator>
        </block>
    </view>
</template>

js呢 就定义到app.js

editTabBar: function () {
        var tabbar = this.globalData.tabbar,
            currentPages = getCurrentPages(),
            _this = currentPages[currentPages.length - 1],
            pagePath = _this.__route__;
        (pagePath.indexOf('/') != 0) && (pagePath = '/' + pagePath);
        for (var i in tabbar.list) {
            tabbar.list[i].selected = false;
            (tabbar.list[i].pagePath == pagePath) && (tabbar.list[i].selected = true);
        }
        _this.setData({
            tabbar: tabbar
        });
    },
    globalData: {
        userInfo: null,
        tabbar: {
            list: [{
                pagePath: "/pages/index/index",
                iconPath: "",
                selectedIconPath: "",
                text: "test"
            },
            .........],
        }
    }

然后再对应页面里调用

 onLoad: function () {
        //tabbar
        app.editTabBar();
    }

再说个在app.json里配置 custom

"window":{
        "navigationStyle": "custom"
    },

屏幕高度就是整个手机屏幕的高度了,看看编辑器显示布局信息,但是右边线程序的退出按钮不会消失,设计时必须注意啊,不要有按钮在右边!!!会重叠遮挡
这里写图片描述

二、cover-view
如果调用了原生层,原生层有哪些·····map、video、canvas、camera, 想在上面布局就只有用cover-view、cover-image,
这两个玩意儿不支持的东西太多了,overflow,zindex不支持,touch事件不支持,具体的不支持去官网看吧。
然后你想想,当map或者vido作为全屏背景时,需要在上面实现其他元素布局也是蛋疼的
这里写图片描述

 <cover-view class="red"></cover-vie>
 <cover-view class="blue"></cover-view>

如上,正常html顺序 red是红色框里的,blue是蓝色框里的。圈出来有重叠对吧,都是absolute定位。但是问题出在红色框重叠区域不能点击了,因为蓝色遮住了,所以换一个

 <cover-view class="blue"></cover-view>
 <cover-view class="red"></cover-vie>

这样整个红色框按钮就都能点击了。
cover-view设置固定高宽,里面的元素要是超过cover-view即使absolute 一样被隐藏。

三、父子组件
子组件通过data 接受父组件数据

<view class="container">
    <import src="../com/son/index.wxml"/>
    <template is="son" data="{{data: 'fuck', aa: '231', event: 'click'}}"/>
</view >

如上事件传递也是这样,子组件不能再里面自己定义事件,只能通过父组件传递过去。

四、点击事件获取数据

<cover-view bindtap="click('sadas')"></cover-view>

想这么传递数据是不行的, 那就用dataset咯

<cover-view data-aa="sadas" bindtap="click" ></cover-view>
click(event) {
        let tab = event.currentTarget.dataset.aa;
},

五、css方面

不支持伪类。。

待补充。。。。。

相关文章
|
7月前
|
JavaScript
uniapp写轮播图?
uniapp写轮播图?
|
1月前
|
JavaScript
jQuery制作的网站首页宽屏导航轮播图特效源码
jQuery制作的网站首页宽屏导航轮播图特效源码是一段基于jQuery制作的可用于商城首页 微商城 互联网公司或某些电子商城的首页特效,自带有二级菜单栏、轮播图滚动、登录注册按钮等等,非常全面,欢迎对此段代码感兴趣的朋友前来下载使用。
26 4
|
2月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
81 1
|
5月前
|
小程序 前端开发
商家团购app微信小程序模板
手机微信商家团购小程序页面,商家订餐外卖小程序前端模板下载。包含:团购主页、购物车订餐页面、我的订单、个人主页等。
44 0
|
5月前
|
移动开发 小程序 前端开发
uniap开发微信小程序如何在线预览pdf文件
这是一段关于在线预览和处理PDF的多方案说明,包括使用JavaScript库PDF.js(如`pdfh5.js`)实现H5页面预览,提供QQ群和技术博客链接以获取帮助和支持。还介绍了两个适用于Uni-app的插件,一个用于H5、小程序和App中的PDF预览和下载,另一个专门解决手机端PDF预览问题。此外,还详细描述了在Uni-app中使用微信小程序API`wx.openDocument`显示PDF的步骤,包括上传文件、配置权限和编写代码。
|
7月前
登录注册页面源码分享
LOGO在image里面修改,名字这些有记事本打开修改
124 0
|
7月前
|
移动开发 小程序
uniapp轮播图制作
uniapp轮播图制作
204 0
|
前端开发
【Web前端】【疑难杂症】轮播图图片自适应显示问题(bootstrap3轮播图)
切换的时候其实是div之间的切换 所以我可不可以去掉img呢?图片显示的话,就给div设置背景。
149 0
【Web前端】【疑难杂症】轮播图图片自适应显示问题(bootstrap3轮播图)
|
小程序
微信小程序表单获取神器
微信小程序表单获取神器
微信小程序表单获取神器

相关实验场景

更多