[英]why there are square gathering at top left corner in this…div painting
I can't figure out why...what am i doing wrong. 我无法弄清楚为什么......我做错了什么。
For some reasons elements with 0,0 are being created at top. 由于某些原因,在顶部创建了具有0,0的元素。
http://jsfiddle.net/6UamQ/ http://jsfiddle.net/6UamQ/
var m = $('.main'), div = $(document.createElement('div')), d;
m.on('mousemove',function(e){
d = div.clone();
d.addClass('paint');
d.css({top:e.offsetY,left:e.offsetX});
m.append(d);
});
The problem is that once you've added the div
's to main
, you may get mousemove
events from those child elements as well. 问题是,一旦你将
div
添加到main
,你也可以从这些子元素中获取mousemove
事件。 Try filtering out those child events like this: 尝试过滤掉这样的子事件:
m.on('mousemove',function(e){
if( e.target === this ) {
d = div.clone();
d.addClass('paint');
d.css({top:e.offsetY,left:e.offsetX});
m.append(d);
}
});
It will work if you replace offsetY and offsetX with pageY and pageX. 如果用pageY和pageX替换offsetY和offsetX,它将起作用。 http://jsfiddle.net/6UamQ/4/
http://jsfiddle.net/6UamQ/4/
var m = $('.main'), div = $(document.createElement('div')), d;
m.on('mousemove',function(e){
d = div.clone();
d.addClass('paint');
d.css({top:e.pageY,left:e.pageX});
m.append(d);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.