一、小程序事件的绑定
⼩程序中绑定事件,通过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/屏幕宽度)
iPhone5 1rpx = 0.42px 1px = 2.34rpx
iPhone6 1rpx = 0.5px 1px = 2rpx
iPhone6 Plus 1rpx = 0.552px 1px = 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” 的组件
element view 选择所有 view 组件
element, element view,checkbox 选择所有⽂档的 view 组件和所有的 checkbox 组 件
nth-child(n) view:nth-child(n) 选择某个索引的标签
::after view::after 在 view 组件后边插⼊内容
::after view::before 在 view 组件前边插⼊内容
4. 小程序中使用less
原⽣⼩程序不⽀持 less ,其他基于⼩程序的框架⼤体都⽀持,如 wepy , mpvue , taro 等。 但是仅仅因为⼀个less功能,⽽去引⼊⼀个框架,肯定是不可取的。因此可以⽤以下⽅式来实现
(1). 编辑器是 vscode
(2). 安装插件 easy less
(3). 在vs code的设置中加⼊如下,配置
(4). 在要编写样式的地⽅,新建 less ⽂件,如 index.less ,然后正常编辑即可。