uni-app 环游记

news/2025/1/8 22:47:17/

- 搜索栏样式h5 和小程序不一样,h5 偏高

- scroll-view 不能左右排布
scroll-view 宽度固定就好

- request post请求跨域
在post 请求时必须要添加请求头header 不然会报错, get 则不会(编辑器自带的浏览器调试可以避免这些问题)

header: {'content-type': 'application/x-www-form-urlencoded', 
}

- navTo 要注意
在地址跳转时,要设置/pages 不能单单pages 不然就会出现地址找不到的情况

navTo('/pages/user/user-coupon')

- 小程序组件之间不支持强转 +,而h5 则可以
例如

<view v-if="+status > 1"></view>

- App.vue 中声明全局变量 globalData , 在App.vue 中无法修改,其他页面正常

success: res => {
// this.globalData 未定义, 可以设置this.$option.globalData 但是并没有修改原本的属性this.globalData.checkLogin = true;if (this.userInfoReadyCallback) {this.userInfoReadyCallback(res)}	
}

- image ,图片加载会闪动
这是因为使用了mode,小程序渲染机制的问题。解决方式,1是不用mode,宽高固定,2是在使用mode的同时,设置样式 height:auto

- 官方推荐日历插件,闰月切换月份有误
因为闰月有31号而平月没有,所以在使用了setMonth 方法后,31号跳转下个月时候会出现错误

这里我们稍微修改一下源码
找到getDate 函数中涉及月份的判断部分

