微信小程序从入门到入土教程(03)

1,654 阅读3分钟

一、小程序事件的绑定

小程序中绑定事件,通过bind关键字来实现。如 bindtap bindinput bindchange 等 不同的组件支持持不同的事件,具体看组件的说明即可。

1. wxml

<input bindinput="handleInput" />

2. page

Page({
  // 绑定的事件
  handleInput: function(e) {
    console.log(e);
    console.log("值被改变了");
 }
})

3. 特别注意

(1). 绑定事件时不能带参数 不能带括号 以下为错误写法

<input bindinput="handleInput(100)" />

(2). 事件传值 通过标签⾃定义属性的⽅式 和 value

<input bindinput="handleInput" data-item="100" />

(3). 事件触发时获取数据

 handleInput: function(e) {
    // {item:100}
   console.log(e.currentTarget.dataset)
      
    // 输入框的值
   console.log(e.detail.value);
 }

二、样式 WXSS

WXSS( WeiXin Style Sheets )是⼀套样式语⾔,⽤于描述 WXML 的组件样式。 与 CSS 相⽐,WXSS 扩展的特性有:

  • 响应式⻓度单位 rpx
  • 样式导⼊

1. 尺寸单位

rpx (responsive pixel): 可以根据屏幕宽度进⾏⾃适应。规定屏幕宽为 750rpx 。如在iPhone6 上,屏幕宽度为 375px ,共有750个物理像素,则 750rpx = 375px = 750物理像素 , 1rpx = 0.5px = 1物理像素 。

设备rpx换算px (屏幕宽度/750)px换算rpx (750/屏幕宽度)
iPhone51rpx = 0.42px1px = 2.34rpx
iPhone61rpx = 0.5px1px = 2rpx
iPhone6 Plus1rpx = 0.552px1px = 1.81rpx
建议: 开发微信⼩程序时设计师可以⽤ iPhone6 作为视觉稿的标准。
使⽤步骤: 1. 确定设计稿宽度 pageWidth 2. 计算⽐例 750rpx = pageWidth px ,因此 1px=750rpx/pageWidth 。 3. 在less⽂件中,只要把设计稿中的 px => 750/pageWidth rpx 即可。

2. 样式导⼊

wxss中直接就⽀持,样式导⼊功能。 也可以和 less中的导⼊混⽤。 使⽤ @import 语句可以导⼊外联样式表,只⽀持相对路径。 ⽰例代码:

/** common.wxss **/
.small-p {
  padding:5px; }
/** app.wxss **/
@import "common.wxss";
.middle-p {
  padding:15px; }

3. 选择器

特别需要注意的是 ⼩程序 不⽀持通配符 * 因此以下代码⽆效!

*{
    margin:0;
    padding:0;
    box-sizing:border-box; 
}

⽬前⽀持的选择器有:

选择器样例样例描述
.class.intro选择所有拥有 class="intro" 的组件
#id#firstname选择拥有 id="firstname" 的组件
elementview选择所有 view 组件
element, elementview,checkbox选择所有⽂档的 view 组件和所有的 checkbox 组 件
nth-child(n)view:nth-child(n)选择某个索引的标签
::afterview::after在 view 组件后边插⼊内容
::afterview::before在 view 组件前边插⼊内容

4. 小程序中使用less

原⽣⼩程序不⽀持 less ,其他基于⼩程序的框架⼤体都⽀持,如 wepy , mpvue , taro 等。 但是仅仅因为⼀个less功能,⽽去引⼊⼀个框架,肯定是不可取的。因此可以⽤以下⽅式来实现

(1). 编辑器是 vscode

(2). 安装插件 easy less在这里插入图片描述

(3). 在vs code的设置中加⼊如下,配置 在这里插入图片描述 (4). 在要编写样式的地⽅,新建 less ⽂件,如 index.less ,然后正常编辑即可。


相关内容:

更多相关文章及我的联系方式我放在这里:gitee.com/haiyongcsdn…

最后,不要忘了❤或📑支持一下哦