问题描述
我正在将具有不同长度文本的内容动态加载到Bootstrap Carousel组件中。为了防止父容器随每个轮播项目的装载而跳高,我想确定所有项目的最大高度并将其设置为最大高度。这样一来,我就可以使用填充等方式处理布局,而页面上的其他弹性项目不会四处移动。
<div id="carouselExampleSlidesOnly" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="..." class="d-block w-100" alt="...">
</div>
</div>
</div>
<script>
$(document).ready(function () {
//set all carousel items to the highest container
var containers = document.getElementsByClassName('carousel-item');
var max_height = 0;
//find highest container
for (var i = 0; i < containers.length; i++) {
var container_height = containers[i].offsetHeight;
if (container_height > max_height) {
max_height = container_height;
}
}
//set container heights
for (var i = 0; i < containers.length; i++) {
containers[i].offsetHeight = max_height;
}
});
</script>
这是行不通的,因为唯一显示的容器高度> 0。有没有一种方法可以模拟这些容器的高度,而无需实际显示它们?
解决方法
这与您的问题类似。我想您可以从中得到一个主意。
import React,{ Component } from "react";
import Table from "@material-ui/core/Table";
import TableBody from "@material-ui/core/TableBody";
import TableCell from "@material-ui/core/TableCell";
import TableContainer from "@material-ui/core/TableContainer";
import TableHead from "@material-ui/core/TableHead";
import TableRow from "@material-ui/core/TableRow";
class Wish extends Component {
constructor() {
super();
this.state = {
items: [
{ uid: "1001",item: "iPhone" },{ uid: "1002",item: "iPad" },{ uid: "1003",item: "iTab" },{ uid: "1004",item: "iTelevision" }
],wishes: [
{ uid: "1001",wish: true },wish: false },item: false }
]
};
}
render() {
return (
<div>
<TableContainer>
<Table>
<TableHead>
<TableRow>
<TableCell>UID</TableCell>
<TableCell align="left">Item</TableCell>
<TableCell align="left">Wish</TableCell>
</TableRow>
</TableHead>
<TableBody>
{this.state.items.map((item) => (
<TableRow key={item.name}>
<TableCell component="th" scope="row">
{item.uid}
</TableCell>
<TableCell align="left">{item.item}</TableCell>
<TableCell align="left">{item.fat}</TableCell>
</TableRow>
))}
</TableBody>
</Table>
</TableContainer>
</div>
);
}
}
export default Wish;