77 lines
2.2 KiB
Vue
Raw Normal View History

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>