2019-03-15 10:08:39 +08:00
|
|
|
<template>
|
|
|
|
<div id="app" style="height: 30px;overflow: hidden;width: 100%;">
|
|
|
|
<div style="width: 20%;float: left;background-color: #4a4a4a;text-align: left;"
|
|
|
|
@mousedown="changePositionMouseAction"
|
|
|
|
onselectstart="return false;"
|
|
|
|
class="noselect">
|
|
|
|
<span onselectstart="return false;" class="noselect font"
|
|
|
|
style="line-height: 30px;color: #bdbdbd;font-size: 12px;margin: 3px;">
|
2021-04-01 17:47:56 +08:00
|
|
|
{{ name }}
|
2019-03-15 10:08:39 +08:00
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<div style=" float:left;background-color: #4a4a4a;width: 80%;height:100%;text-align: left;">
|
|
|
|
<div style="line-height: 30px;height: 100%;">
|
|
|
|
<slot></slot>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2021-04-01 17:47:56 +08:00
|
|
|
export default {
|
|
|
|
name: 'app',
|
|
|
|
data () {
|
|
|
|
return {
|
|
|
|
clientX: 0,
|
|
|
|
};
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
changePositionMouseAction (event) {
|
|
|
|
document.addEventListener('mousemove', this._onMouseMove);
|
|
|
|
document.addEventListener('mouseup', this._onMouseUp);
|
|
|
|
document.addEventListener('onselectstart', this._onSelect);
|
2019-03-15 10:08:39 +08:00
|
|
|
},
|
2021-04-01 17:47:56 +08:00
|
|
|
_onSelect () {
|
|
|
|
return false;
|
2019-03-15 10:08:39 +08:00
|
|
|
},
|
2021-04-01 17:47:56 +08:00
|
|
|
_onMouseMove (event) {
|
|
|
|
let x = event.clientX;
|
|
|
|
let calcStep = parseFloat(this.step) || 1;// 默认值为1
|
|
|
|
if (x > this.clientX) {
|
|
|
|
calcStep = Math.abs(calcStep);
|
|
|
|
} else {
|
|
|
|
calcStep = -Math.abs(calcStep);
|
|
|
|
}
|
|
|
|
this.$emit('movestep', calcStep);
|
|
|
|
this.clientX = x;
|
|
|
|
},
|
|
|
|
_onMouseUp (event) {
|
|
|
|
document.removeEventListener('mousemove', this._onMouseMove);
|
|
|
|
document.removeEventListener('mouseup', this._onMouseUp);
|
|
|
|
document.removeEventListener('onselectstart', this._onSelect);
|
|
|
|
},
|
|
|
|
},
|
|
|
|
props: [
|
|
|
|
'name',
|
|
|
|
'step',
|
|
|
|
]
|
|
|
|
};
|
2019-03-15 10:08:39 +08:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped>
|
2021-04-01 17:47:56 +08:00
|
|
|
.font {
|
|
|
|
font-family: BlinkMacSystemFont, 'Helvetica Neue', Helvetica, 'Lucida Grande', 'Segoe UI', Ubuntu, Cantarell, 'SourceHanSansCN-Normal', Arial, sans-serif
|
|
|
|
}
|
2019-03-15 10:08:39 +08:00
|
|
|
|
2021-04-01 17:47:56 +08:00
|
|
|
.noselect {
|
|
|
|
-webkit-touch-callout: none; /* iOS Safari */
|
|
|
|
-webkit-user-select: none; /* Chrome/Safari/Opera */
|
|
|
|
-khtml-user-select: none; /* Konqueror */
|
|
|
|
-moz-user-select: none; /* Firefox */
|
|
|
|
-ms-user-select: none; /* Internet Explorer/Edge */
|
|
|
|
user-select: none;
|
|
|
|
/* Non-prefixed version, currently
|
|
|
|
not supported by any browser */
|
|
|
|
}
|
2019-03-15 10:08:39 +08:00
|
|
|
</style>
|