uniapp网络请求/轮播图/scroll-view

系统管理员 2021-09-13 15:54 960阅读 0赞

设置尺寸自动转换

HBuilderX - 偏好设置 - 编辑器配置 - px转rpx/upx比例

  1. 750设计稿 - 比例750/750 = 1
  2. 350设计稿 - 比例 350/750 = 0.5
  3. 640设计稿 - 比例 640/750 = 0.85
  4. 设置完成后,在代码中写 100px时,会自动提示转换成相应数值

设备rpx换算px:屏幕宽度/750,px换算成rpx:750/屏幕宽度;

  1. iPhone5 1rpx = 0.42px    1px = 2.34px
  2. iPhone6 1rpx = 0.5px     1px = 2rpx
  3. iPhone6s 1rpx = 0.552px    1px = 1.81rpx

为什么vue组件的属性,有的需要加冒号“:”,有的不用?

  1. 加冒号的,说明后面的是一个变量或者表达式;没加冒号的后面就是对应的字符串字面量。

例如:

  1. <my-progress :stroke-width="18" mycolor="orange" :text-inside="true" />
  2. 因为mycolor为字符串的字面量 而其他的属性不是number就是bool

swiper轮播图

  • indicator-dots :是否显示面板指示点
  • autoplay :是否自动切换
  • interval :自动切换时间间隔
  • indicator-color :指示点颜色
  • indicator-active-color :当前选中的指示点颜色
  • duration :滑动动画时长
  • disable-touch :是否禁止用户 touch 操作

scroll-view(可滚动视图区域)

  • scroll-x :允许横向滚动
  • scroll-y :允许纵向滚动
  • scroll-into-view :值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素
  • scroll-with-animation :在设置滚动条位置时使用动画过渡
  • @scroll :滚动时触发,event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY}
  • @scrolltolower :滚动到底部/右边,会触发 scrolltolower 事件
  • scroll-top :设置竖向滚动条位置
  • scroll-left :设置横向滚动条位置
  • show-scrollbar :控制是否出现滚动条
  • refresher-enabled :开启自定义下拉刷新

注:三个属性在页面中使用时属性前面应加冒号
1.例子:设置一个简单的左右滑动的模块
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
效果图如下:
在这里插入图片描述
2.运用纵向滑动设置一个类似锚点选择的功能(常用于外卖)
注:需要给滑动模块设置高度
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
效果图如下(点击即可触发):
在这里插入图片描述
3.设置左侧列表切换时的背景颜色
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.uniapp双联动实现

  • uni.createSelectorQuery()
    返回一个 SelectorQuery 对象实例。可以在这个实例上使用 select 等方法选择节点,并使用 boundingClientRect 等方法选择需要查询的信息。
    在这里插入图片描述
    在这里插入图片描述

    onReady() {

    1. this.getNodesInfo();
    2. },
    3. methods: {
    4. toPath(){
    5. uni.switchTab({
    6. url:"../text/text"
    7. })
    8. },
    9. setId(index){
    10. this.clickId="po"+index;
    11. this.currentNum=index;
    12. },
    13. scroll(e){
    14. let scrollTop=e.target.scrollTop;
    15. for(let i=0;i<this.topList.length;i++){
    16. let h1=this.topList[i];
    17. let h2=this.topList[i+1];
    18. if(scrollTop>=h1&&scrollTop<h2){
    19. this.currentNum=i;
    20. }
    21. }
    22. },
    23. scrolltolower(){
    24. setTimeout(()=>{
    25. this.currentNum=3; //设置滑动到最后一个元素,此处的3表示
    26. },80); //第四个元素
    27. },
    28. getNodesInfo(){
    29. const query = uni.createSelectorQuery().in(this);
    30. query.selectAll('.title').boundingClientRect().exec((res)=>{
    31. let nodes=res[0];
    32. let rel=[];
    33. nodes.map(item=>{
    34. rel.push(item.top)
    35. })
    36. this.topList=rel;
    37. });
    38. },
    39. }

uni.request(OBJECT) :发起网络请求

1.OBJECT 参数说明

  1. url :开发者服务器接口地址(必须填)
  2. data :请求的参数
  3. header :设置请求的 headerheader 中不能设置 Referer
  4. method :常用get/post(默认get
  5. success :收到开发者服务成功返回的回调函数
  6. fail :接口调用失败的回调函数
  7. complete :接口调用结束的回调函数(调用成功、失败都会执行)

2.method 有效值

  1. get //适用于各平台
  2. post //适用于各平台
  3. put
  4. delete
  5. connect
  6. head
  7. options
  8. trace

3.success 返回参数

  1. data :开发者服务器返回的数据
  2. statusCode :开发者服务器返回的 HTTP 状态码
  3. header :开发者服务器返回的 HTTP Response Header

接口请求示例:

  1. uni.request({
  2. url: 'https://www.example.com/request',
  3. data: { //参数
  4. text: 'uni.request'
  5. },
  6. header: {
  7. 'custom-header': 'hello' //自定义请求头信息
  8. },
  9. method:'POST'//请求方式 或GET
  10. success: (res) => {
  11. console.log(res.data);
  12. this.text = 'request success';
  13. }
  14. });

返回值
如果希望返回一个 requestTask 对象,需要至少传入 success / fail / complete 参数中的一个
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,960人围观)

还没有评论,来说两句吧...

相关阅读