我正在尝试制作一个可以向左,向右,向上和向下扩展的div,具体取决于鼠标的位置。但是当我移动鼠标时,div就会弹出并且什么都不做。我正在做什么有什么问题?
(function() {
document.onmousemove = function(e) {
draw(e);
};
function draw(e) {
var method = [
e.pageX ? e.pageX : e.clientX,
e.pageY ? e.pageY : e.clientY
];
var X = method[0],
Y = method[1];
var html = '<div class="box" style="padding-top:' + Y + ';padding-bottom:' + Y + ';padding-left:' + X + ';padding-right:' + X + '"></div>'
;
document.body.innerHTML = html;
}
})();
答案 0 :(得分:2)
您忘记了单位px
:
(function() {
document.onmousemove = function(e) {
draw(e);
};
function draw(e) {
var method = [
e.pageX ? e.pageX : e.clientX,
e.pageY ? e.pageY : e.clientY
];
var X = method[0],
Y = method[1];
var html = '<div class="box" style="background-color:red;padding-top:' + Y + 'px;padding-bottom:' + Y + 'px;padding-left:' + X + 'px;padding-right:' + X + 'px"></div>'
;
document.body.innerHTML = html;
}
})();
(我还添加了红色背景以使DIV可见)
jsFiddle:http://jsfiddle.net/8LUwp/
答案 1 :(得分:1)
X
和Y
是数字。 CSS长度需要单位。添加一些px
。
答案 2 :(得分:0)
你缺少xx和Y
的px后缀(function() {
document.onmousemove = function(e) {
draw(e);
};
function draw(e) {
var method = [
e.pageX ? e.pageX : e.clientX,
e.pageY ? e.pageY : e.clientY
];
var X = method[0],
Y = method[1];
var html = '<div class="box" style="padding-top:' + Y +"px" + ';padding-bottom:' + Y +"px" + ';padding-left:' + X +"px" + ';padding-right:' + X +"px" + '"></div>'
;
document.body.innerHTML = html;
}
})();
答案 3 :(得分:0)
CSS长度属性(填充,边距,高度,宽度等)需要单位 - px,em等。所以只需要:
padding-top:10
无效。相反,您需要添加单位:
padding-top:10px
因此,在您的情况下,设置html的行应为:
var html = '<div class="box" style="padding-top:' + Y + 'px;padding-bottom:' + Y + 'px;padding-left:' + X + 'px;padding-right:' + X + 'px"></div>';