//在切换按钮时多传一个参数 type : 'prev_next'
dataBefor(id, types) {const year = this.canlender.year + '-' + this.canlender.month + '-' + this.canlender.datethis.getMonthAll(id, year,'prev_next')
},
...
getDate(date, AddDayCount = 0, str = 'day',type = '') { // 这里的type 就是上面的 prev_nextif (typeof date !== 'object') {date = date.replace(/-/g, '/')}const dd = new Date(date)switch (str) {case 'day':dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期breakcase 'month':// 这里就是我们多加的一行判断// 是月份切换 && 是月底31号 && 不是7月份(因为7月和8月都有31号)// 跳转到下个月的1号if(type == 'prev_next' && dd.getDate() == '31' && dd.getMonth() != 6){dd.setMonth(dd.getMonth() + AddDayCount,1)}else{dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期}breakcase 'year':dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期break}
...

- 软键盘失去焦点时会留下白底
在使用uni-app 制作h5时,遇到一个情况,当我在input 输入文字,点击完成后,键盘收回,但是页面仍然会被顶起,这时候页面底部会留下一层白底。

其实这并不是uni-app 的问题,而是微信浏览器和ios 版本的原因。

这里提供2种方法

  1. scrollTop
  2. scrollIntoView
// 回到顶部
window.scroll(0,0)// 滚动到可视区域
document.body.scrollIntoView()

思路其实一样,就是在input 失焦的时候,将页面进行滚动到指定位置。

我这里采用的是第二种

	<input placeholder="会员卡号" @blur="gobackTop()"v-model="card_num" />...onLoad() {//安卓手机var u = navigator.userAgent;if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) { //  拿到获取焦点的inputlet input = document.querySelector('input')const innerHeight = window.innerHeight;window.addEventListener('resize', () => {const newInnerHeight = window.innerHeight;if (innerHeight > newInnerHeight) {// 键盘弹出事件处理} else {// 键盘收起事件处理input.scrollIntoView(false);}});}},...//methodsgobackTop() {if (document.documentElement.offsetHeight <=document.documentElement.clientHeight && ['input', 'textarea'].includes(event.target.localName)) {document.body.scrollIntoView() // 回顶部}// 相当于scrollTop(0,0)// uni.pageScrollTo({// 	scrollTop: 0// });},

实际上这么操作,聚焦的时候还是有点跳,没有那么圆润,但也无法,希望以后能用更好的解决方案。

- background-image动态赋值报错

:style="{ backgroundImage:'url('+img+')'}

这样图片可以展示出来,但是会报一个路径错误,是uni-app 渲染机制的问题。
同时需要注意的是,backgroundImage 只能存放线上图片地址,无法加载本地图片地址。
我们可以把样式做一个变量赋值。

<view class="cu-avatar round lg" :style="noteStyle"></view>
...
this.noteStyle = "background-image : url("+this.userNote.pic+")";

- swiper 高度动态赋值

<swiper :current="1" :style="{height: swiper.height + 'px'}">
...
onShow() {const query = uni.createSelectorQuery().in(this);let that = this;query.select('.swiper-item-result').boundingClientRect(data => {that.swiper = data;}).exec();
},

- textarea 穿透
正常textarea 显示没问题,但是将textarea 放入modal中,再次展开时,ios没问题,安卓端回出现穿透现象,textarea 无法正常隐藏。
这里需要给textarea 添加一个变量跟随modal 的展开与否,显示隐藏。

- canvas 绘制图片本地测试可以,线上空白
我在项目中遇到了这个问题,多次排查发现,在体验版的时候,打开调试工具的时候会有图,关闭调试工具的时候就是空白。
最后发现是白名单的问题,在小程序后台管理这里添加图片的白名单,就好了。

- canvas 合成图模糊锯齿严重
这里需要调整的是画布比例,例如我们最后想要 300 * 1000 的图片。这里的canvas 就要设置成 600*2000 ,同时下面的所有内容都要等比放大,例如字体大小,位置定居,线宽等等


http://www.ppmy.cn/news/407881.html

相关文章

美翻朋友圈:用Python生成蒙太奇马赛克图片

题图 | 视觉中国 来源 | ZackSock&#xff08;ID:ZackSock&#xff09; 我们有时候会听到这么一个词--“蒙太奇”&#xff0c;但却不知道这个词是什么意思。蒙太奇原为建筑学术语&#xff0c;意为构成、装配。而后又延伸为一种剪辑理论&#xff1a;当不同镜头拼接在一起时&…

python turtle 海龟绘图,绘制小猪佩奇

项目介绍&#xff1a; 瞎玩的&#xff0c;要用Python来画小猪佩奇。 其实这个实现并不难&#xff0c;只要使用Python的内置模块turtle进行绘图即可。但是&#xff0c;如要完成一个好的作品&#xff0c;还是需要耗费一定时间的&#xff0c;因为你要提前布置好所有点的坐标和走线…

《寻梦环游记》背后:一出“硅谷”遇上“好莱坞”的好戏

硅谷Live / 实地探访 / 热点探秘 / 深度探讨 现实总比电影精彩。 最近上映的动画片《寻梦环游记》&#xff08;Coco&#xff09;&#xff0c;大家都看了吗&#xff1f;它简直要把小探的眼泪都赚光了好嘛。。 作为皮克斯动画公司&#xff08;Pixar Pictures&#xff09;出品的第…

发疯的Swing——《飞屋环游记》

这几天偶然看了电影《飞屋环游记》&#xff0c;颇受感动。方块脸的老头、稚气未脱的亚洲小娃、以及五彩缤纷的气球和飞屋总在我脑海晃动&#xff0c;一股浓浓的温馨、幸福和执着久久无法抹去。Pixar公司利用其招牌的动画技术和最杰出的3D特效&#xff0c;让人物的每个细微表情和…

ai背景合成_AI突破次元壁又火了!《飞屋环游记》动漫角色一秒变真人,网友:小罗的“猫王发型”有点酷...

从“换脸”到“生成漫画脸”&#xff0c;AI在图像合成方面的技术已经非常成熟了。 因为支持一键切换&#xff0c;而且效果逼真&#xff0c;之前抖音的一款「变身漫画」特效还登上微博了热搜&#xff0c;从明星到路人&#xff0c;近千万用户参与。国外也有一款「秒变迪士尼公主」…

大热片《寻梦环游记》到底在讲什么

最近《寻梦环游记》刷爆朋友圈&#xff0c;一心只想学习的我&#xff0c;并没有去看&#xff0c;但是还是很想知道这个电影是讲的什么。怎么办呢&#xff0c;所谓把大象放进冰箱分三步。要知道这个电影讲什么也可以分三步&#xff1a; 1.登陆豆瓣 2.抓取所有短评 3.利用词云…

格列佛游记思维导图

最近很多人都怀念经典&#xff0c;小时候&#xff0c;我相信大部分人都是看过格列佛游记的&#xff0c;我在这里将格列佛游记用xmind思维导图稍微整理了下。 雷米尔鲁•格列佛生于洛丁加姆州&#xff0c;从十四岁开始在英国与荷兰的大学中念书&#xff0c;后来以外科医生的身份…

看完《寻梦环游记》,40岁的我哭的像个小孩

今天想谈谈感情的事情。比如谈个恋爱&#xff0c;和谁谈&#xff1f; 和大猩猩、亡灵&#xff0c;还是机器人&#xff1f; 别笑。 在电影世界中&#xff0c;一切皆有可能。 最感动人的情感不是在人类之间&#xff0c;而是在“非人类”之间。 正在热映的《寻梦环球记》&#xff…