mar*_*vic 2 image-gallery preview zooming reactjs
我尝试结合react-image-gallery使用react-image-magnify以获取具有放大预览效果的画廊,并且根据react-image-gallery文档我将MyReactImageMagnify组件传递给组件上的renderItem道具,ImageGallery但右侧没有放大的图像。
这是带有放大功能的图库的样子https://www.amazon.com/Samsung-MicroSD-Adapter-MB-ME128GA-AM/dp/B06XWZWYVP
这是迄今为止我所拥有的代码和盒子https://codesandbox.io/s/goofy-lumiere-gk1y1
class MyImageGallery extends Component {
myRenderItem() {
return <MyReactImageMagnify {...this.props} />;
}
render() {
const properties = {
thumbnailPosition: "left",
useBrowserFullscreen: false,
showPlayButton: false,
renderItem: this.myRenderItem.bind(this),
items: [
{
original: "https://placeimg.com/640/480/any/1",
thumbnail: "https://placeimg.com/250/150/any/1"
},
{
original: "https://placeimg.com/640/480/any/2",
thumbnail: "https://placeimg.com/250/150/any/2"
},
{
original: "https://placeimg.com/640/480/any/3",
thumbnail: "https://placeimg.com/250/150/any/3"
}
]
};
return <ImageGallery {...properties} />;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:亚马逊只是为了说明“向右放大”。我制作了另一个带有 2 列网格的代码和框,您可以看到普通<MyReactImageMagnify />组件如何工作和<MyImageGallery />不工作。https://codesandbox.io/s/practical-browser-0dbyo
小智 5
我认为问题在于元素溢出。图库使用overflow: hidden隐藏不可见的幻灯片,因此缩放图像也被隐藏。
好处react-image-magnify是您可以指定要渲染大图像的门户。
这是沙箱:https : //codesandbox.io/s/xenodochial-rosalind-g9ve4
创建一个带有 id 的新 div,您希望在其中显示大图:
<Grid container spacing={4}>
<Grid item xs={6}>
<MyImageGallery />
</Grid>
<Grid container spacing={2} item xs={6} direction="column">
<Grid item>
<div id="myPortal" />
</Grid>
</Grid>
</Grid>
Run Code Online (Sandbox Code Playgroud)
画廊的每个元素都是一个 ReactImageMagnify 组件,门户 id 作为一个属性:
<ReactImageMagnify
{...{
smallImage: {
alt: "Wristwatch by Ted Baker London",
isFluidWidth: true,
src: "https://placeimg.com/640/480/any"
},
largeImage: {
src: "https://placeimg.com/640/480/any",
width: 640,
height: 480
},
enlargedImagePortalId: "myPortal"
}}
/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3977 次 |
| 最近记录: |