微信小程序实习day03

滚动容器

<view>
  <scroll-view scroll-y class="view1" scroll-top="{{scroll-top1}}" bindscrolltoupper="upper" bindscrolltolower="lower" upper-threshold="100"><!-- 竖着展示,右边出现滚动条 scroll-top表示滚动条的默认开始位置
  bindscrolltoupper滚动到最上面时触发,bindscrolltolower滚动到最下面时触发,upper-threshold距离上方一定距离时触发,只要大于就重读触发
   -->
    <view id="red" class="item"></view>
    <view id="green" class="item"></view>
    <view id="blue" class="item"></view>
  </scroll-view>
</view>

<view>--------------</view>

<view>
  <scroll-view scroll-x class="view2"><!-- 横着展示 -->
    <view id="red" class="item"></view>
    <view id="green" class="item"></view>
    <view id="blue" class="item"></view>
  </scroll-view>
</view>
.view1{
  height: 400rpx;
}

.view2{
  white-space: nowrap;/* 保证横向不换行1 */
  width: 100%;
}

.view1 .item{
  width: 500rpx;
  height: 500rpx;
}

.view2 .item{
  width: 500rpx;
  height: 500rpx;
  display: inline-block;/* 保证横向不换行2 */
}

#red{
  background-color: #ff0000;
}

#green{
  background-color: #00ff00;
}

#blue{
  background-color: #0000ff;
}
  upper: function() {
    console.log("111");
  },

  lower: function() {
    console.log("222");
  }

滚动插件使用scroll-y(竖着)或scroll-x(横着实现)

scroll-top="{{scroll-top1}}"  

表示滚动栏初始距离上方或左方的距离,可以用变量的值

bindscrolltoupper="upper" 
bindscrolltolower="lower" 
upper-threshold="100"

第一个,当往上划到顶时,调用函数
第二个,往下滚到底部,调用函数
第三个,距离上方超过一定距离时,触发函数

对于竖着的滚动条而言,需要对其设置高度
对于横着的滚动条,首先需要对它设置white-space: nowrap; 以及宽度,保证内部内容不换行
其次需要对其内部子元素设置display: inline-block;,让其在一行显示


单击数字,滚动条自动移动到第数字个滚动栏处

<scroll-view class="view1" scroll-x>
  <view wx:for="{{30}}" wx:key="key" bindtap="scroll" data-id="{{index}}">
    <!-- 从零开始到30 -->
    {{index}}
  </view>
</scroll-view>

<scroll-view class="view2" scroll-y scroll-with-animation scroll-into-view="{{intoView}}"><!-- 指向id的值,当它的值和内部某个id相同,会直接定位到其位置 -->
  <view wx:for="{{30}}" id="view{{index}}">
    {{index}}
  </view>
</scroll-view>
.view1{
  width: 100%;
  white-space: nowrap;
}

.view1 view{
  display: inline-block;
  border: 1px solid red;
  margin: 10rpx;
}

.view2{
  height: 400rpx;
}

.view2 view{
  border: 1px solid red;
  margin: 20rpx;
}
  scroll: function (e) {
    this.setData({
      intoView:"view"+e.currentTarget.dataset.id
    })
    /* console.log(e.currentTarget.dataset.id); */
  }
bindtap="scroll" data-id="{{index}}"

单击时传递参数,这里的index值和内部显示的index的值是相同的
index是一个表示第几项的参数,即使view内部不写也同样有效,名称也可以自定义。

scroll-with-animation

开启滚动动画效果,默认值为false,但是只写这一条就相当于true

scroll-into-view="{{intoView}}"

滚动到参数处,intoView指向id的值,当它的值和内部某个id相同,会直接定位到其位置

id="view{{index}}"

设定id为对应的次序

  scroll: function (e) {
    this.setData({
      intoView:"view"+e.currentTarget.dataset.id
    })
    /* console.log(e.currentTarget.dataset.id); */
  }

e为传入的参数,传入的e是一个超大的数据集合,内部包含了此元素位置、空间大小等参数
这里使用其currentTarget中dataset中的id值,即点击的格子对应的次序

