Javascript Vuetify Vue-始终侦听滑动事件,但仅返回一次值
我为该项目安装了vuetify插件,以便使用colorpicker插件。由于特殊要求,我需要手动更改插件的功能和样式 该插件有一个滚动条,每次滑动按钮时,它都会返回当前的颜色十六进制值 现在,我需要使其可滑动,但只有当我放开时才返回当前颜色值 我该怎么办 下面是如何收听滚动事件Javascript Vuetify Vue-始终侦听滑动事件,但仅返回一次值,javascript,html,vue.js,vuetify.js,Javascript,Html,Vue.js,Vuetify.js,我为该项目安装了vuetify插件,以便使用colorpicker插件。由于特殊要求,我需要手动更改插件的功能和样式 该插件有一个滚动条,每次滑动按钮时,它都会返回当前的颜色十六进制值 现在,我需要使其可滑动,但只有当我放开时才返回当前颜色值 我该怎么办 下面是如何收听滚动事件 if ('touches' in e) { this.app.addEventListener('touchmove', this.onMouseMove, mouseMoveOptions);//滑动
if ('touches' in e) {
this.app.addEventListener('touchmove', this.onMouseMove, mouseMoveOptions);//滑动
Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["addOnceEventListener"])(this.app, 'touchend', this.onSliderMouseUp, mouseUpOptions);
} else {
this.app.addEventListener('mousemove', this.onMouseMove, mouseMoveOptions);
Object(_util_helpers__WEBPACK_IMPORTED_MODULE_6__["addOnceEventListener"])(this.app, 'mouseup', this.onSliderMouseUp, mouseUpOptions);
}//addEventListener is a custom function,listener event just once.
滑块移动时
onMouseMove: function onMouseMove(e) {
var value = this.parseMouseMove(e).value;
this.internalValue = value;
},
parseMouseMove: function parseMouseMove(e) {
var start = this.vertical ? 'top' : 'left';
var length = this.vertical ? 'height' : 'width';
var click = this.vertical ? 'clientY' : 'clientX';
var _a = this.$refs.track.getBoundingClientRect(),
_b = start,
trackStart = _a[_b],
_c = length,
trackLength = _a[_c];
var clickOffset = 'touches' in e ? e.touches[0][click] : e[click]; // Can we get rid of any here?
// It is possible for left to be NaN, force to number
var clickPos = Math.min(Math.max((clickOffset - trackStart) / trackLength, 0), 1) || 0;
if (this.vertical) clickPos = 1 - clickPos;
if (this.$vuetify.rtl) clickPos = 1 - clickPos;
var isInsideTrack = clickOffset >= trackStart && clickOffset <= trackStart + trackLength;
var value = parseFloat(this.min) + clickPos * (this.maxValue - this.minValue);
return {
value: value,
isInsideTrack: isInsideTrack
};
},
onMouseMove:onMouseMove(e)函数{
var value=this.parseMouseMove(e).value;
这个值=值;
},
parseMouseMove:函数parseMouseMove(e){
var start=this.vertical?'top':'left';
var length=this.vertical?'height':'width';
var click=this.vertical?'clientY':'clientX';
var _a=this.$refs.track.getBoundingClientRect(),
_b=开始,
trackStart=\u a[\u b],
_c=长度,
轨迹长度=_a[_c];
var clickOffset='touchs'在e?e.touchs[0][click]:e[click];//我们可以去掉这里的任何内容吗?
//左有可能是NaN,强制是数字
var clickPos=Math.min(Math.max((clickOffset-trackStart)/trackLength,0),1)| | 0;
如果(此垂直)clickPos=1-clickPos;
如果(此.$vuetify.rtl)clickPos=1-clickPos;
var isInsideTrack=clickOffset>=trackStart&&clickOffset如果您使用的是Vue.js,我建议您在
部分中使用Vue.js“事件处理”,而不是addEventListener
,例如:
<div
@mousedown="moveStartMethod($event)"
@mousemove.prevent="moveMotionMethod"
@mouseup="moveEndMethod"
>
</div>
更多信息:并搜索“处理鼠标修改器”部分
moveStartMethod: function (event) {
...
},