清除JavaScript。动态创建的div resize:它只会增长!为什么?

时间:2016-12-15 15:32:46

标签: javascript html css html5 resize

首先,整个代码为here, on pastebin

不使用jquery或类似内容!

我有一个使用DIV创建document.createElement("div")的HTML,并使用document.getElementById('p').appendChild(d);插入页面

新的DIV提供了一堆事件处理程序:

var d = document.createElement('div');
d.className = 'rect';
d.addEventListener('mousedown', catch_box, false);
d.addEventListener('mouseup', release_box, false);
d.addEventListener('mouseout', release_box, false);
d.addEventListener('mousemove', mouse_move_box, false);
d.addEventListener(wheel_hook, scroll_box, false);
document.getElementById('p').appendChild(d);

这很好用:

// move the box around on 'mousemove'
var lPos = cache.left + m_speed * cache.h_dir,
    tPos = cache.top + m_speed * cache.v_dir,
    ok = (lPos >= 0) && ((lPos + cache.width) <= max_width) &&
         (tPos >= 0) && ((tPos + cache.height) <= max_height);
if (ok) {
    box.style.left = lPos + 'px';
    box.style.top = tPos + 'px';
}

但这不是:

// resize the box
var hSize = cache.width + s_speed * cache.h_dir,
    vSize = cache.height + s_speed * cache.v_dir,
    ok = (hSize >= min_width) &&
         ((cache.left + hSize) <= max_width) &&
         (vSize >= min_height) &&
         ((cache.top + vSize) <= max_height);
if (ok) {
    box.setAttribute('style', 'width:'+hSize+'px;height:'+vSize+'px;');
    box.style.width = hSize + 'px';
    box.style.height = vSize + 'px';
}

box.style.widthbox.style.height可能只会增长:(

问题是:为什么?以及如何解决这个问题?

0 个答案:

没有答案