web前端开发中遇到的问题整理记录——2019-04

目录

1.css 匹配下标是奇数或偶数的子元素
2.获取屏幕高度
3.小程序tabbar显示不出的原因
4.小程序状态栏沉浸式
5.小程序引用iconfont图标
6.wx.request回调中使用setDate改变page.data值
7.margin:0 auto 无效原因
8.小程序传递数组,对象
9.小程序阻止冒泡
10.数组拼接

正文
1.css 匹配下标是奇数或偶数的子元素
    .item-order:nth-of-type(odd){
        border-left:3px solid #f5f5f5;
        //奇数
    }
    .item-order:nth-of-type(even){
        border-right:3px solid #f5f5f5;
       //偶数
    }
2.获取屏幕高度

获取览器显示区域的高度: $(window).height();

获取浏览器显示区域的宽度:$(window).width();

获取页面的文档高度:$(document).height();

获取页面的文档宽度:$(document).width();

获取滚动条到顶部的垂直高度:$(document).scrollTop() 或 $(window).scrollTop();

获取滚动条到左边的垂直宽度: ( d o c u m e n t ) . s c r o l l L e f t ( ) 或 (document).scrollLeft() 或 (document).scrollLeft()(window).scrollLeft();
传送门1
传送门2

3.小程序tabbar显示不出的原因

pages数组的第一项必须是tabBar的list数组的一员

"pages":[
"pages/clickDemo/clickDemo",
"pages/logs/logs",
"pages/index/index",
"pages/mypage/mypage"
]

tabbar中list数组内容是:

"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "image/location_normal.png",
"selectedIconPath": "image/location_selected.png"
},
{
"pagePath": "pages/logs/logs",
"text": "设置",
"iconPath": "image/setting_normal.png",
"selectedIconPath": "image/setting_selecred.png"
}

如果不是自定义的tabbar, custom为true也会显示不出来,这个是笔者个人粗心犯得小错误,找了半天…

4.小程序状态栏沉浸式

app.json 中 window 配置:navigationStyle:“custom”

5.小程序引用iconfont图标

1.在阿里图标库中找到需要的图标并加入项目

2.把项目下载项目到本地
image.png

3.在本地打开下载的目录将 iconfont.css文件改为iconfont.wxss复制到项目中
image.png
image.png

4.在app.wxss中引入iconfont.wxss
image.png

5.在阿里图标库我的项目中 点击复制代码
image.png

6.将复制的@font-face替换掉iconfont.wxss中的@font-face
image.png

7.在项目中引用
image.png

详细教程点击传送门

6.wx.request回调中使用setDate改变page.data值
Page({
    data: {
        A:'true',
    },
    onShow:function (){
    var that = this;
    wx.request({
      url:'XXXX',
      method:'GET',
      success(d){
        if(d.statusCode){
          that.setData({
            A: d.data.A
          })
        } 
      },
      fail(e){
        console.log(e)
      }
    })
  },
})

在request之前先用个变量把this存起来,在success里就用这个变量来代量this使用,
原因是:在request里的this上下文改变了,this不再指向当前page

7.margin:0 auto 无效原因

说道居中很多前端开发的小伙伴都会想到margin:0 auto ,前段时间在使用时却没有效果,经过查询得知,需配合display:block使用才有效果

margin: 0 auto,
display:block
8.小程序传递数组,对象

思路: 先把要传递的对象数组通过JSON.stingify方法,将对象转换成字符串后传递
在接收时将字符串转换成对象

click:function(e){
    var model = JSON.stringify(e.currentTarget.dataset.model);
    wx.navigateTo({
      url: '../detail/detail?model=' + model,
    })
  }
onLoad: function (options) {
    //将字符串转换成对象
    var bean = JSON.parse(options.model);
    if(options.model == null){
      wx.showToast({
        title: '数据为空',
      })
      return;
    }
      this.setData({
          model:bean
      })    
  }

方式和传递对象相同,注意类型即可

详细攻略点击传送门

9.小程序阻止冒泡

很简单,直接把bind 改成 catch即可,例如 bindtap 改成 catchtap

友情提示:有一部分标签是默认在最上层的,比如video,想在video上放一个view然后设置catchtap将video覆盖是无效的

详细攻略点击传送门

######10.数组拼接concat

var a1 = ['aa',12,13];
var a2 = [21,22,23];
var newA = a1.concat(a2) // ['aa',12,13,21,22,23]

本文源自本人简书博客,原创非抄袭。转载请注明

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值