swiper滑动模块

<swiper autoplay interval="2000" indicator-dots indicator-color="red" indicator-active-color="green" circular>
  <swiper-item><image src="../../images/jd1.jpg"></image></swiper-item>
  <swiper-item><image src="../../images/jd2.jpg"></image></swiper-item>
  <swiper-item><image src="../../images/jd3.jpg"></image></swiper-item>
  <swiper-item><image src="../../images/jd4.jpg"></image></swiper-item>
  <swiper-item><image src="../../images/jd5.jpg"></image></swiper-item>
</swiper>

自动播放 间隔 指示点 指示点颜色 当前指示点颜色 第一张和最后一张的衔接

对图片设置宽度填满页面

<swiper autoplay interval="{{interval}}" indicator-dots indicator-color="red" indicator-active-color="green" circular>
  <block wx:for="{{imgUrl}}">
    <swiper-item>
      <image src="{{item.image}}"></image>
    </swiper-item>
  </block>
</swiper>
  data: {
    interval: 2000,
    indicatorColor: "red",
    imgUrl:[
      {image:"../../images/jd1.jpg"},
      {image:"../../images/jd2.jpg"},
      {image:"../../images/jd3.jpg"},
      {image:"../../images/jd4.jpg"},
      {image:"../../images/jd5.jpg"}
    ]
  },

动态遍历

图标

<icon type="success" size="20"></icon>
<icon type="success" size="40"></icon>

<icon type="success_no_circle" size="40"></icon>
<icon type="success_no_circle" color="yellow" size="40"></icon>
<icon type="info" color="green" size="40"></icon>
<icon type="warn" color="red" size="40"></icon>
<icon type="waiting" color="rgb(0,255,0)" size="40"></icon>
<icon type="waiting" color="rgba(0,255,0,0.25)" size="40"></icon>
<icon type="waiting" color="purple" size="40"></icon>
<icon type="cancel" size="40"></icon>
<icon type="download" size="40"></icon>
<icon type="search" size="40"></icon>
<icon type="clear" size="40"></icon>

文本添加与删除

<text selectable="{{true}}">
  {{text}}
</text>
<button bindtap="add">add line</button>
<button bindtap="remove">remove line</button>
// pages/text/text.js
const initData = "this is first line\nthis is second line";
const extraline=[];
Page({

  /**
   * 页面的初始数据
   */
  data: {
    text: initData
  },

  add: function() {
/*     extraline.push("other line");
    extraline.push("other line");
    this.setData({
      text:initData+"\n"+extraline.join("\n")
    }) */
    extraline.push("\nother line");
    extraline.push("\nother line");
    this.setData({
      text:initData+extraline.join("")
    })
  },

  remove: function() {
    if(extraline.length>0)
    {
      extraline.pop();
      this.setData({
        text: initData+extraline.join("")
      })
    }
  },

单击添加两行文字,单击删除一行文字

form表单按钮处理及事件处理

<button size="mini">mini</button>
<button size="default">default</button>
<button size="default" type="default">default</button>
<button size="default" type="primary">default</button>
<button size="default" type="warn">default</button>
<button size="default" disabled>default</button>
<button size="default" disabled="{{false}}">default</button>
<button size="default" plain>default</button>
<button size="default" loading>default</button>

<form bindsubmit="formsubmit">
  <input type="text" name="username" />
  <input type="password" name="pwd" />
  <button data-id="1" form-type="submit" disabled="{{disabled}}">注册</button>
  <button form-type="reset">重置</button>
</form>

<button hover-class="other-button">blue</button>
.other-button{
  background-color: blue;
}
  formsubmit: function(e) {
    this.setData({
      disabled:true
    })
    if(e.detail.value.username.length==0){
      wx.showToast({
        title: '用户名不能为空',
        icon: "error",
        duration: 1500
      })
      this.setData({
        disabled: false
      })
    }
    else{
      console.log(e.detail.value.username.length)
      wx.redirectTo({
        url: '/pages/index/index',
      })
    }
  },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值