general-attribute.uvue 4.0 KB
Newer Older
1 2 3 4 5 6
<template>
  <!-- #ifdef APP -->
  <scroll-view style="flex: 1">
    <!-- #endif -->
    <view>
      <page-head :title="title"></page-head>
DCloud-WZF's avatar
DCloud-WZF 已提交
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
      <view class="uni-padding-wrap container">
        <view
          :id="generalId"
          :class="generalClass"
          :name="generalName"
          :title="generalTitle"
          :data-test="generalData"
          :style="generalStyle"
          ref="general-target"
        >
          <text>id: {{ generalId }}</text>
          <text>class: {{ generalClass }}</text>
          <text>name: {{ generalName }}</text>
          <text>title: {{ generalTitle }}</text>
          <text>data-test: {{ generalData }}</text>
          <text>style: {{ generalStyle }}</text>
        </view>
        <view
          class="btn btn-style uni-common-mt"
          @click="validateGeneralAttributes"
        >
28 29
          <text class="btn-inner">{{ validateGeneralAttrText }}</text>
        </view>
DCloud-WZF's avatar
DCloud-WZF 已提交
30 31 32
        <view class="btn btn-ref uni-common-mt" @click="changeHeight">
          <text class="btn-inner">通过 ref 修改高度</text>
        </view>
33
        <view class="view-class" :hover-class="hoverClass" ref="view-target">
DCloud-WZF's avatar
DCloud-WZF 已提交
34 35
          <text class="text">按下 50 ms 后背景变红</text>
          <text class="text">抬起 400 ms 后背景恢复</text>
36
        </view>
DCloud-WZF's avatar
DCloud-WZF 已提交
37 38 39 40 41 42 43
        <view
          class="view-class"
          :hover-class="hoverClass"
          :hover-start-time="1000"
          :hover-stay-time="1000"
          ref="view-target"
        >
DCloud-WZF's avatar
DCloud-WZF 已提交
44 45
          <text class="text">按下 1000 ms 后背景变红</text>
          <text class="text">抬起 1000 ms 后背景恢复</text>
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
        </view>
      </view>
    </view>
    <!-- #ifdef APP -->
  </scroll-view>
  <!-- #endif -->
</template>

<script lang="uts">
export default {
  data() {
    return {
      title: 'general-attribute',
      generalId: 'general-id',
      generalClass: 'general-class',
      generalName: 'general-name',
      generalTitle: 'general-title',
      generalData: 'general-data',
DCloud-WZF's avatar
DCloud-WZF 已提交
64
      generalStyle: 'background-color: aqua',
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
      validateGeneralAttrText: '验证基础属性',
      hoverClass: 'hover-class',
      validateViewAttrText: '验证 view 属性',
    }
  },
  methods: {
    validateGeneralAttributes() {
      const generalTarget = this.$refs.get('general-target') as INode
      const generalId = generalTarget.getAttribute('id')
      if (generalId != this.generalId) {
        this.validateGeneralAttrText = '基础属性 id 验证失败'
        return
      }
      const classList = generalTarget.ext['classList'] as string[]
      if (!classList.includes('general-class')) {
        this.validateGeneralAttrText = '基础属性 class 验证失败'
        return
      }
      const generalName = generalTarget.getAttribute('name')
      if (generalName != this.generalName) {
        this.validateGeneralAttrText = '基础属性 name 验证失败'
        return
      }
      const generalTitle = generalTarget.getAttribute('title')
      if (generalTitle != this.generalTitle) {
        this.validateGeneralAttrText = '基础属性 title 验证失败'
        return
      }
      const generalData = generalTarget.getAttribute('data-test')
      if (generalData != this.generalData) {
        this.validateGeneralAttrText = '基础属性 data-test 验证失败'
        return
      }
      this.validateGeneralAttrText = '基础属性验证成功'
    },
DCloud-WZF's avatar
DCloud-WZF 已提交
100 101 102 103
    changeHeight(){
      const generalTarget = this.$refs.get('general-target') as INode
      generalTarget.style.set('height', '200px')
    }
104 105 106 107 108
  },
}
</script>

<style>
109 110 111 112 113 114 115 116 117 118 119
.btn {
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #409eff;
  border-radius: 5px;
}
.btn-inner {
  color: #fff;
}
120
.general-class {
DCloud-WZF's avatar
DCloud-WZF 已提交
121 122 123 124
  margin-left: 40px;
  padding: 10px;
  width: 260px;
  height: 160px;
125 126 127 128 129 130 131 132 133
  background-color: antiquewhite;
}
.view-class {
  margin: 20px 0 0 50px;
  padding: 10px;
  width: 240px;
  height: 100px;
  background-color: antiquewhite;
}
DCloud-WZF's avatar
DCloud-WZF 已提交
134
.view-class .text {
135
  margin-top: 5px;
136 137 138 139 140 141
  text-align: center;
}
.hover-class {
  background-color: red;
}
</style>