В первый раз здесь. < /p>
Мне нужно изменить поведение колонки заголовка в таблице ANTD, чтобы быть измененным. Код в TS + React + antd + react-retizeable.
Столбец таблицы может быть изменена, может быть фиксированное/закрепленное столбец.
Когда вы изменяете размер последнего столбца в таблице, он увеличит ширину, но RH останется прикрепленным к столе. Таким образом, эффективно RH будет оставаться там, и увеличение ширины будет применено вместе с прокруткой, так что RH всегда будет виден, прикреплен к правой стороне таблицы. т.е. Увеличьте ширину столбца, и RH должен оставаться прикрепленным к правой стороне таблицы.import React, { useState } from 'react';
import { Resizable, ResizeCallbackData } from 'react-resizable';
import 'react-resizable/css/styles.css';
const ResizableTitle = (
// eslint-disable-next-line @typescript-eslint/no-explicit-any
props: React.HTMLAttributes & {
onResize: (
e: React.SyntheticEvent,
data: ResizeCallbackData
) => void;
onResizeStop: (
e: React.SyntheticEvent,
data: ResizeCallbackData
) => void;
width: number;
minWidth: number;
isResize: boolean;
}
) => {
const { onResize, width, onResizeStop, minWidth, isResize, ...restProps } =
props;
const [isFieldResizing, setIsFieldResizing] = useState(false);
if (!width || !isResize) {
return ;
} else {
return (
}
onResize={onResize}
draggableOpts={{ enableUserSelectHack: false }}
onResizeStart={(e) => {
e.stopPropagation();
setIsFieldResizing(true);
document.body.classList.add('no-select');
}}
onResizeStop={(e, data) => {
setIsFieldResizing(false);
onResizeStop(e, data);
document.body.classList.remove('no-select');
}}
minConstraints={[minWidth, 0]}>
);
}
};
export default ResizableTitle;
< /code>
Это образец о том, как он используется с таблицей ANTD. < /p>
import { Table } from 'antd';
import ResizableTitle from './components/resizable-title';
// ...
const ListForms = ({ formsRef }: IListForms) => {
// ....
return (
item),
onChange: onFormsSelectChange,
onSelectAll: isAllFormsSelected
? onClearAllForms
: onSelectAllForms,
fixed: 'left',
columnWidth: '50px',
}}
rowKey="id"
scroll={
formsList && formsList.length > 0
? { x: '1050', y: '400' }
: {}
}
tableLayout={
formsList && formsList.length > 0 ? 'fixed' : 'auto'
}
/>
// ...
);
};
export default ListForms;
< /code>
Вот CSS (SCSS) в случае, если нужно: < /p>
.ant-table-thead {
> tr > th {
.react-resizable-handle {
opacity: 0;
background: none;
transition: $transition-default;
right: 0;
top: 0;
z-index: 9;
height: 100%;
width: 12px;
padding: 0;
&:after {
content: "";
position: absolute;
top: 5px;
bottom: 5px;
left: 3px;
z-index: 1;
width: 1px;
background-color: $border-color-split;
}
&:hover {
opacity: 1;
}
}
&.is-resizing {
.react-resizable-handle {
opacity: 1;
transition: $transition-default;
cursor: col-resize;
}
}
&:hover {
.react-resizable-handle {
opacity: 1;
transition: $transition-default;
cursor: col-resize;
}
.table-sort-icon {
width: 16px;
opacity: 1;
transition: $transition-default;
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... ble-column
Внесение изменений в изменение размера поведения столбца таблицы ⇐ CSS
Разбираемся в CSS
-
Anonymous
1749624547
Anonymous
В первый раз здесь. < /p>
Мне нужно изменить поведение колонки заголовка в таблице ANTD, чтобы быть измененным. Код в TS + React + antd + react-retizeable.
Столбец таблицы может быть изменена, может быть фиксированное/закрепленное столбец.
Когда вы изменяете размер последнего столбца в таблице, он увеличит ширину, но RH останется прикрепленным к столе. Таким образом, эффективно RH будет оставаться там, и увеличение ширины будет применено вместе с прокруткой, так что RH всегда будет виден, прикреплен к правой стороне таблицы. т.е. Увеличьте ширину столбца, и RH должен оставаться прикрепленным к правой стороне таблицы.import React, { useState } from 'react';
import { Resizable, ResizeCallbackData } from 'react-resizable';
import 'react-resizable/css/styles.css';
const ResizableTitle = (
// eslint-disable-next-line @typescript-eslint/no-explicit-any
props: React.HTMLAttributes & {
onResize: (
e: React.SyntheticEvent,
data: ResizeCallbackData
) => void;
onResizeStop: (
e: React.SyntheticEvent,
data: ResizeCallbackData
) => void;
width: number;
minWidth: number;
isResize: boolean;
}
) => {
const { onResize, width, onResizeStop, minWidth, isResize, ...restProps } =
props;
const [isFieldResizing, setIsFieldResizing] = useState(false);
if (!width || !isResize) {
return ;
} else {
return (
}
onResize={onResize}
draggableOpts={{ enableUserSelectHack: false }}
onResizeStart={(e) => {
e.stopPropagation();
setIsFieldResizing(true);
document.body.classList.add('no-select');
}}
onResizeStop={(e, data) => {
setIsFieldResizing(false);
onResizeStop(e, data);
document.body.classList.remove('no-select');
}}
minConstraints={[minWidth, 0]}>
);
}
};
export default ResizableTitle;
< /code>
Это образец о том, как он используется с таблицей ANTD. < /p>
import { Table } from 'antd';
import ResizableTitle from './components/resizable-title';
// ...
const ListForms = ({ formsRef }: IListForms) => {
// ....
return (
item),
onChange: onFormsSelectChange,
onSelectAll: isAllFormsSelected
? onClearAllForms
: onSelectAllForms,
fixed: 'left',
columnWidth: '50px',
}}
rowKey="id"
scroll={
formsList && formsList.length > 0
? { x: '1050', y: '400' }
: {}
}
tableLayout={
formsList && formsList.length > 0 ? 'fixed' : 'auto'
}
/>
// ...
);
};
export default ListForms;
< /code>
Вот CSS (SCSS) в случае, если нужно: < /p>
.ant-table-thead {
> tr > th {
.react-resizable-handle {
opacity: 0;
background: none;
transition: $transition-default;
right: 0;
top: 0;
z-index: 9;
height: 100%;
width: 12px;
padding: 0;
&:after {
content: "";
position: absolute;
top: 5px;
bottom: 5px;
left: 3px;
z-index: 1;
width: 1px;
background-color: $border-color-split;
}
&:hover {
opacity: 1;
}
}
&.is-resizing {
.react-resizable-handle {
opacity: 1;
transition: $transition-default;
cursor: col-resize;
}
}
&:hover {
.react-resizable-handle {
opacity: 1;
transition: $transition-default;
cursor: col-resize;
}
.table-sort-icon {
width: 16px;
opacity: 1;
transition: $transition-default;
}
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79661513/making-changes-in-resize-behaviour-of-table-column[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия