UNPKG

@jianghujs/jianghu

Version:

Progressive Enterprise Framework

51 lines (49 loc) 1.9 kB
<!-- fixedTableColV4.html >>>>>>>>> --> <script> async function reFixedTableCol() { // 阻塞等待 100ms const delay = (ms) => { return new Promise(resolve => setTimeout(resolve, ms)); } await delay(100); // remove old style let fixedTableColStyle = document.getElementById('fixedTableColV4Style'); if(fixedTableColStyle) { fixedTableColStyle.remove(); } // generate new style let fixedTableColStyleSheet = '<!-- generated by fixedTableColV4.html >>>>>>>>> --><style id="fixedTableColV4Style">'; let tables = document.getElementsByTagName('table'); for(let tableIndex = 0; tableIndex < tables.length; tableIndex++) { let table = tables[tableIndex]; const className = 'table-fixed-' + (tableIndex + 1); table.classList.add(className); let tableThList = table.getElementsByTagName('th'); let left = 0; for(let tableThIndex = 0; tableThIndex < tableThList.length; tableThIndex++) { let tableTh = tableThList[tableThIndex]; if(!tableTh.classList || !tableTh.classList.contains('fixed')) { continue; } fixedTableColStyleSheet += ` table.${className} thead th.fixed:nth-child(${tableThIndex + 1}), table.${className} tbody td.fixed:nth-child(${tableThIndex + 1}) { position: sticky !important; position: -webkit-sticky !important; left: ${left}px !important; z-index: 10!important; background: white; border-right: none; } `; left += tableTh.offsetWidth; } } fixedTableColStyleSheet += '</style><!-- <<<<<<<< generated by fixedTableColV4.html -->'; document.body.insertAdjacentHTML('beforeend', fixedTableColStyleSheet); } onload = function() { reFixedTableCol(); } </script> <!-- <<<<<<<<<< fixedTableColV4.html -->