我想知道,当使用纯JavaScript而不是jQuery库或任何其他库单击时,如何使HTML元素(如<div>
或<p>
标记元素)的大小可以调整.
我想知道,当使用纯JavaScript而不是jQuery库或任何其他库单击时,如何使HTML元素(如<div>
或<p>
标记元素)的大小可以调整.
我真的推荐使用某种图书馆,但你要的是它,你得到的是:
var p = document.querySelector('p'); // element to make resizable
p.addEventListener('click', function init() {
p.removeEventListener('click', init, false);
p.className = p.className + ' resizable';
var resizer = document.createElement('div');
resizer.className = 'resizer';
p.appendChild(resizer);
resizer.addEventListener('mousedown', initDrag, false);
}, false);
var startX, startY, startWidth, startHeight;
function initDrag(e) {
startX = e.clientX;
startY = e.clientY;
startWidth = parseInt(document.defaultView.getComputedStyle(p).width, 10);
startHeight = parseInt(document.defaultView.getComputedStyle(p).height, 10);
document.documentElement.addEventListener('mousemove', doDrag, false);
document.documentElement.addEventListener('mouseup', stopDrag, false);
}
function doDrag(e) {
p.style.width = (startWidth + e.clientX - startX) + 'px';
p.style.height = (startHeight + e.clientY - startY) + 'px';
}
function stopDrag(e) {
document.documentElement.removeEventListener('mousemove', doDrag, false);
document.documentElement.removeEventListener('mouseup', stopDrag, false);
}
Demo个
请记住,这可能不能在所有浏览器中运行(仅在Firefox中测试,绝对不能在IE<;9中运行).