在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  數(shù)據(jù)庫  HTML/ JS mousemove事件監(jiān)聽問題?

JS mousemove事件監(jiān)聽問題?

<div class="colorPanel">
    <div class="selector"><span></span></div>
    <div class="bg bg1"></div>
    <div class="bg bg2"></div>
</div>

這是結(jié)構(gòu)代碼

$(document).ready(function () {
    var eventCrit = false;
    var colorPanel = $('div.colorPanel');
    colorPanel.mousedown(function(e) {
        eventCrit = true;
        handleMousemove(event, colorPanel);
    });
    $(document).mousemove(function(e) {
        if(!eventCrit) return;
            handleMousemove(event, colorPanel);
    });
    colorPanel.mouseup(function(e) {
        eventCrit = false;
    });    
});
var handleMousemove = function (event, element) {
    event.preventDefault();
    var leftValue = (event.offsetX / element.width()) * 100 + '%';
    var topValue = (event.offsetY / element.height()) * 100 + '%';
    var selector = $('.selector');
    console.log(leftValue, topValue);
    selector.css({left: leftValue, top: topValue});
}

這是一個調(diào)色板的Demo,在鼠標(biāo)移動的時候,出現(xiàn)了不正常的值:

clipboard.png

我確定我移動的方向無錯誤,但是在第四行和倒數(shù)第三行出現(xiàn)了不正常的數(shù)值,是我的代碼問題嗎?
在百度、Google、問人后無果,請大神解惑,感激。

回答
編輯回答
笨笨噠

element.width()element.height() 提前保存起來看看

2017年7月11日 16:29
編輯回答
孤星

給div.selector元素添加上pointer-events: none;樣式即可
問題是由于在觸發(fā)mousemove事件時,鼠標(biāo)移動到了這個圖標(biāo)元素上,所以造成了該問題
給元素加上pointer-events: none;表示鼠標(biāo)事件穿透該元素并指定該元素下面的某個元素
如果你想了解pointer-events屬性,MDN有給出詳細(xì)解釋:
https://developer.mozilla.org...

2018年6月2日 08:53
編輯回答
青黛色

遇到這種問題,你自己在打印的時候詳細(xì)一點(diǎn),把計(jì)算該數(shù)值的每一項(xiàng)都打印一下,找到是哪項(xiàng)不一樣了再去找為什么,現(xiàn)有的代碼也看不出啥~~

2018年4月20日 10:31