Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用户如何在会话期间调整html表列宽_Javascript_Html_Html Table - Fatal编程技术网

Javascript 用户如何在会话期间调整html表列宽

Javascript 用户如何在会话期间调整html表列宽,javascript,html,html-table,Javascript,Html,Html Table,用户如何在html会话期间调整html表列宽 table td元素主要包含文本输入字段,这些字段通过css类进行合理的大小调整,表将默认容纳这些字段。这可能会导致一些水平滚动,但这没关系 但在编辑会话期间,用户可能需要增加某些列的宽度以帮助他们进行编辑,我该如何做?下次加载页面时,这些设置是否丢失并不重要 我假设我使用Javascript来更新字段宽度,但是如何触发它,视觉提示是什么 # 专辑 体裁 唱片艺术家 分类专辑艺术家 专辑艺术家 对专辑艺术家进行排序 1. 1. 将所有输入转换为文

用户如何在html会话期间调整html表列宽

table td元素主要包含文本输入字段,这些字段通过css类进行合理的大小调整,表将默认容纳这些字段。这可能会导致一些水平滚动,但这没关系

但在编辑会话期间,用户可能需要增加某些列的宽度以帮助他们进行编辑,我该如何做?下次加载页面时,这些设置是否丢失并不重要

我假设我使用Javascript来更新字段宽度,但是如何触发它,视觉提示是什么


#
专辑
体裁
唱片艺术家
分类专辑艺术家
专辑艺术家
对专辑艺术家进行排序
1.
1.

将所有输入转换为文本区域,因为不需要编写javascript解决方案。应用正确的css。 文本区域具有调整大小选项。您可能需要使用JavaScript对其进行自定义

对于可调整大小的列,有多种方法。我花时间做了一个劣质的解决方案,并宁愿做完全不同的,但这里有一些东西让你开始

它使用文本区域而不是输入。对于列中的每个textarea,调整其大小将使该列中的所有textarea调整为相同的宽度。显然,css需要调整,因为它们没有完全对齐,所以这不是一个很好的解决方案

更好的解决方案是获得每个列分隔符的x位置,并能够根据需要设置这些x位置。但我会在下次再调查

让allInputs=document.querySelectorAll('input');
设cols=document.querySelectorAll('table tr th')。长度为1;
让isDown=false;
设elSelected=null;
让allTextareas=Array.from(allInputs.map)(el,i)=>{
让newEl=document.createElement(“textarea”);
newEl.innerHTML=el.value;
newEl.addEventListener('mousedown',function(){
isDown=真;
elSelected={el:this,i:i,colID:i%cols};
});
el.parentNode.appendChild(newEl);
el.parentNode.removeChild(el);
返回{el:newEl,colID:i%cols};
});
document.addEventListener('mouseup',function(){
isDown=假;
elSelected=null;
});
设colWidth=0;
document.addEventListener('mousemove',function(){
如果(isDown和elSelected){
if(elSelected.el.clientWidth!=colWidth){
colWidth=elSelected.el.clientWidth;
所有文本区域。forEach((o,j)=>{
if(elSelected.i!==j&&elSelected.colID==o.colID){
o、 el.style.width=colWidth+'px';
}
});
}
}
});
textarea{
调整大小:水平;
}

#
专辑
体裁
唱片艺术家
分类专辑艺术家
专辑艺术家
对专辑艺术家进行排序
1.
1.

将所有输入转换为文本区域,因为不需要编写javascript解决方案。应用正确的css。 文本区域具有调整大小选项。您可能需要使用JavaScript对其进行自定义

对于可调整大小的列,有多种方法。我花时间做了一个劣质的解决方案,并宁愿做完全不同的,但这里有一些东西让你开始

它使用文本区域而不是输入。对于列中的每个textarea,调整其大小将使该列中的所有textarea调整为相同的宽度。显然,css需要调整,因为它们没有完全对齐,所以这不是一个很好的解决方案

更好的解决方案是获得每个列分隔符的x位置,并能够根据需要设置这些x位置。但我会在下次再调查

让allInputs=document.querySelectorAll('input');
设cols=document.querySelectorAll('table tr th')。长度为1;
让isDown=false;
设elSelected=null;
让allTextareas=Array.from(allInputs.map)(el,i)=>{
让newEl=document.createElement(“textarea”);
newEl.innerHTML=el.value;
newEl.addEventListener('mousedown',function(){
isDown=真;
elSelected={el:this,i:i,colID:i%cols};
});
el.parentNode.appendChild(newEl);
el.parentNode.removeChild(el);
返回{el:newEl,colID:i%cols};
});
document.addEventListener('mouseup',function(){
isDown=假;
elSelected=null;
});
设colWidth=0;
document.addEventListener('mousemove',function(){
如果(isDown和elSelected){
if(elSelected.el.clientWidth!=colWidth){
colWidth=elSelected.el.clientWidth;
所有文本区域。forEach((o,j)=>{
if(elSelected.i!==j&&elSelected.colID==o.colID){
o、 el.style.width=colWidth+'px';
}
});
}
}
});
textarea{
调整大小:水平;
}

#