这让我很烦恼。
我在一个元素上的 offset().left 得到了荒谬的值 -32567,边距不超过 200。 offset().top 工作正常。
代码:
(function( $ ) {
$.fn.draw = function( options ) {
var settings = $.extend( {
'width' : null,
'height' : null,
'color' : '#000'
}, options);
return this.each(function() {
var o = settings;
var obj = $(this);
var offset = $(obj).offset();
var c = o.color;
var w = o.width;
var h = o.height;
var i = 0;
var t, l = 0;
$(obj).css('overflow','hidden');
$(obj).css('position','relative');
if(w != null){
$(obj).css('width',w);
}
if(o.height != null ){
$(obj).css('height',h);
}
$(obj).mousemove(function(e){
var $mark = $('<div class="mark" id="mark'+i+'"/>');
l = (e.pageX) - (offset.left);
t = (e.pageY) - offset.top;
$(this).append($mark);
$("#mark"+i).css({
'position' : 'absolute',
'top' : t,
'left' : l,
'width' : '3px',
'height' : '3px',
'background' : c
});
i++;
});
});
};
})( jQuery );
我正在制作一个有趣的小插件,可以将任何 block 元素变成绘图板。当我只是在整个页面上使用鼠标位置且框位于 0,0 时,它起作用了。
现在我试图允许它出现在浏览器上的任何位置,这就是问题出现的地方。
您可以在以下位置找到它(不起作用):http://hangerdev.com/zacksplayground/
抱歉,如果我语无伦次。我该 sleep 了。
最佳答案
可能缺少 $(document).ready(),在控制台中输入 $("#box").offset().left 会为我返回 200,即使警报显示 -32k。
关于jquery - offset().left 返回奇怪的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12016209/