微信小程序使用Vant

微信小程序使用Vant,第1张

将 appjson 中的 "style": "v2" 去除,小程序的新版基础组件强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱。

开发者工具创建的项目,miniprogramRoot 默认为 miniprogram,packagejson 在其外部,npm 构建无法正常工作。需要手动在 projectconfigjson 内添加如下配置,使开发者工具可以正确索引到 npm 依赖的位置。

打开微信开发者工具,点击  工具 -> 构建 npm ,并勾选  使用 npm 模块  选项,构建完成后,

到 全局配置 appjson 中注册引入组件,详见 快速上手 。

支持default、primary、info、warning、danger五种类型,默认为default。  格式:

通过plain属性按钮设置为朴素按钮

设置hairline属性可以开启 05px 边框,基于伪类实现。

通过disabled属性来禁用按钮,此时按钮的bind:click事件不会触发。

通过loading属性来设置加载按钮   loading-type="spinner"   loading-text="加载中"

通过icon属性设置按钮图标,支持 Icon 组件里的所有图标,也可以传入图标 URL。

label     输入框左侧文本

type    可设置为任意原生类型, 如 number   idcard    textarea    digit

readonly  是否只读

custom-style    自定义样式

autosize    是否自适应内容高度,只对 textarea 有效,可传入对象,如 { maxHeight: 100, minHeight: 50 },单位为px

show :是否显示 

onClose 点击其他位置,关闭d出层

position            可以设置为top、bottom、left、right。

Picker 选择器 需要配合d出层使用

<van-picker columns="{{ columns }}" bind:change="onChange" />

columns 对象数组,配置每一列显示的数据

onChange(e)    有默认参数 e 

value-key    选项对象中,文字对应的 key 通常用于对象数组

show-toolbar    是否显示顶部栏

defaultIndex     初始选中项的索引,默认为 0  不是双向绑定 需要自己改变defaultIndex  的值  需要渲染两次

这里遇到的问题,是动态textarea列表,底部提交按钮position:fiexd悬浮。在滑动页面,textarea文本框中的文字会穿透到提交按钮上方,显示出来。这个问题困扰我好久,试了很多方法不管用,今天终于解决了,赶快记下来。

下面是提交按钮的wxss样式:

下面是提交按钮的wxml样式:

开始在textarea文本框上下功夫,想利用d出层类似的方案来解决这个穿透问题,但是最终宣告失败。

网上查,z-index分别在子层级,和父层级上设置这个属性,哪个值大,哪个层级就在最上面。

于是我在textarea上,设置z-index:0,这样,在模拟器上运行就没问题了,但是iOS真机就无效了。z-index会失去作用。textarea输入的内容还是会浸透在遮盖在textarea上的布局。后来查阅官方文档,发现用cover-view可以解决。

原生组件说明官方文档

于是,我把底部提交按钮的view控件,换成了cover-view

运行结果,还是不行,又将cover-view动态样式里加上z-index:999,问题才解决。

红框就是备注textarea中的内容,当d窗d出,内容就会穿透出来。这时用上面的z-index方面就失效了,也搞不懂是什么原因,于是通过改textarea显示方式来解决穿透问题。

思路:就是当d窗d出的时候,设置一个值为true,在textarea做wx:if判断那个值为true时,证明d窗d出,把textarea改成text显示即可。

这样,d窗穿透问题就解决了。

为了展示效果,提前加入多行文本模拟数据。如下图

给需要使用换行的 text 标签添加CSS自动换行属性

小程序中的 textarea 等标签虽然都是显示文本的双闭合标签,但在使用方式上跟W3C标准下的 textarea 标签有所不同。延伸阅读: 微信小程序开发文档·textarea组件

js文件

1、打开开发者工具,在项目的pages文件夹下,新建mypage文件夹,并在文件夹内新建mypage,并在appjson中将mypage设为第一页面。

2、在mypagewxml中写代码如下。

3、保存代码,在模拟器中查看效果如下图。

4、在mypagewxss中添加代码如下:view{overflow-wrap: break-word;}。

5、保存代码,就实现了自动换行,注意view默认的display为block。

6、mypagewxss不用改,再把内容改为中文测试一下,修改mypagewxml。

7、保存代码,查看模拟器如下图,中文也实现了自动换行。

最近写微信小程序做了一个评论的模态框组件,发现页面textarea 用catchtouchmove="true" 禁止滚动安卓机可以,但是苹果的不行,最后定位在textarea 这个标签能滚动的问题

解决办法:

添加 fixed="true" 就不会滚动了

本系列主要对小程序常用的组件做一个总结,方便自己及其它小程序开发者作为字典查阅和检索。

小程序组件有一些公共属性,在每个组件中代表的意义和数据类型都是一样的。

容器组件:内部能嵌套任何标签。常用的视图容器有: view , scroll-view , swiper

<view/> 是一个块级容器组件,任何一种复杂的布局都可以嵌套在 <view/> 组件内,并在 wxss 中设置相关样式。

<view/> 除了上述组件共有的属性外,还包含一组关于点击行为的属性。

在布局中,需要容器具有可滑动的功能,且能监听滚动、触顶、触底等事件,就需要 <scroll-view/> 组件, <scroll-view/> 在 <view/> 组件上添加滚动相关的属性,通过这些属性,可以响应滚动相关事件。

注意:

<textarea/> , <video/> , <map/> , <canvas/> 不能嵌套在 <scroll-view/> 中使用

利用 swiper 组件,可以实现轮播图,滑动页面,预览等,一个完整的滑块视图软件由 <swiper/> 和 <swiper-item/> 两个标签组成,不能单独使用。一个 <swiper/> 只能嵌套一个或多个 <swiper-item/> 标签,放置其它的标签会被删除,其中, <swiper-item/> 中能放置任何标签,高度默认为 100% ,另外没有任何其它特殊属性。

<swiper/> 的属性如下:

1、这个你要去调试一下看看是不是出现问题啦等等

2、应该是那个语法写错,或者其他的了

3、开发大佬调试一下后台代码就好了

4、若有电脑的问题推荐你安装驱动人生这个软件

以上就是关于微信小程序使用Vant全部的内容,包括:微信小程序使用Vant、微信小程序input、textarea层级穿透问题、解决微信小程序文字不换行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10103690.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存