index.tsx 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import React, { useState } from 'react'
  2. import styles from './index.module.scss'
  3. import Z1titie from '@/components/Z1titie'
  4. import { myInfo1 } from './data'
  5. import classNames from 'classnames'
  6. import history from '@/utils/history'
  7. import A2info from './A2info'
  8. function A2show() {
  9. const [rotate, setRotate] = useState(false)
  10. // 打开详情
  11. const [open, setOpen] = useState('')
  12. return (
  13. <div
  14. className={styles.A2show}
  15. style={{ backgroundImage: `url(${serverUrl}show/bac.jpg)` }}
  16. >
  17. <Z1titie title='玉柄铁剑' toHome={() => history.push('/')} />
  18. <div className='A2txt'>
  19. <p>春秋中晚期 | 藏于十堰市博物馆</p>
  20. {/* <p>湖北省郧县五峰乡肖家河村乔家院墓地出土</p> */}
  21. </div>
  22. {/* 2张图片伪3D效果 */}
  23. <div className={classNames('A2rotate', rotate ? 'A2rotateShow' : '')}>
  24. <div className='A2rotate1'>
  25. {!rotate && <>
  26. <div className='A2labelLeft js'>剑首</div>
  27. <div className='A2labelLeft jg'>剑格</div>
  28. <div className='A2labelRight jj'>剑茎</div>
  29. <div className='A2labelRight js'>剑身</div>
  30. </>}
  31. <img src={`${serverUrl}show/zheng.png`} alt='' />
  32. </div>
  33. <div className='A2rotate1 A2rotate2'>
  34. {rotate && <>
  35. <div className='A2labelLeft yz'>玉璏</div>
  36. <div className='A2labelLeft yb'>玉镖</div>
  37. <div className='A2labelRight jq'>剑鞘</div>
  38. </>}
  39. <img src={`${serverUrl}show/fan.png`} alt='' />
  40. <img src={`${serverUrl}show/fan2-min.png`} alt='' />
  41. </div>
  42. </div>
  43. {/* 切换 */}
  44. <img className='A2cut1' src={`${serverUrl}show/xian2.png`} alt='' />
  45. <div className='A2cut' onClick={() => setRotate(!rotate)}>
  46. <img className='A2cut2' src={`${serverUrl}show/xian.png`} alt='' />
  47. <div className={classNames('A2cut3', rotate ? 'A2cut3Ac' : '')}>
  48. <img src={`${serverUrl}show/txtBac${rotate ? 'Ac' : ''}.png`} alt='' />
  49. </div>
  50. <div className={classNames('A2cut3 A2cut4', rotate ? '' : 'A2cut3Ac')}>
  51. <img src={`${serverUrl}show/txtBac${rotate ? '' : 'Ac'}.png`} alt='' />
  52. </div>
  53. </div>
  54. <div className='A2btm'>
  55. <img src={`${serverUrl}show/info/xian.png`} alt='' />
  56. {myInfo1.map(item => (
  57. <div key={item.id} className='A2btmRow' onClick={() => setOpen(item.title)}>
  58. <div>
  59. <img src={`${serverUrl}show/${item.id}.png`} alt='' />
  60. <img src={`${serverUrl}show/${item.id}ac.png`} alt='' />
  61. </div>
  62. <p>
  63. {item.title}
  64. </p>
  65. </div>
  66. ))}
  67. </div>
  68. {/* 打开详情 */}
  69. {open ? <A2info acKey={open as '简介'} closeFu={() => setOpen('')} /> : null}
  70. </div>
  71. )
  72. }
  73. const MemoA2show = React.memo(A2show)
  74. export default MemoA2show