本文实例为大家分享了vue实现计步器功的具体代码,供大家参考,具体内容如下
1.首先先创建一个Stepper.vue
<template>
<div class="counter-component">
<div class="counter-btn" @click="mins" :class="{ active: muber==min }">-</div>
<input type="text" v-model="muber" @keyup="keyUpnumberVal" />
<div class="counter-btn" @click="adds" :class="{ active: muber==max }">+</div>
</div>
</template>
<script>
export default {
name: "Stepper",
data() {
return {
muber: 1
};
},
props: {
min: {
type: Number,
default: 1
},
max: {
type: Number,
default: 5
},
disabled,
},
methods: {
mins() {
if (this.muber <= this.min) {
return;
}
this.muber--;
this.$emit("countNumber", this.muber);
},
adds() {
if (this.muber >= this.max) {
return;
}
this.muber++;
this.$emit("countNumber", this.muber);
},
keyUpnumberVal() {
let numValue;
if (typeof this.muber === "string") {
}
this.$emit("countNumber", this.muber);
}
}
};
</script>
<style lang="less" scoped>
.counter-component {
position: relative;
display: inline-table;
overflow: hidden;
vertical-align: middle;
}
.counter-show {
float: left;
}
input {
display: inline-block;
border: none;
border-top: 1px solid #e3e3e3;
border-bottom: 1px solid #e3e3e3;
height: 25px;
line-height: 25px;
width: 30px;
text-align: center;
outline: none;
text-align: center;
background: #fff;
}
.counter-btn {
border: 1px solid #e3e3e3;
display: inline-block;
height: 25px;
line-height: 25px;
width: 25px;
text-align: center;
cursor: pointer;
}
.counter-btn:hover {
border-color: #4fc08d;
background: #4fc08d;
color: #fff;
}
.active {
background: rgb(182, 181, 181);
}
</style>
2.然后页面加载
import Stepper from "./Stepper/Stepper";
<Stepper :min="Numbers" :max="maxNumbers" @countNumber="getFeslaves('countNumber',$event)"></Stepper>
data(){
return {
Numbers: 1,
maxNumbers: 5
}
}