lanxin hai 1 semana
achega
b3be09b1e0
Modificáronse 77 ficheiros con 13967 adicións e 0 borrados
  1. 180 0
      css/animate.css
  2. 862 0
      css/page.css
  3. 1172 0
      css/reset.css
  4. 1664 0
      css/section1.css
  5. BIN=BIN
      img/bg.png
  6. BIN=BIN
      img/hover.png
  7. BIN=BIN
      img/logo.png
  8. BIN=BIN
      img/nei2.gif
  9. BIN=BIN
      img/nei2.png
  10. 28 0
      index.html
  11. 111 0
      js/common.js
  12. 1945 0
      js/data.js
  13. 2834 0
      js/fullPage/jquery.fullPage.js
  14. 10 0
      js/gsap.min.js
  15. 5 0
      js/jquery-ui.min.js
  16. 3938 0
      js/jquery.min.js
  17. 1 0
      js/jweixin-1.6.0.js
  18. 795 0
      js/list.js
  19. 12 0
      js/pc.min.js
  20. 273 0
      js/section1.js
  21. 54 0
      menu.html
  22. BIN=BIN
      modelImg/hbts01.png
  23. BIN=BIN
      modelImg/hbts02.png
  24. BIN=BIN
      modelImg/hbts03.png
  25. BIN=BIN
      modelImg/hbts04.png
  26. BIN=BIN
      modelImg/hbts05.png
  27. BIN=BIN
      modelImg/hbts06.png
  28. BIN=BIN
      modelImg/hbts07.png
  29. BIN=BIN
      modelImg/hbts08.png
  30. BIN=BIN
      modelImg/hbts09.png
  31. BIN=BIN
      modelImg/hbts10.png
  32. BIN=BIN
      modelImg/hbts11.png
  33. BIN=BIN
      modelImg/hbts12.png
  34. BIN=BIN
      modelImg/hbts13.png
  35. BIN=BIN
      modelImg/hbts14.png
  36. BIN=BIN
      modelImg/hbts15.png
  37. BIN=BIN
      modelImg/hbts16.png
  38. BIN=BIN
      modelImg/hbts17.png
  39. BIN=BIN
      modelImg/hbts18.png
  40. BIN=BIN
      modelImg/hbts19.png
  41. BIN=BIN
      modelImg/hbts20.png
  42. BIN=BIN
      modelImg/hbts21.png
  43. BIN=BIN
      modelImg/hbts22.png
  44. BIN=BIN
      modelImg/hbts23.png
  45. BIN=BIN
      modelImg/hbts24.png
  46. BIN=BIN
      modelImg/hbts25.png
  47. BIN=BIN
      modelImg/hbts26.png
  48. BIN=BIN
      modelImg/hbts27.png
  49. BIN=BIN
      modelImg/hbts28.png
  50. BIN=BIN
      modelImg/hbts29.png
  51. BIN=BIN
      modelImg/hbts30.png
  52. BIN=BIN
      modelImg/hbts31.png
  53. BIN=BIN
      modelImg/hbts32.png
  54. BIN=BIN
      modelImg/hbts33.png
  55. BIN=BIN
      modelImg/hbts34.png
  56. BIN=BIN
      modelImg/hbts35.png
  57. BIN=BIN
      modelImg/hbts36.png
  58. BIN=BIN
      modelImg/hbts37.png
  59. BIN=BIN
      modelImg/hbts38.png
  60. BIN=BIN
      modelImg/hbts39.png
  61. BIN=BIN
      modelImg/hbts40.png
  62. BIN=BIN
      modelImg/hbts41.png
  63. BIN=BIN
      modelImg/hbts42.png
  64. BIN=BIN
      modelImg/hbts43.png
  65. BIN=BIN
      modelImg/hbts44.png
  66. BIN=BIN
      modelImg/hbts45.png
  67. BIN=BIN
      modelImg/hbts46.png
  68. BIN=BIN
      modelImg/hbts47.png
  69. BIN=BIN
      modelImg/hbts48.png
  70. BIN=BIN
      modelImg/hbts49.png
  71. BIN=BIN
      modelImg/hbts50.png
  72. BIN=BIN
      modelImg/hbts51.png
  73. BIN=BIN
      modelImg/hbts52.png
  74. BIN=BIN
      modelImg/hbts53.png
  75. BIN=BIN
      modelImg/hbts54.png
  76. 9 0
      page.html
  77. 74 0
      section1.html

+ 180 - 0
css/animate.css

@@ -0,0 +1,180 @@
+@-webkit-keyframes fadeIn {
+  0% {
+    opacity: 0;
+  }
+  100% {
+    opacity: 1;
+  }
+}
+@keyframes fadeIn {
+  0% {
+    opacity: 0;
+  }
+  100% {
+    opacity: 1;
+  }
+}
+@-webkit-keyframes fadeInUp {
+  0% {
+    opacity: 0;
+    -webkit-transform: translate3d(0, 100%, 0);
+            transform: translate3d(0, 100%, 0);
+  }
+  100% {
+    opacity: 1;
+    -webkit-transform: none;
+            transform: none;
+  }
+}
+@keyframes fadeInUp {
+  0% {
+    opacity: 0;
+    -webkit-transform: translate3d(0, 100%, 0);
+            transform: translate3d(0, 100%, 0);
+  }
+  100% {
+    opacity: 1;
+    -webkit-transform: none;
+            transform: none;
+  }
+}
+@-webkit-keyframes fadeInDown {
+  0% {
+    opacity: 0;
+    -webkit-transform: translate3d(0, -100%, 0);
+            transform: translate3d(0, -100%, 0);
+  }
+  100% {
+    opacity: 1;
+    -webkit-transform: none;
+            transform: none;
+  }
+}
+@keyframes fadeInDown {
+  0% {
+    opacity: 0;
+    -webkit-transform: translate3d(0, -100%, 0);
+            transform: translate3d(0, -100%, 0);
+  }
+  100% {
+    opacity: 1;
+    -webkit-transform: none;
+            transform: none;
+  }
+}
+@-webkit-keyframes bounceInUp {
+  0%, 60%, 75%, 90%, to {
+    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+  }
+  0% {
+    opacity: 0;
+    -webkit-transform: translate3d(0, 50%, 0);
+            transform: translate3d(0, 50%, 0);
+  }
+  60% {
+    opacity: 1;
+    -webkit-transform: translate3d(0, -20px, 0);
+            transform: translate3d(0, -20px, 0);
+  }
+  75% {
+    -webkit-transform: translate3d(0, 10px, 0);
+            transform: translate3d(0, 10px, 0);
+  }
+  90% {
+    -webkit-transform: translate3d(0, -5px, 0);
+            transform: translate3d(0, -5px, 0);
+  }
+  to {
+    -webkit-transform: translateZ(0);
+            transform: translateZ(0);
+    opacity: 1;
+  }
+}
+@keyframes bounceInUp {
+  0%, 60%, 75%, 90%, to {
+    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+  }
+  0% {
+    opacity: 0;
+    -webkit-transform: translate3d(0, 50%, 0);
+            transform: translate3d(0, 50%, 0);
+  }
+  60% {
+    opacity: 1;
+    -webkit-transform: translate3d(0, -20px, 0);
+            transform: translate3d(0, -20px, 0);
+  }
+  75% {
+    -webkit-transform: translate3d(0, 10px, 0);
+            transform: translate3d(0, 10px, 0);
+  }
+  90% {
+    -webkit-transform: translate3d(0, -5px, 0);
+            transform: translate3d(0, -5px, 0);
+  }
+  to {
+    -webkit-transform: translateZ(0);
+            transform: translateZ(0);
+    opacity: 1;
+  }
+}
+@-webkit-keyframes bounceInDown {
+  0%, 60%, 75%, 90%, to {
+    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+  }
+  0% {
+    opacity: 0;
+    -webkit-transform: translate3d(0, -50%, 0);
+            transform: translate3d(0, -50%, 0);
+  }
+  60% {
+    opacity: 1;
+    -webkit-transform: translate3d(0, 25px, 0);
+            transform: translate3d(0, 25px, 0);
+  }
+  75% {
+    -webkit-transform: translate3d(0, -10px, 0);
+            transform: translate3d(0, -10px, 0);
+  }
+  90% {
+    -webkit-transform: translate3d(0, 5px, 0);
+            transform: translate3d(0, 5px, 0);
+  }
+  to {
+    -webkit-transform: none;
+            transform: none;
+    opacity: 1;
+  }
+}
+@keyframes bounceInDown {
+  0%, 60%, 75%, 90%, to {
+    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+  }
+  0% {
+    opacity: 0;
+    -webkit-transform: translate3d(0, -50%, 0);
+            transform: translate3d(0, -50%, 0);
+  }
+  60% {
+    opacity: 1;
+    -webkit-transform: translate3d(0, 25px, 0);
+            transform: translate3d(0, 25px, 0);
+  }
+  75% {
+    -webkit-transform: translate3d(0, -10px, 0);
+            transform: translate3d(0, -10px, 0);
+  }
+  90% {
+    -webkit-transform: translate3d(0, 5px, 0);
+            transform: translate3d(0, 5px, 0);
+  }
+  to {
+    -webkit-transform: none;
+            transform: none;
+    opacity: 1;
+  }
+}

+ 862 - 0
css/page.css

@@ -0,0 +1,862 @@
+body {
+  overflow: hidden;
+}
+
+.section-ww {
+  position: relative;
+  background: #505050 no-repeat center/cover;
+}
+.section-ww img {
+  opacity: 0;
+}
+.section-ww .wwbox {
+  position: absolute;
+  left: 50%;
+  top: 50%;
+}
+.section-ww .wwbox .ww {
+  height: 100%;
+}
+.section-ww .titlebox {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  width: 24%;
+  font-size: 0;
+}
+.section-ww .titlebox .title1 {
+  position: relative;
+  width: 100%;
+  -webkit-transition: all 1s 0.8s;
+  transition: all 1s 0.8s;
+  visibility: hidden;
+}
+.section-ww .titlebox .title2 {
+  position: absolute;
+  width: 100%;
+  left: 0;
+  top: 0;
+  visibility: hidden;
+  -webkit-transform: translate3d(0, -3%, 0);
+          transform: translate3d(0, -3%, 0);
+  -webkit-transition: all 1s 1s;
+  transition: all 1s 1s;
+}
+.section-ww .titlebox .name {
+  position: relative;
+  margin-top: 9%;
+  max-width: 100%;
+  visibility: hidden;
+  -webkit-transform: translate3d(0, -3%, 0);
+          transform: translate3d(0, -3%, 0);
+  -webkit-transition: all 1s 1.1s;
+  transition: all 1s 1.1s;
+}
+.section-ww.active .tree {
+  visibility: visible;
+  opacity: 1;
+}
+.section-ww.active .ewmbox {
+  visibility: visible;
+  opacity: 1;
+}
+.section-ww.active .title1 {
+  visibility: visible;
+  opacity: 1;
+}
+.section-ww.active .title2 {
+  visibility: visible;
+  opacity: 1;
+  -webkit-transform: none;
+          transform: none;
+}
+.section-ww.active .name {
+  visibility: visible;
+  opacity: 1;
+  -webkit-transform: none;
+          transform: none;
+}
+.section-ww.down .ww {
+  opacity: 1;
+  -webkit-animation: down-upout 1s ease-out 0.1s forwards;
+          animation: down-upout 1s ease-out 0.1s forwards;
+}
+.section-ww.active .ww {
+  opacity: 0;
+  -webkit-animation: activedown-upin 1s ease-out 0.3s forwards;
+          animation: activedown-upin 1s ease-out 0.3s forwards;
+}
+.section-ww.active.up .ww {
+  opacity: 0;
+  -webkit-animation: activeup-downin 1s ease-out 0.3s forwards;
+          animation: activeup-downin 1s ease-out 0.3s forwards;
+}
+.section-ww.up .ww {
+  opacity: 1;
+  -webkit-animation: up-downout 1s ease-out 0.3s forwards;
+          animation: up-downout 1s ease-out 0.3s forwards;
+}
+
+.section-szc {
+  background-image: url(https://vr.njmuseum.com/img/szc/webp/bg.webp);
+}
+
+.section-xjm {
+  background-image: url(https://vr.njmuseum.com/img/xjm/webp/bg.webp);
+}
+
+.section-xdm {
+  background-image: url(https://vr.njmuseum.com/img/xdm/webp/bg.webp);
+}
+
+.section-xfl {
+  background-image: url(https://vr.njmuseum.com/img/xfl/webp/bg.webp);
+}
+
+.section-sst {
+  background-image: url(https://vr.njmuseum.com/img/sst/webp/bg.webp);
+}
+
+.section-jcyy {
+  background-image: url(https://vr.njmuseum.com/img/jcyy/webp/bg.webp);
+}
+
+.section-jz {
+  background-image: url(https://vr.njmuseum.com/img/jz/webp/bg.webp);
+}
+
+.section-rnsys {
+  background-image: url(https://vr.njmuseum.com/img/rnsys/webp/bg.webp);
+}
+
+.section-xhjs {
+  background-image: url(https://vr.njmuseum.com/img/xhjs/webp/bg.webp);
+}
+
+.section-tnd {
+  background-image: url(https://vr.njmuseum.com/img/tnd/webp/bg.webp);
+}
+
+.section-ft {
+  background-image: url(https://vr.njmuseum.com/img/ft/webp/bg.webp);
+}
+
+.section-xl {
+  background-image: url(https://vr.njmuseum.com/img/xl/webp/bg.webp);
+}
+
+.section-dy {
+  background-image: url(https://vr.njmuseum.com/img/dy/webp/bg.webp);
+}
+
+.section-tyh {
+  background-image: url(https://vr.njmuseum.com/img/tyh/webp/bg.webp);
+}
+
+.section-mp {
+  background-image: url(https://vr.njmuseum.com/img/mp/webp/bg.webp);
+}
+
+.section-tld {
+  background-image: url(https://vr.njmuseum.com/img/tld/webp/bg.webp);
+}
+
+.section-lltgm {
+  background-image: url(https://vr.njmuseum.com/img/lltgm/webp/bg.webp);
+}
+
+.section-jgyb {
+  background-image: url(https://vr.njmuseum.com/img/jgyb/webp/bg.webp);
+}
+
+.section-ylwbh {
+  background-image: url(https://vr.njmuseum.com/img/ylwbh/webp/bg.webp);
+}
+
+.section-mhxxj {
+  background-image: url(https://vr.njmuseum.com/img/mhxxj/webp/bg.webp);
+}
+
+.section-hylwgt {
+  background-image: url(https://vr.njmuseum.com/img/hylwgt/webp/bg.webp);
+}
+
+.section-lylwgt {
+  background-image: url(https://vr.njmuseum.com/img/lylwgt/webp/bg.webp);
+}
+
+.section-mp2 {
+  background-image: url(https://vr.njmuseum.com/img/mp2/webp/bg.webp);
+}
+
+.section-swllgj {
+  background-image: url(https://vr.njmuseum.com/img/swllgj/webp/bg.webp);
+}
+
+.section-hyxgg {
+  background-image: url(https://vr.njmuseum.com/img/hyxgg/webp/bg.webp);
+}
+
+.section-sjhhwmp {
+  background-image: url(https://vr.njmuseum.com/img/sjhhwmp/webp/bg.webp);
+}
+
+.section-hhwzyp {
+  background-image: url(https://vr.njmuseum.com/img/hhwzyp/webp/bg.webp);
+}
+
+.section-xl2 {
+  background-image: url(https://vr.njmuseum.com/img/xl2/webp/bg.webp);
+}
+
+.section-video {
+  background: #000 no-repeat center/contain;
+}
+.section-video.section-video-tnd {
+  background-image: url(../video/tnd.webp);
+}
+.section-video.section-video-yztj {
+  background-image: url(../video/yztj.webp);
+}
+.section-video.section-video-kqax {
+  background-image: url(../video/kqax.webp);
+}
+.section-video.section-video-bh {
+  background-image: url(../video/bh.webp);
+}
+.section-video.section-video-gp {
+  background-image: url(../video/gp.webp);
+}
+.section-video.section-video-nj {
+  background-image: url(../video/nj.webp);
+}
+.section-video.section-video-tyh {
+  background-image: url(../video/tyh.webp);
+}
+.section-video.section-video-yc {
+  background-image: url(../video/yc.webp);
+}
+.section-video.section-video-zh {
+  background-image: url(../video/zh.webp);
+}
+.section-video.section-video-gm {
+  background-image: url(../video/gm.webp);
+}
+.section-video.section-video-sxz {
+  background-image: url(../video/sxz.webp);
+}
+
+.section-szc .wwbox {
+  height: 61vh;
+  margin-left: -36%;
+  margin-top: -23vh;
+  z-index: 1;
+}
+.section-szc .titlebox {
+  margin-left: 10.5%;
+  margin-top: -15.5%;
+}
+.section-szc .titlebox .name {
+  position: absolute;
+  left: 0%;
+  bottom: -12.5%;
+}
+.section-szc .ewmbox .sys {
+  background-image: url(https://vr.njmuseum.com/img/webp/sys-szc.webp);
+}
+
+.section-xjm .wwbox {
+  height: 82.3vh;
+  margin-left: -36%;
+  margin-top: -42vh;
+  z-index: 1;
+}
+.section-xjm .titlebox {
+  margin-left: 6.5%;
+  margin-top: -14.5%;
+}
+.section-xjm .titlebox .name {
+  position: absolute;
+  left: 0%;
+  bottom: -12.5%;
+}
+.section-xjm .ewmbox .sys {
+  background-image: url(https://vr.njmuseum.com/img/webp/sys-szc.webp);
+}
+
+.section-xdm .wwbox {
+  height: 89vh;
+  margin-left: 2%;
+  margin-top: -41vh;
+  z-index: 1;
+}
+.section-xdm .titlebox {
+  margin-left: -24.5%;
+  margin-top: -14.5%;
+}
+.section-xdm .titlebox .name {
+  position: absolute;
+  left: 0%;
+  bottom: -12.5%;
+}
+.section-xdm .ewmbox .sys {
+  background-image: url(https://vr.njmuseum.com/img/webp/sys-szc.webp);
+}
+
+.section-xfl .wwbox {
+  height: 94vh;
+  margin-left: -37%;
+  margin-top: -44vh;
+}
+.section-xfl .titlebox {
+  margin-left: 7.5%;
+  margin-top: -13.5%;
+}
+.section-xfl .titlebox .name {
+  position: absolute;
+  left: 0%;
+  bottom: -15%;
+}
+.section-xfl .ewmbox .sys {
+  background-image: url(https://vr.njmuseum.com/img/webp/sys-xfl.webp);
+}
+
+.section-sst .wwbox {
+  height: 85vh;
+  margin-left: -24%;
+  margin-top: -44vh;
+  z-index: 1;
+}
+.section-sst .titlebox {
+  margin-left: 7.5%;
+  margin-top: -13.5%;
+}
+.section-sst .titlebox .name {
+  position: absolute;
+  left: 0%;
+  bottom: -12.5%;
+}
+.section-sst .ewmbox .sys {
+  background-image: url(https://vr.njmuseum.com/img/webp/sys-sst.webp);
+}
+
+.section-jcyy .wwbox {
+  height: 49.7vh;
+  margin-left: -33%;
+  margin-top: -6vh;
+  z-index: 1;
+}
+.section-jcyy .titlebox {
+  margin-left: 7%;
+  margin-top: -16.5%;
+}
+.section-jcyy .titlebox .name {
+  position: absolute;
+  left: -11%;
+  margin-top: 0;
+  max-height: 100%;
+}
+
+.section-jz .wwbox {
+  height: 73vh;
+  margin-left: -12%;
+  margin-top: -33vh;
+}
+.section-jz .titlebox {
+  margin-left: -28%;
+  margin-top: -14.5%;
+}
+
+.section-rnsys .wwbox {
+  height: 77vh;
+  margin-left: -28%;
+  margin-top: -38vh;
+}
+.section-rnsys .titlebox {
+  margin-left: -4%;
+  margin-top: -14.5%;
+}
+
+.pcbody .section-xhjs .wwbox {
+  height: 64vh;
+  margin-left: 3%;
+  margin-top: -6%;
+}
+.pcbody .section-xhjs .titlebox {
+  margin-left: -31%;
+  margin-top: -13%;
+}
+.pcbody .section-xhjs .name {
+  position: absolute !important;
+  top: 4%;
+  left: 0;
+  margin: 0;
+}
+
+.section-tnd .wwbox {
+  height: 73.7vh;
+  margin-left: -29.7%;
+  margin-top: -36vh;
+}
+.section-tnd .titlebox {
+  margin-left: 7.3%;
+  margin-top: -18.5%;
+}
+
+.section-ft .wwbox {
+  height: 82.7vh;
+  margin-left: 3.3%;
+  margin-top: -37vh;
+}
+.section-ft .titlebox {
+  margin-left: -30.7%;
+  margin-top: -13.5%;
+}
+.section-ft .titlebox .name {
+  max-width: 110%;
+}
+.section-ft .titlebox:after {
+  content: "";
+  position: absolute;
+  width: 123%;
+  height: 145%;
+  top: -30%;
+  left: -11%;
+  background: url(https://vr.njmuseum.com/img/ft/webp/titlebox.webp) no-repeat center top/100% auto;
+  opacity: 0;
+  visibility: hidden;
+  -webkit-transition: all 1.2s 1s;
+  transition: all 1.2s 1s;
+}
+.section-ft.active .titlebox:after {
+  opacity: 1;
+  top: -36%;
+  visibility: visible;
+}
+
+.section-xl .wwbox {
+  height: 73.7vh;
+  margin-left: -37.7%;
+  margin-top: -28vh;
+}
+.section-xl .titlebox {
+  margin-left: 1.3%;
+  margin-top: -10.5%;
+}
+
+.section-dy .wwbox {
+  height: 62.7vh;
+  margin-left: -2.7%;
+  margin-top: -32vh;
+}
+.section-dy .titlebox {
+  margin-left: -27.7%;
+  margin-top: -13.5%;
+}
+
+.section-tyh .wwbox {
+  height: 50.7vh;
+  right: 41%;
+  margin-top: -12vh;
+  left: auto;
+}
+.section-tyh .wwbox .ww {
+  position: absolute;
+}
+.section-tyh .titlebox {
+  margin-left: -27.7%;
+  margin-top: -14.5%;
+}
+
+.section-mp .tree {
+  height: 72.7vh;
+  left: 0;
+  bottom: 8vh;
+  visibility: hidden;
+  -webkit-transition: all 1s 0.3s;
+  transition: all 1s 0.3s;
+}
+.section-mp .wwbox {
+  height: 88.7vh;
+  margin-left: -29.7%;
+  margin-top: -44vh;
+}
+.section-mp .titlebox {
+  margin-left: -0.7%;
+  margin-top: -13.5%;
+}
+
+.section-tld .wwbox {
+  height: 79vh;
+  margin-left: -31.7%;
+  margin-top: -21%;
+}
+.section-tld .titlebox {
+  margin-left: -1.7%;
+  margin-top: -13.5%;
+}
+
+.section-lltgm .wwbox {
+  height: 98vh;
+  margin-left: -31.7%;
+  top: 0;
+}
+.section-lltgm .titlebox {
+  margin-left: 0.3%;
+  margin-top: -13.5%;
+}
+.section-lltgm.active .ww {
+  -webkit-animation-name: activeup-downin;
+          animation-name: activeup-downin;
+}
+
+.section-jgyb .wwbox {
+  height: 68vh;
+  margin-left: -35.7%;
+  margin-top: -13%;
+}
+.section-jgyb .titlebox {
+  margin-left: 3.3%;
+  margin-top: -16.5%;
+}
+
+.section-ylwbh .wwbox {
+  height: 71vh;
+  margin-left: -26%;
+  top: auto;
+  bottom: 0;
+}
+.section-ylwbh .titlebox {
+  margin-left: 1.3%;
+  margin-top: -15%;
+}
+.section-ylwbh .titlebox .name {
+  max-width: 110%;
+}
+
+.section-mhxxj .wwbox {
+  height: 38vh;
+  margin-left: -19%;
+  z-index: 1;
+  margin-top: 1%;
+}
+.section-mhxxj .titlebox {
+  margin-left: -18.5%;
+  margin-top: -22%;
+  width: 37%;
+}
+
+.section-hylwgt .wwbox {
+  height: 69vh;
+  margin-left: -38%;
+  margin-top: -13%;
+}
+.section-hylwgt .titlebox {
+  margin-left: 2.3%;
+  margin-top: -12%;
+}
+
+.section-lylwgt .wwbox {
+  height: 100vh;
+  margin-left: -37%;
+  top: 0;
+}
+.section-lylwgt .titlebox {
+  margin-left: 3.3%;
+  margin-top: -12%;
+}
+
+.section-mp2 .wwbox {
+  height: 70vh;
+  margin-left: -18.7%;
+  margin-top: -31vh;
+}
+.section-mp2 .titlebox {
+  margin-left: 2%;
+  margin-top: -12%;
+}
+
+.section-swllgj .wwbox {
+  height: 49vh;
+  margin-left: -24.7%;
+  top: auto;
+  bottom: 6%;
+}
+.section-swllgj .titlebox {
+  margin-left: 2%;
+  margin-top: -22%;
+}
+
+.section-hyxgg .wwbox {
+  height: 96vh;
+  margin-left: -43.7%;
+  top: 0;
+}
+.section-hyxgg .titlebox {
+  margin-left: 4%;
+  margin-top: -12%;
+}
+
+.section-sjhhwmp .wwbox {
+  height: 70vh;
+  margin-left: -5.7%;
+  margin-top: -16%;
+}
+.section-sjhhwmp .titlebox {
+  margin-left: -25%;
+  margin-top: -13%;
+}
+
+.section-hhwzyp .wwbox {
+  height: 49vh;
+  margin-left: -14.7%;
+  top: auto;
+  bottom: 0;
+}
+.section-hhwzyp .titlebox {
+  margin-left: 2%;
+  margin-top: -20%;
+}
+.section-hhwzyp .titlebox .name {
+  position: absolute;
+  top: 0;
+  left: -27%;
+  margin-top: 0;
+}
+
+.section-xl2 .wwbox {
+  height: 76vh;
+  margin-left: -3%;
+  top: auto;
+  bottom: 0;
+}
+.section-xl2 .titlebox {
+  margin-left: -30%;
+  margin-top: -12%;
+}
+
+.ewmbox {
+  position: absolute;
+  opacity: 0;
+  right: 1.5rem;
+  bottom: 1.5rem;
+  width: 35px;
+  height: 35px;
+  -webkit-transition: all 1s 0.5s;
+  transition: all 1s 0.5s;
+}
+.ewmbox .sys {
+  width: 35px;
+  height: 35px;
+  background: url(https://vr.njmuseum.com/img/webp/sys.webp) no-repeat center/100% auto;
+  cursor: pointer;
+}
+.ewmbox img {
+  position: absolute;
+  width: 160px;
+  height: 160px;
+  opacity: 0;
+  top: -160px;
+  right: 0;
+  -webkit-transition: all 0.5s 0.2s;
+  transition: all 0.5s 0.2s;
+  visibility: hidden;
+}
+.ewmbox:hover img {
+  top: -175px;
+  opacity: 1;
+  visibility: visible;
+}
+.ewmbox.l {
+  left: 1.5rem;
+}
+.ewmbox.l img {
+  left: 0;
+}
+.ewmbox.w .sys {
+  background-image: url(https://vr.njmuseum.com/img/webp/sys-w.webp);
+}
+
+.wapbody .section-szc {
+  background-image: url(../wapimg/szc/bg.webp);
+}
+.wapbody .section-xjm {
+  background-image: url(../wapimg/xjm/bg.webp);
+}
+.wapbody .section-xdm {
+  background-image: url(../wapimg/xdm/bg.webp);
+}
+.wapbody .section-xfl {
+  background-image: url(../wapimg/xfl/bg.webp);
+}
+.wapbody .section-sst {
+  background-image: url(../wapimg/sst/bg.webp);
+}
+.wapbody .section-jcyy {
+  background-image: url(../wapimg/jcyy/bg.webp);
+}
+.wapbody .section-jz {
+  background-image: url(../wapimg/jz/bg.webp);
+}
+.wapbody .section-rnsys {
+  background-image: url(../wapimg/rnsys/bg.webp);
+}
+.wapbody .section-xhjs {
+  background-image: url(../wapimg/xhjs/bg.webp);
+}
+.wapbody .section-tnd {
+  background-image: url(../wapimg/tnd/bg.webp);
+}
+.wapbody .section-ft {
+  background-image: url(../wapimg/ft/bg.webp);
+}
+.wapbody .section-xl {
+  background-image: url(../wapimg/xl/bg.webp);
+}
+.wapbody .section-dy {
+  background-image: url(../wapimg/dy/bg.webp);
+}
+.wapbody .section-tyh {
+  background-image: url(../wapimg/tyh/bg.webp);
+}
+.wapbody .section-mp {
+  background-image: url(../wapimg/mp/bg.webp);
+}
+.wapbody .section-tld {
+  background-image: url(../wapimg/tld/bg.webp);
+}
+.wapbody .section-lltgm {
+  background-image: url(../wapimg/lltgm/bg.webp);
+}
+.wapbody .section-jgyb {
+  background-image: url(../wapimg/jgyb/bg.webp);
+}
+.wapbody .section-ylwbh {
+  background-image: url(../wapimg/ylwbh/bg.webp);
+}
+.wapbody .section-mhxxj {
+  background-image: url(../wapimg/mhxxj/bg.webp);
+}
+.wapbody .section-hylwgt {
+  background-image: url(../wapimg/hylwgt/bg.webp);
+}
+.wapbody .section-lylwgt {
+  background-image: url(../wapimg/lylwgt/bg.webp);
+}
+.wapbody .section-mp2 {
+  background-image: url(../wapimg/mp2/bg.webp);
+}
+.wapbody .section-swllgj {
+  background-image: url(../wapimg/swllgj/bg.webp);
+}
+.wapbody .section-hyxgg {
+  background-image: url(../wapimg/hyxgg/bg.webp);
+}
+.wapbody .section-sjhhwmp {
+  background-image: url(../wapimg/sjhhwmp/bg.webp);
+}
+.wapbody .section-hhwzyp {
+  background-image: url(../wapimg/hhwzyp/bg.webp);
+}
+.wapbody .section-xl2 {
+  background-image: url(../wapimg/xl2/bg.webp);
+}
+.wapbody .section {
+  position: relative;
+  overflow: hidden;
+}
+.wapbody .section-ww .wwbox {
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  -webkit-transform: scale(0.5) translateY(20%);
+          transform: scale(0.5) translateY(20%);
+  -webkit-transition: all 1s 0.7s;
+  transition: all 1s 0.7s;
+  opacity: 0;
+  margin: 0;
+}
+.wapbody .section-ww .wwbox img {
+  width: 100%;
+  height: 100%;
+  -o-object-fit: contain;
+     object-fit: contain;
+}
+.wapbody .section-ww .name {
+  height: 1.4rem;
+  width: auto;
+  display: block;
+  margin: 8rem auto 0;
+  -o-object-fit: contain;
+     object-fit: contain;
+  opacity: 0;
+  -webkit-transform: scale(0.6) translateY(-10%);
+          transform: scale(0.6) translateY(-10%);
+  -webkit-transition: all 1s 0.7s;
+  transition: all 1s 0.7s;
+}
+.wapbody .section-ww.active .wwbox, .wapbody .section-ww.down .wwbox {
+  opacity: 1;
+  -webkit-transform: scale(1) translateY(0);
+          transform: scale(1) translateY(0);
+}
+.wapbody .section-ww.active .point, .wapbody .section-ww.down .point {
+  opacity: 1;
+}
+.wapbody .section-ww.active .name, .wapbody .section-ww.down .name {
+  opacity: 1;
+  -webkit-transform: scale(1) translateY(0);
+          transform: scale(1) translateY(0);
+}
+.wapbody .section-yrzh .point {
+  right: 4%;
+  top: 52%;
+}
+.wapbody .section-yrzh .section1-wwbox {
+  height: 60vh;
+  margin: 4vh 7vw -6vh;
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: end;
+      -ms-flex-align: end;
+          align-items: flex-end;
+}
+.wapbody .section-yrzh .section1-wwbox .title2 {
+  background-position: top;
+  background-size: 80% auto;
+}
+.wapbody .section-yrzh .logo {
+  width: 21.6rem;
+  height: 3.6rem;
+  margin-bottom: 1.8rem;
+}
+.wapbody .section-yrzh .txt1 {
+  font-size: 2.4rem;
+  margin-bottom: 1.2rem;
+  letter-spacing: 0.24rem;
+}
+.wapbody .section-yrzh .txt2 {
+  font-size: 1.8rem;
+}
+.wapbody .section-yrzh .txt3 {
+  font-size: 0.9rem;
+  letter-spacing: 0.018rem;
+}
+.wapbody .section-ylwbh .wwbox,
+.wapbody .section-hyxgg .wwbox {
+  -webkit-transform: scale(1) translateY(20%);
+          transform: scale(1) translateY(20%);
+}
+.wapbody .section-ylwbh img.ww {
+  height: auto;
+  position: absolute;
+  left: 0;
+  bottom: 0;
+}
+.wapbody .section-mhxxj .name,
+.wapbody .section-ft .name {
+  height: 1.2rem;
+}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1172 - 0
css/reset.css


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1664 - 0
css/section1.css


BIN=BIN
img/bg.png


BIN=BIN
img/hover.png


BIN=BIN
img/logo.png


BIN=BIN
img/nei2.gif


BIN=BIN
img/nei2.png


+ 28 - 0
index.html

@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" name="viewport" />
+    <title>南京博物院数字文物之美</title>
+    <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
+    <link rel="apple-touch-icon-precomposed" href="./icon.png" />
+    <link rel="stylesheet" href="./css/reset.css" />
+    <link rel="stylesheet" href="./css/animate.css" />
+    <script src="./js/jquery.min.js"></script>
+    <script src="./js/jweixin-1.6.0.js"></script>
+    <script src="./js/gsap.min.js"></script>
+    <script src="./js/jquery-ui.min.js"></script>
+    <script src="./js/fullPage/jquery.fullPage.js"></script>
+    <script src="./js/common.js"></script>
+    <!-- <script src="./js/pc.js"></script> -->
+    <script src="./js/pc.min.js"></script>
+  </head>
+  <body class="pcbody">
+    <div style="display: none"><img src="./icon.png" alt="" /></div>
+    <div class="loadbox"></div>
+    <div id="menu"></div>
+
+    <div class="page" id="fullpage"></div>
+    <div class="grid__intro" style="display: none" id="grid-intro" onClick="closeGridIntro()"></div>
+  </body>
+</html>

+ 111 - 0
js/common.js

@@ -0,0 +1,111 @@
+var videonum = 12; //视频数量 实际数量+1
+var sknum = 3; //南朝石刻数量
+var dmznum = 0; //大明展数量
+var wwnum = 14; //文物数量
+var othernum = 2; //无分类数量
+window.linkUrl = "https://4dscene.4dage.com/culturalrelics/HBSBWG-TS/Model2.html";
+// window.linkUrl = "http://192.168.10.63:8080";
+const isMobile = () => {
+  const userAgent = navigator.userAgent.toLowerCase();
+  const isIOS = /iphone|ipod|ipad/.test(userAgent);
+  const isAndroid = /android/.test(userAgent);
+  const isTablet = /ipad|tablet|playbook|silk|kindle/i.test(userAgent);
+  const hasTouch = "ontouchstart" in window || navigator.maxTouchPoints > 0;
+
+  // 屏幕宽度判断
+  const screenWidth = window.innerWidth;
+  const isSmallScreen = screenWidth <= 1024;
+
+  return isIOS || isAndroid || isTablet || (hasTouch && isSmallScreen) || screenWidth < 600;
+};
+window.isMobile = isMobile();
+
+var _czc = _czc || [];
+(function () {
+  var um = document.createElement("script");
+  um.src = "https://s4.cnzz.com/z.js?id=1281246688&async=1";
+  var s = document.getElementsByTagName("script")[0];
+  s.parentNode.insertBefore(um, s);
+})();
+
+$(function () {
+  if (window.isMobile) {
+    $("body").removeClass("pcbody wapbody");
+    document.body.classList.add("wapbody");
+  } else {
+    $("body").removeClass("pcbody wapbody");
+    document.body.classList.add("pcbody");
+  }
+});
+// 或者使用防抖函数优化性能
+var resizeId;
+$(window).on("resize", function () {
+  clearTimeout(resizeId);
+  resizeId = setTimeout(function () {
+    $.fn.fullpage.reBuild();
+  }, 500);
+});
+
+document.oncontextmenu = new Function("event.returnValue=false;");
+document.onselectstart = new Function("event.returnValue=false;");
+
+document.addEventListener("contextmenu", function (event) {
+  event.preventDefault();
+});
+var videotarget = ""; //铜牛灯另一个视频
+// 设置幻灯片向右滑动
+function showSlideNext(src) {
+  $.fn.fullpage.moveSlideRight();
+  videotarget = src;
+  // 获取当前section的索引
+  if ($("body").hasClass("pcbody")) {
+    var index = $(".fp-completely").index();
+    if (src) {
+      var video = $(".section" + index + " video");
+      $(video[0]).attr("src", src);
+      $(video).css("width", "100%");
+    }
+  }
+}
+
+// 设置幻灯片向左滑动
+function showSlideBack() {
+  $.fn.fullpage.moveSlideLeft();
+}
+
+//获取地址栏参数
+function GetQueryString(name) {
+  var reg = new RegExp("(^|&)" + encodeURIComponent(name) + "=([^&]*)(&|$)");
+  var r = window.location.search.substr(1).match(reg);
+  if (r != null) {
+    return decodeURIComponent(r[2]); // 使用 decodeURIComponent 解码
+  }
+  return null;
+}
+
+function openLink(link) {
+  // const li = encodeURIComponent(link);
+  // wx.miniProgram.navigateTo({
+  //   url: `/pages/webview/webview?url=${li}`,
+  // });
+  window.open(link);
+}
+
+function openDetail(id, e) {
+  if (e) {
+    e.stopPropagation();
+  }
+  if (lxs[id].url) {
+    // const li = encodeURIComponent(lxs[id].url);
+    // wx.miniProgram.navigateTo({
+    //   url: `/pages/webview/webview?url=${li}`,
+    // });
+    window.open(lxs[id].url);
+  } else {
+    // const li = encodeURIComponent(window.linkUrl + '#' + id);
+    // wx.miniProgram.navigateTo({
+    //   url: `/pages/webview/webview?url=${li}`,
+    // });
+    window.open(window.linkUrl + "?m=" + id);
+  }
+}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1945 - 0
js/data.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 2834 - 0
js/fullPage/jquery.fullPage.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 10 - 0
js/gsap.min.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 5 - 0
js/jquery-ui.min.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 3938 - 0
js/jquery.min.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 0
js/jweixin-1.6.0.js


+ 795 - 0
js/list.js

@@ -0,0 +1,795 @@
+var ease = {
+  linear: function (e) {
+    return e;
+  },
+  easeInQuad: function (e) {
+    return e * e;
+  },
+  easeOutQuad: function (e) {
+    return e * (2 - e);
+  },
+  easeInOutQuad: function (e) {
+    return e < 0.5 ? 2 * e * e : (4 - 2 * e) * e - 1;
+  },
+  easeInCubic: function (e) {
+    return e * e * e;
+  },
+  easeOutCubic: function (e) {
+    return --e * e * e + 1;
+  },
+  easeInOutCubic: function (e) {
+    return e < 0.5 ? 4 * e * e * e : (e - 1) * (2 * e - 2) * (2 * e - 2) + 1;
+  },
+  easeInQuart: function (e) {
+    return e * e * e * e;
+  },
+  easeOutQuart: function (e) {
+    return 1 - --e * e * e * e;
+  },
+  easeInOutQuart: function (e) {
+    return e < 0.5 ? 8 * e * e * e * e : 1 - 8 * --e * e * e * e;
+  },
+  easeInQuint: function (e) {
+    return e * e * e * e * e;
+  },
+  easeOutQuint: function (e) {
+    return 1 + --e * e * e * e * e;
+  },
+  easeInOutQuint: function (e) {
+    return e < 0.5 ? 16 * e * e * e * e * e : 1 + 16 * --e * e * e * e * e;
+  },
+  easeInOutCustom: function (e) {
+    return e < 0.5 ? 16 * e * e * e * e * e : 1 + 16 * --e * e * e * e * e;
+  },
+};
+var NEWTON_ITERATIONS = 4,
+  NEWTON_MIN_SLOPE = 0.001,
+  SUBDIVISION_PRECISION = 1e-7,
+  SUBDIVISION_MAX_ITERATIONS = 10,
+  kSplineTableSize = 11,
+  kSampleStepSize = 1 / (kSplineTableSize - 1),
+  float32ArraySupported = "function" == typeof Float32Array,
+  easeInOut = new bezier(0.57, 0.09, 0.105, 1.005);
+function ads(e, t) {
+  (document.getElementById(t) || document.documentElement).classList.add(e);
+}
+function rds(e, t) {
+  (document.getElementById(t) || document.documentElement).classList.remove(e);
+}
+function event(e, t, r, n) {
+  // ga && ga('send', 'event', e, t, r, n);
+}
+function Vec2(e, t) {
+  this.x = e;
+  this.y = t;
+  this.lerp = function (e, t) {
+    (this.x += (e.x - this.x) * t), (this.y += (e.y - this.y) * t);
+  };
+  this.plus = function (e) {
+    return new Vec2(this.x + e.x, this.y + e.y);
+  };
+  this.minus = function (e) {
+    return new Vec2(this.x - e.x, this.y - e.y);
+  };
+  this.length = function () {
+    return Math.sqrt(Math.pow(this.x, 2) + Math.pow(this.y, 2));
+  };
+}
+function A(e, t) {
+  return 1 - 3 * t + 3 * e;
+}
+function B(e, t) {
+  return 3 * t - 6 * e;
+}
+function C(e) {
+  return 3 * e;
+}
+function calcBezier(e, t, r) {
+  return ((A(t, r) * e + B(t, r)) * e + C(t)) * e;
+}
+function getSlope(e, t, r) {
+  return 3 * A(t, r) * e * e + 2 * B(t, r) * e + C(t);
+}
+function binarySubdivide(e, t, r, n, o) {
+  for (var i, a, l = 0; 0 < (i = calcBezier((a = t + (r - t) / 2), n, o) - e) ? (r = a) : (t = a), Math.abs(i) > SUBDIVISION_PRECISION && ++l < SUBDIVISION_MAX_ITERATIONS; );
+  return a;
+}
+function newtonRaphsonIterate(e, t, r, n) {
+  for (var o = 0; o < NEWTON_ITERATIONS; ++o) {
+    var i = getSlope(t, r, n);
+    if (0 === i) return t;
+    t -= (calcBezier(t, r, n) - e) / i;
+  }
+  return t;
+}
+function LinearEasing(e) {
+  return e;
+}
+
+function bezier(a, t, l, r) {
+  if (!(0 <= a && a <= 1 && 0 <= l && l <= 1)) throw new Error("bezier x values must be in [0, 1] range");
+  if (a === t && l === r) return LinearEasing;
+  for (var s = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize), e = 0; e < kSplineTableSize; ++e) s[e] = calcBezier(e * kSampleStepSize, a, l);
+  return function (e) {
+    return 0 === e
+      ? 0
+      : 1 === e
+      ? 1
+      : calcBezier(
+          (function (e) {
+            for (var t = 0, r = 1, n = kSplineTableSize - 1; r !== n && s[r] <= e; ++r) t += kSampleStepSize;
+            var o = t + ((e - s[--r]) / (s[r + 1] - s[r])) * kSampleStepSize,
+              i = getSlope(o, a, l);
+            return NEWTON_MIN_SLOPE <= i ? newtonRaphsonIterate(e, o, a, l) : 0 === i ? o : binarySubdivide(e, t, t + kSampleStepSize, a, l);
+          })(e),
+          t,
+          r
+        );
+  };
+}
+
+var animUtil = {
+  queue: [],
+  i: 0,
+  init: function () {
+    browserController.addToRenderLoop(animUtil.render);
+  },
+  runAnimation: function (e, t, r, n) {
+    var o = {
+      callback: e,
+      duration: t,
+      easing: r,
+      then: n,
+      t: 0,
+      p: 0,
+      end: function () {
+        animUtil.finish(this);
+      },
+      finished: !1,
+    };
+    return animUtil.queue.push(o), o;
+  },
+  render: function () {
+    for (animUtil.i = 0; animUtil.i < animUtil.queue.length; animUtil.i++) animUtil.run(animUtil.queue[animUtil.i]);
+  },
+  run: function (e) {
+    (e.t += browserController.state.delta), (e.p = Math.min(1, e.t / e.duration)), e.callback(e.easing ? e.easing(e.p) : e.p), 1 <= e.p && animUtil.finish(e);
+  },
+  finish: function (e) {
+    e.then && e.then(), (e.finished = !0), animUtil.queue.splice(animUtil.queue.indexOf(e), 1), animUtil.i--;
+  },
+};
+
+/**导航控制器 已整理完毕*/
+var navigationController = {
+  startSite: function () {
+    let ti = setTimeout(function () {
+      clearTimeout(ti);
+      ads("show-grid");
+      // if (isFirstLoad) {
+      //   setTimeout(function () {
+      //     ads("show-intro");
+      //   }, 10);
+      // }
+    }, 400);
+  },
+};
+
+/**浏览器控制器 已整理完毕*/
+var browserController = {
+  state: {
+    scrollTop: 0,
+    toRender: [],
+    toResize: [],
+    resizeTimeout: null,
+    mouse: {
+      x: 0,
+      y: 0,
+      xLag: 0,
+      yLag: 0,
+      lag: 3,
+      xLagSlow: 0,
+      yLagSlow: 0,
+      slowLag: 20,
+      down: !1,
+    },
+    dpi: window.devicePixelRatio || 1,
+    t: 0,
+    d: Date.now(),
+    delta: 0,
+    rem: 0,
+    isMobile: window.innerWidth < 800,
+    isPortrait: window.innerHeight > window.innerWidth,
+  },
+  initialize: function () {
+    window.addEventListener("resize", browserController.onResize);
+    browserController.renderLoop();
+  },
+  addToRenderLoop: function (e) {
+    browserController.state.toRender.push(e);
+    browserController.state.toRender.push(() => {});
+  },
+  addToResizeLoop: function (e) {
+    browserController.state.toResize.push(e);
+  },
+  renderBaseWork: function () {
+    browserController.state.delta = Date.now() - browserController.state.d;
+    browserController.state.t += browserController.state.delta;
+    browserController.state.d = Date.now();
+    browserController.state.mouse.xLag += (browserController.state.mouse.x - browserController.state.mouse.xLag) / browserController.state.mouse.lag;
+    browserController.state.mouse.yLag += (browserController.state.mouse.y - browserController.state.mouse.yLag) / browserController.state.mouse.lag;
+    browserController.state.mouse.xLagSlow += (browserController.state.mouse.x - browserController.state.mouse.xLagSlow) / browserController.state.mouse.slowLag;
+    browserController.state.mouse.yLagSlow += (browserController.state.mouse.y - browserController.state.mouse.yLagSlow) / browserController.state.mouse.slowLag;
+  },
+  renderLoop: function () {
+    browserController.renderBaseWork();
+    browserController.state.toRender.forEach(function (e) {
+      e();
+    });
+    requestAnimationFrame(browserController.renderLoop);
+  },
+
+  onResize: function () {
+    clearTimeout(browserController.state.resizeTimeout), (browserController.state.resizeTimeout = setTimeout(browserController.resizeLoop, 100));
+  },
+
+  resizeLoop: function () {
+    browserController.state.toResize.forEach(function (e) {
+      e();
+    });
+  },
+};
+
+/**拖拽工具 已整理完毕*/
+var dragUtil = {
+  state: {
+    draggableElements: [],
+  },
+  init: function () {
+    browserController.addToRenderLoop(dragUtil.render);
+    window.addEventListener("mouseout", function (e) {
+      var t = (e = e || window.event).relatedTarget || e.toElement;
+      (t && "HTML" != t.nodeName) || dragUtil.endAllDrags();
+    });
+  },
+  registerDraggableElement: function (e, t) {
+    var r = {
+      el: e,
+      callback: t,
+      dragging: !1,
+      startPos: {
+        x: 0,
+        y: 0,
+      },
+      currentPos: {
+        x: 0,
+        y: 0,
+      },
+      diff: {
+        x: 0,
+        y: 0,
+      },
+      thisDiff: {
+        x: 0,
+        y: 0,
+      },
+      endDrag: function () {
+        this.dragging = !1;
+      },
+      getDist: function () {
+        return Math.sqrt(Math.pow(this.diff.x, 2) + Math.pow(this.diff.y, 2));
+      },
+    };
+    e.addEventListener("mousedown", dragUtil.onDragStart.bind(dragUtil, r)),
+      e.addEventListener("mousemove", dragUtil.onDragMove.bind(dragUtil, r)),
+      e.addEventListener("mouseup", dragUtil.onDragEnd.bind(dragUtil, r)),
+      // e.addEventListener('mouseover', dragUtil.onMouseOver.bind(dragUtil, r)),
+      // e.addEventListener('mouseout', dragUtil.onMouseOut.bind(dragUtil, r)),
+      e.addEventListener("touchstart", dragUtil.onDragStart.bind(dragUtil, r)),
+      e.addEventListener("touchmove", dragUtil.onDragMove.bind(dragUtil, r)),
+      e.addEventListener("touchend", dragUtil.onDragEnd.bind(dragUtil, r)),
+      dragUtil.state.draggableElements.push(r);
+  },
+  normalizeEvent: function (e) {
+    return e.touches && 0 < e.touches.length ? ((e.clientX = e.touches[0].clientX), (e.clientY = e.touches[0].clientY)) : e.clientX || ((e.clientX = 0), (e.clientY = 0)), e;
+  },
+  onDragStart: function (e, t) {
+    e.dragging = !0;
+    t = dragUtil.normalizeEvent(t);
+    e.startPos.x = e.currentPos.x = t.clientX;
+    e.startPos.y = e.currentPos.y = t.clientY;
+    e.diff.x = 0;
+    e.diff.y = 0;
+    e.thisDiff.x = 0;
+    e.thisDiff.y = 0;
+    gridController.state.isHandleDrag = !1;
+  },
+  onDragMove: function (e, t) {
+    if (e.dragging) {
+      t = dragUtil.normalizeEvent(t);
+      e.currentPos.x = t.clientX;
+      e.currentPos.y = t.clientY;
+      var r = e.currentPos.x - e.startPos.x;
+      var n = e.currentPos.y - e.startPos.y;
+      e.thisDiff.x = r - e.diff.x;
+      e.thisDiff.y = n - e.diff.y;
+      e.diff.x = r;
+      e.diff.y = n;
+      // gridController.state.isHandleDrag = !1;
+    }
+  },
+  onMouseOver: function (e, t) {
+    t = dragUtil.normalizeEvent(t);
+    e.startPos.x = e.currentPos.x = t.clientX;
+    e.startPos.y = e.currentPos.y = t.clientY;
+    e.diff.x = 0;
+    e.diff.y = 0;
+    e.thisDiff.x = 0;
+    e.thisDiff.y = 0;
+    e.endDrag();
+    e.callback(e);
+  },
+  onMouseOut: function (e, t) {},
+  onDragEnd: function (e) {
+    e.dragging && (e.endDrag(), e.callback(e), (gridController.state.isHandleDrag = !0));
+  },
+  endAllDrags: function () {
+    dragUtil.state.draggableElements.forEach(function (e) {
+      dragUtil.onDragEnd(e);
+    });
+  },
+  clearDraggableElements: function () {
+    dragUtil.state.draggableElements = [];
+  },
+  render: function () {
+    dragUtil.state.draggableElements.forEach(function (e) {
+      e.dragging && e.callback(e);
+    });
+  },
+};
+
+/**网格控制器 */
+var gridController = {
+  state: {
+    items: [], //所有框
+    showItems: {}, //在屏幕内的框
+    imageAspect: Math.sqrt(3) / 2, //图像纵横比 原始0.65
+    screenAspect: window.innerWidth / window.innerHeight, //屏幕纵横比
+    gridEl: null,
+    rows: 0,
+    cols: 0,
+    colWidth: 0,
+    rowHeight: 0,
+    itemSpace: 0, //间距
+    itemWidth: 217 * (!window.isMobile ? 1 : 0.6),
+    itemHeight: 251 * (!window.isMobile ? 1 : 0.6),
+    flipWidth: 0,
+    flipHeight: 0,
+    target: new Vec2(1e8, 1e8),
+    offset: new Vec2(1e8, 1e8),
+    initTarget: new Vec2(1e8, 1e8),
+    focus: null,
+    selected: null,
+    count: 32,
+    lerpRate: 1,
+    canDrag: !0,
+    template: null,
+    flipped: !1,
+    canIncrement: !0,
+    cardArray: null,
+    needsCreate: !1,
+    canSelect: 1,
+    isHandleDrag: !0,
+    isClick: false,
+  },
+  /**初始 */
+  init: function (e) {
+    gridController.state.grid = document.getElementById("grid");
+    dragUtil.registerDraggableElement(gridController.state.grid, gridController.handleDrag);
+    gridController.state.screenCenter = new Vec2(window.innerWidth / 2, window.innerHeight / 2);
+    gridController.state.cardArray = e;
+    gridController.create();
+    browserController.addToRenderLoop(this.render);
+    browserController.addToResizeLoop(this.handleResize);
+    gridController.getgif(5);
+  },
+  //部分图片转为gif图
+  getgif: function (seconds) {
+    const tt = setTimeout(() => {
+      clearTimeout(tt);
+      $(".grid__itemPicture.hasurl").each(function () {
+        const gif = $(this).attr("gif");
+        const newSrc = `https://vr.njmuseum.com/img/ww/${gif}`;
+        $(this).find("img").attr("src", newSrc);
+      });
+    }, seconds * 1000);
+  },
+  /**场景调整大小 */
+  handleResize: function () {
+    gridController.state.screenCenter = new Vec2(window.innerWidth / 2, window.innerHeight / 2);
+    gridController.create();
+  },
+
+  /**创建网格 */
+  create: function (boo = true) {
+    var e = gridController.state.cardArray;
+    //横屏/竖屏
+    if (window.innerWidth > window.innerHeight) {
+      let b = Math.ceil(window.innerHeight / (gridController.state.itemHeight * 0.75));
+      n = Math.ceil(window.innerWidth / gridController.state.itemWidth) + 1;
+      let c = Math.ceil(e.length / n);
+      o = c > b ? c : b;
+      o = o % 2 == 0 ? o : o + 1;
+    } else {
+      let a = Math.ceil(window.innerWidth / gridController.state.itemWidth) + 1;
+      o = Math.ceil(window.innerHeight / (gridController.state.itemHeight * 0.75));
+      o = o % 2 == 0 ? o : o + 1;
+      let c = Math.ceil(e.length / o);
+      n = c > a ? c : a;
+    }
+
+    gridController.state.rows = o;
+    gridController.state.cols = n;
+    gridController.state.colWidth = gridController.state.itemWidth;
+    gridController.state.rowHeight = gridController.state.itemHeight;
+    gridController.state.flipWidth = gridController.state.colWidth * n;
+    gridController.state.flipHeight = gridController.state.rowHeight * o * 0.75;
+    gridController.state.count = o * n;
+    gridController.state.grid.innerHTML = "";
+    gridController.state.showItems = {};
+    gridController.state.items = [];
+    gridController.state.target = new Vec2(1e8, 1e8);
+    gridController.state.offset = new Vec2(1e8, 1e8);
+    // debugger;
+    for (var l = 0, s = 0; s < n; s++) {
+      for (var d = 0; d < o; d++) {
+        this.createItem(d, s, l);
+        l++;
+      }
+    }
+    let keys = Object.keys(gridController.state.showItems);
+    if (keys.length >= e.length) {
+      gridController.state.canDrag = 0;
+      let showArr = [];
+      if (e.length < 10) {
+        // 排序逻辑
+        const sortedArray = Object.values(gridController.state.showItems).sort((a, b) => a.interval - b.interval || b.intervalX - a.intervalX);
+        // const sortedArray = [
+        //   ...Object.values(gridController.state.showItems),
+        // ].sort(
+        //   (a, b) => a.intervalY - b.intervalY || a.intervalX - b.intervalX
+        // );
+        showArr = new Array(keys.length).fill(0);
+        for (let i = 0; i < e.length; i++) {
+          let obj = sortedArray[i];
+          let inx = keys.indexOf(obj.index + "");
+          showArr[inx] = e[i];
+        }
+      } else {
+        let arr1 = new Array(keys.length).fill(0);
+        showArr = gridController.replaceRandomly(arr1, e);
+      }
+      let nint = 0;
+      gridController.state.items.forEach((n, inx) => {
+        gridController.state.grid.append(n.el);
+        if (keys.indexOf(n.index + "") != -1) {
+          if (showArr[nint] != 0) {
+            n.card.className = "grid__itemCard";
+            n.el.id = showArr[nint] + "_" + n.index;
+            n.el.style.zIndex = Math.floor(Math.random() * 9999);
+            n.image = gridController.createImage(showArr[nint], "grid__itemPicture");
+            n.card.append(n.image);
+          }
+          nint++;
+        }
+      });
+    } else {
+      let arr1 = new Array(gridController.state.items.length).fill(0);
+      let showArr = gridController.replaceRandomly(arr1, e);
+      gridController.state.items.forEach((n, inx) => {
+        gridController.state.grid.append(n.el);
+        let ids = showArr[inx] != 0 ? showArr[inx] : e[Math.floor(Math.random() * e.length)];
+        n.card.className = "grid__itemCard";
+        n.el.id = ids + "_" + n.index;
+        n.el.style.zIndex = Math.floor(Math.random() * 9999);
+        n.image = gridController.createImage(ids, "grid__itemPicture");
+        n.card.append(n.image);
+      });
+    }
+  },
+
+  replaceRandomly: function (arr1, arr2) {
+    const result = [...arr1];
+    const availableIndices = result.map((_, index) => index);
+    for (const value of arr2) {
+      if (availableIndices.length === 0) break;
+      const randomIndex = Math.floor(Math.random() * availableIndices.length);
+      const targetIndex = availableIndices[randomIndex];
+      result[targetIndex] = value;
+      availableIndices.splice(randomIndex, 1);
+    }
+    return result;
+  },
+
+  /**创建网格单独对象 */
+  createItem: function (e, t, r) {
+    var n = {
+      row: e,
+      col: t,
+      el: document.createElement("div"),
+      offset: new Vec2(0, 0),
+      pos: new Vec2(0, 0),
+      target: new Vec2(0, 0),
+      interval: 0,
+      intervalX: 0,
+      intervalY: 0,
+      zDistance: 0,
+      zTarget: 0,
+      zRate: 0.1,
+      angle: 0,
+      angleTarget: 0,
+      index: r,
+      order: 0,
+      uid: "",
+      card: document.createElement("div"),
+      back: document.createElement("div"),
+      image: "",
+      close: document.createElement("div"),
+      anim: null,
+    };
+    n.el.className = "grid__item";
+    n.el.id = n.index;
+    n.card.className = "grid__itemCard showBack";
+    n.back.className = "grid__itemBack";
+    n.card.append(n.back);
+    n.el.append(n.card);
+    n.el.style.height = gridController.state.itemHeight + "px";
+    n.el.style.width = gridController.state.itemWidth + "px";
+    n.el.addEventListener("mousedown", gridController.setFocus.bind(n));
+    n.el.addEventListener("touchstart", gridController.setFocus.bind(n));
+    n.offset.x = t * (gridController.state.itemWidth + gridController.state.itemSpace) + (parseInt(e % 2) == 0 ? 0 : gridController.state.itemWidth / 2);
+    n.offset.y = e * gridController.state.itemHeight * 0.75;
+    let xx = ((n.offset.x + gridController.state.offset.x) % gridController.state.flipWidth) - gridController.state.colWidth;
+    let yy = ((n.offset.y + gridController.state.offset.y) % gridController.state.flipHeight) - gridController.state.rowHeight;
+    gridController.state.items.push(n);
+
+    if (!window.isMobile) {
+      if (xx >= gridController.state.itemWidth * 0.5 && xx < window.innerWidth - gridController.state.itemWidth * 1.5 && yy > 0 && yy < window.innerHeight - gridController.state.itemHeight * 0.75) {
+        n.intervalX = Math.abs(xx + gridController.state.itemWidth * 0.5 - window.innerWidth * 0.5);
+        n.intervalY = Math.abs(yy + gridController.state.itemHeight * 0.5 - window.innerHeight * 0.5);
+        n.interval = gridController.calculateDistance(xx + gridController.state.itemWidth * 0.5, yy + gridController.state.itemHeight * 0.5);
+        gridController.state.showItems[n.index] = n;
+      }
+    } else {
+      // let w = $('.logo').width();
+      // let h = $('.logo').height();
+      // let ww = $('.select .option').width();
+      // let hh = $('.select .option').height();
+      // console.log(w, h, ww, hh, xx, yy, n.index);
+
+      // console.log(gridController.state.target);
+      //手机版
+      if (
+        // !(xx >= 0 && xx <= w && yy >= 0 && yy <= h) &&
+        // !(xx >= ww && xx <= window.innerWidth && yy >= hh && yy <= h) &&
+        xx >= 0 &&
+        xx < window.innerWidth - gridController.state.itemWidth * 0.5 &&
+        yy >= -10 &&
+        yy < window.innerHeight - gridController.state.itemHeight * 0.75
+      ) {
+        n.intervalX = Math.abs(xx + gridController.state.itemWidth * 0.5 - window.innerWidth * 0.5);
+        n.intervalY = Math.abs(yy + gridController.state.itemHeight * 0.5 - window.innerHeight * 0.5);
+        n.interval = gridController.calculateDistance(xx + gridController.state.itemWidth * 0.5, yy + gridController.state.itemHeight * 0.75);
+        gridController.state.showItems[n.index] = n;
+      }
+    }
+  },
+
+  /**计算网格到页面中心点的距离 */
+  calculateDistance: function (pointX, pointY) {
+    const dx = pointX - window.innerWidth * 0.5;
+    const dy = pointY - window.innerHeight * 0.5;
+    return Math.floor(Math.sqrt(dx * dx + dy * dy) * 100) / 100;
+  },
+
+  deleteItem: function (newArr) {
+    gridController.state.items.forEach((e, t) => {
+      gridController.state.grid.removeChild(e.el);
+    });
+    gridController.state.items = [];
+    gridController.state.cardArray = newArr;
+    gridController.create(false);
+    gridController.positionCardsInCenter();
+    var temptime = setTimeout(() => {
+      gridController.deselectItem();
+      clearTimeout(temptime);
+    }, 100);
+  },
+
+  /**创建网格单独对象图 */
+  createImage: function (e, t) {
+    let gifArr = [
+      "hbts04",
+      "10:12156",
+      "0:5268",
+      // '2:6587',
+      // '0:8178',
+      // '2:823',
+      // '2:6923',
+      "10:23225",
+      "10:8069",
+      "10:2259",
+      "3:2106",
+      "10:26104",
+      "10:19001",
+      "3:7550",
+      "111111",
+      "10:28529",
+    ];
+
+    var html = `<div class="${t} ${!lxs[e].url && gifArr.indexOf(e) != -1 ? "hasurl" : ""}" gif="${gifArr.indexOf(e) != -1 ? e + ".gif" : ""}">
+  <img src="${`https://houseoss.4dkankan.com/project/hubeiMuseum/wwq/modelImg/${e}.png`}" />
+  <div class="shadow">
+    <div class="name">
+      <i>${getName(lxs[e].name).dynasty}</i>
+      <h3>${getName(lxs[e].name).name}</h3>
+    </div>
+    <div class="iconbox">
+      <div class="threed" ></div>
+    </div>
+    <div class="coverbox">
+    <div class="right" onclick="openDetail('${e}',event)"></div>
+    </div>
+  </div>
+</div>`;
+
+    // 创建一个临时容器
+    var container = document.createElement("div");
+    container.innerHTML = html;
+
+    // 返回生成的 DOM 元素
+    return container.firstElementChild;
+  },
+
+  //拖拽
+  handleDrag: function (e) {
+    if (gridController.state.canDrag) {
+      var t = browserController.state.isMobile ? 2 : 1;
+      gridController.state.target.x += e.thisDiff.x * t;
+      gridController.state.target.y += e.thisDiff.y * t;
+    }
+    0 == e.dragging &&
+      (e.getDist() < 10 && gridController.state.focus && (!gridController.state.selected && gridController.state.canSelect ? gridController.selectItem(gridController.state.focus) : gridController.deselectItem(), (gridController.state.canSelect = !0)), (gridController.state.focus = null));
+  },
+  //设置焦点
+  setFocus: function () {
+    gridController.state.focus = this;
+  },
+  // 选择某一个进详情页
+  selectItem: function (e) {
+    if ($("body").hasClass("wapbody") && !gridController.state.isClick && !$(e.el).hasClass("active")) {
+      gridController.state.isClick = true;
+      $(".grid__item").removeClass("active later");
+      $(e.el).addClass("active");
+      let ti = setTimeout(function () {
+        clearTimeout(ti);
+        $(e.el).addClass("later");
+        gridController.state.isClick = false;
+      }, 400);
+    }
+  },
+
+  moveToCenterAnim: function (e) {
+    this.item.target.x = this.item.pos.x = this.start.x + this.move.x * e;
+    this.item.target.y = this.item.pos.y = this.start.y + this.move.y * e;
+  },
+
+  /**卡片中心位置 */
+  positionCardsInCenter: function () {
+    gridController.state.items.forEach(function (e, t) {
+      var r = e.el.getBoundingClientRect(),
+        n = new Vec2(gridController.state.screenCenter.x - r.width / 2, gridController.state.screenCenter.y - r.height / 2);
+      e.target.x = e.pos.x = n.x;
+      e.target.y = e.pos.y = n.y;
+      gridController.drawItem(e);
+    });
+  },
+
+  // 关闭详情页
+  deselectItem: function () {
+    gridController.state.selected = null;
+    gridController.state.lerpRate = 0.19;
+    setTimeout(function () {
+      let keys = Object.keys(gridController.state.showItems);
+      gridController.state.canDrag = gridController.state.cardArray.length > keys.length;
+      gridController.state.lerpRate = 1;
+      isSwitchingOver = true;
+    }, 500);
+    gridController.state.needsCreate && (gridController.create(), (gridController.state.needsCreate = !1));
+  },
+
+  setOrder: function (e) {
+    e.order = gridController.getOrder(e);
+  },
+
+  getOrder: function (e) {
+    return gridController.state.count - ((e.index - gridController.state.selected.index + gridController.state.count) % gridController.state.count);
+  },
+
+  render: function () {
+    if (gridController.state.canDrag && gridController.state.isHandleDrag && !document.documentElement.classList.contains("show-intro") && $(".fp-completely").index() === 1) {
+      // 文物自动移动
+      gridController.state.target.x += 0.3;
+    }
+    gridController.state.offset.lerp(gridController.state.target, 0.1);
+    gridController.state.items.forEach(gridController.updateItem);
+    gridController.state.items.forEach(gridController.drawItem);
+  },
+
+  updateItem: function (e) {
+    var t = gridController.state.selected == e;
+    if (gridController.state.selected) {
+      var r = gridController.state.flipped ? 10 : 6;
+      e.zTarget = 2 * e.order - gridController.state.count + (t ? r : 0);
+    } else {
+      e.target.x = ((e.offset.x + gridController.state.offset.x) % gridController.state.flipWidth) - gridController.state.colWidth;
+      e.target.y = ((e.offset.y + gridController.state.offset.y) % gridController.state.flipHeight) - gridController.state.rowHeight;
+    }
+    e.pos.lerp(e.target, gridController.state.lerpRate);
+  },
+
+  /**坐标更新 */
+  drawItem: function (e) {
+    var t;
+    if (browserController.state.isMobile) {
+      t = window.innerWidth / 40;
+    } else {
+      t = 1.5 * Math.min(12, Math.max(0, window.innerHeight - 550) / 40 + 4);
+    }
+    e.el.style.transform = "translate3d(" + e.pos.x + "px, " + e.pos.y + "px, " + e.zDistance * t + "px)";
+  },
+
+  updateInit: function (newArr) {
+    if (isSwitchingOver) {
+      isSwitchingOver = false;
+      let allNum = 0;
+      gridController.state.selected = gridController.state.items[0];
+      gridController.state.items.forEach((e, t) => {
+        var r = new Vec2(e.pos.x, e.pos.y),
+          n = e.el.getBoundingClientRect(),
+          o = new Vec2(n.left + n.width / 2, n.top + n.height / 2),
+          i = gridController.state.screenCenter.minus(o);
+        e.centerPos = gridController.state.screenCenter.minus(new Vec2(n.width / 2, n.height / 2));
+        gridController.setOrder(e);
+        gridController.state.lerpRate = 1;
+        var a = e.index * 10 + Math.ceil(300 * Math.random()) + 100;
+        setTimeout(() => {
+          animUtil.runAnimation(
+            gridController.moveToCenterAnim.bind({
+              start: r,
+              item: e,
+              move: i,
+            }),
+            600,
+            easeInOut,
+            () => {
+              allNum++;
+              if (allNum >= gridController.state.items.length) {
+                gridController.deleteItem(newArr);
+                gridController.state.target = new Vec2(1e8, 1e8);
+                gridController.state.offset = new Vec2(1e8, 1e8);
+              }
+            }
+          );
+        }, 0);
+      });
+      gridController.getgif(3);
+    }
+  },
+};
+
+function gridinit() {
+  browserController.initialize();
+  animUtil.init();
+  dragUtil.init();
+}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 12 - 0
js/pc.min.js


+ 273 - 0
js/section1.js

@@ -0,0 +1,273 @@
+function showGridIntro() {
+  ads('show-intro');
+  $('#grid-intro').fadeIn();
+}
+
+function closeGridIntro() {
+  rds('show-intro');
+  $('#grid-intro').fadeOut();
+}
+
+function openLeftBtn() {
+  $('.leftbtn').toggleClass('active');
+}
+// 荣誉
+function showHonor() {
+  $('.honorbox').fadeIn();
+  $('.page').addClass('zuiwaimian');
+  return false;
+}
+//说明
+function showInfo() {
+  $('.infobox').fadeIn();
+  $('.page').addClass('zuiwaimian');
+  return false;
+}
+
+var unClickArr = [];
+
+var clickType = '';
+var cardArray = [];
+var isAutofan = true; //是否自动翻转
+var isSwitchingOver = true; //切换动画是否播放完毕
+// var changeTime = 1000 * 60 * 60 * 24; //默认2分钟切换一次类型 ---玉姐要求不再自动切换 故2分钟改成一天60*24 hxl
+function backClick() {
+  isAutofan = true;
+  $('.iframebox').fadeOut().html('');
+}
+
+function pingzhang(e, type, typename) {
+  e.stopPropagation();
+  isAutofan = false;
+  $('.iframebox')
+    .html(
+      `<iframe src="./card.html?type=${type}&typename=${typename}"></iframe><div class="back_btn" onclick="backClick()"></div>`
+    )
+    .fadeIn();
+}
+
+var typeArr = Object.keys(material_gldata);
+/* function autoFanZhuan() {
+  let num = 0;
+  let tts = setInterval(() => {
+    let lastNum = num; // 保存上一次的num值
+    num = Math.floor(Math.random() * typeArr.length); // 重新生成num
+
+    // 如果本次num与上一次num相同,则再计算一次num
+    while (num === lastNum) {
+      num = Math.floor(Math.random() * typeArr.length);
+    }
+    if (isAutofan && isSwitchingOver) {
+      fanzhuan(typeArr[num]);
+      $(".option li").removeClass("active");
+      $(".option li").each(function () {
+        if ($(this).find("span").text().trim() === typeArr[num]) {
+          $(this).addClass("active");
+        }
+      });
+    }
+    isAutofan = true;
+  }, changeTime);
+} */
+
+function fanzhuan(type) {
+  unClickArr = [];
+  for (let i = 0; i < cardArray.length; i++) {
+    let item = lxs[cardArray[i]];
+    if (item.material_gl?.includes(type) || type == '全部') {
+      unClickArr.push(cardArray[i]);
+    }
+  }
+  gridController.updateInit(unClickArr);
+}
+
+$(function () {
+  getWwList();
+  setTimeout(() => {
+    $('.select').addClass('active');
+    $('.option').addClass('active');
+  }, 2000);
+
+  $('.infobox').bind('mouseleave', function (e) {
+    $('.infobox').fadeOut();
+    $('.page').removeClass('zuiwaimian');
+  });
+  $('.infobox,.infobox span').bind('click', function (e) {
+    $('.infobox').fadeOut();
+    $('.page').removeClass('zuiwaimian');
+  });
+
+  $('.honorbox').bind('click', function (e) {
+    $('.honorbox').fadeOut();
+    $('.page').removeClass('zuiwaimian');
+  });
+});
+// 获取文物列表
+function getWwList() {
+  for (let id in lxs) {
+    let item = lxs[id];
+
+    cardArray.push(id);
+  }
+
+  let liStr =
+    "<li class='active' onclick='choseWwType(this)'><span>全部</span></li>";
+  typeArr.map((str) => {
+    liStr += "<li  onclick='choseWwType(this)'><span>" + str + '</span></li>';
+  });
+  $('.option').html(liStr);
+  $('.option li').click(function () {});
+  //   autoFanZhuan();
+
+  navigationController.startSite();
+  gridController.init(cardArray);
+}
+
+function choseWwType(that) {
+  $('.option li').removeClass('active');
+  $(that).addClass('active');
+  var _text = $(that).find('span').text();
+  if (_text == clickType) return;
+  clickType = _text;
+  fanzhuan(_text);
+}
+
+//文物类型内容
+function getWwType(wwinfo) {
+  let list = [
+    'dynasty',
+    'origin',
+    'crafts',
+    'decoration',
+    'material',
+    'type',
+    'inscription',
+    'usage',
+    'meaning',
+  ];
+  let list2 = [
+    'dynasty',
+    'origin',
+    'crafts_gl',
+    'decoration_gl',
+    'material',
+    'type_gl',
+    'inscription',
+    'usage',
+    'meaning',
+  ];
+  var html = '';
+
+  var chtml = '';
+  wwinfo.colors.split(',').map((item) => {
+    return (chtml += `<i onclick="pingzhang(event,'colors','${item.replace(
+      '#',
+      ''
+    )}')" style="background-color:${item}"></i>`);
+  });
+  html += `<li class='colors'>${chtml}</li>`;
+
+  list.map((item, index) => {
+    let info = list2[index];
+    if (wwinfo[item] && wwinfo[info]) {
+      html += `<li onclick="pingzhang(event,'${info}','${
+        wwinfo[info].split('、')[0]
+      }')">${wwinfo[item]}</li><br/>`;
+    }
+  });
+  $('#wwtype').html(html);
+  // if (window.isMobile) {
+  //   // 选择 class 为 scroll 的元素
+  //   const scrollElement = document.querySelector('#wwtype');
+  //   setTimeout(function () {
+  //     // 滚动到最右侧
+  //     scrollElement.scrollTo({
+  //       left: scrollElement.scrollWidth,
+  //       behavior: 'smooth',
+  //     });
+  //   }, 500);
+  //   // 2 秒后滚动回最左侧
+  //   setTimeout(() => {
+  //     scrollElement.scrollTo({
+  //       left: 0,
+  //       behavior: 'smooth',
+  //     });
+  //   }, 1500);
+  // }
+}
+
+// 关联文物
+function showExplore(id) {
+  let item = lxs[id];
+  $('.exploreiframe')
+    .fadeIn()
+    .html(`<iframe src="./explore.html?id=${id}"></iframe>`);
+}
+
+//打开时间轴页面
+function showTimeline() {
+  $('.select').addClass('zuiwaimian');
+  if ($('.timelineicon').hasClass('active')) {
+    return;
+  }
+  $('.option').removeClass('active');
+  isAutofan = false;
+  $('.typeicon').removeClass('active');
+  $('.timelineicon').addClass('active');
+  $('.timelinewrap').fadeIn(500);
+  $('.timelineiframe').fadeIn().html(`<iframe src="./timeline.html"></iframe>`);
+  $('.page').addClass('zuiwaimian');
+}
+
+//关闭时间轴页面
+function closeTimeline() {
+  $('.select').removeClass('zuiwaimian');
+  isAutofan = true;
+  $('.timelineiframe').fadeOut().html('');
+  $('.timelinewrap').fadeOut(500);
+  $('.option').addClass('active');
+  $('.typeicon').addClass('active');
+  $('.timelineicon').removeClass('active');
+  $('.page').removeClass('zuiwaimian');
+}
+
+//点击类型按钮
+function showTypeCont() {
+  if ($('.typeicon').hasClass('active')) {
+    return;
+  }
+  closeTimeline();
+}
+
+//关闭探索页面
+function closeExploreWrap() {
+  isAutofan = true;
+  $('.exploreiframe').fadeOut().html('');
+  $('.explorewrap').fadeOut(500);
+  $('.option').addClass('active');
+  $('.typeicon').addClass('active');
+  $('.timelineicon').removeClass('active');
+  $('.page').removeClass('zuiwaimian');
+}
+
+// 打开关联页面
+function showAllExplore(id) {
+  isAutofan = false;
+  $('.explorewrap').fadeIn(500);
+  getWwType(lxs[id]);
+  showExplore(id);
+  $('.page').addClass('zuiwaimian');
+}
+
+// 获取一个随机的id
+function getRandomId(excludeId, data) {
+  if (data.length > 1) {
+    var randomIndex;
+    do {
+      randomIndex = Math.floor(Math.random() * data.length);
+    } while (data[randomIndex] === excludeId);
+    return data[randomIndex];
+  } else {
+    return '';
+  }
+}

+ 54 - 0
menu.html

@@ -0,0 +1,54 @@
+<!-- saved from url=(0033)https://vr.njmuseum.com/menu.html -->
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
+    <script src="chrome-extension://gkkcgbepkkhfnnjolcaggogkjodmlpkh/assets/content-main-world.ts-AyIWFy1P.js" type="module"></script>
+  </head>
+  <body>
+    <div class="menubox">
+      <div class="menuicon close" onclick="hideMenu()"></div>
+      <ul class="menulist">
+        <li onclick="showVideoPage()">文物科普视频</li>
+        <li onclick="showSkPage()">南朝石刻云展</li>
+        <!-- <li onclick="showDmzPage()">观天�&#65533;<small>·大明的世�&#65533;</small></li> -->
+        <li onclick="showWwPage()">文物数字云展</li>
+      </ul>
+    </div>
+
+    <script>
+      function showMenu() {
+        if ($(".nextbox .add").hasClass("close")) {
+          hideMenu();
+          return;
+        }
+
+        $(".menubox").removeClass("hide").addClass("active");
+        setTimeout(() => {
+          $(".menubox").addClass("current");
+        }, 50);
+        $(".nextbox .add").addClass("close");
+      }
+
+      // 隐藏菜单
+      function hideMenu() {
+        $(".menubox").removeClass("active current").addClass("hide");
+        $(".nextbox .add").removeClass("close");
+      }
+
+      // 展示视频
+      function showVideoPage() {
+        $.fn.fullpage.moveTo(2, 0);
+      }
+      function showSkPage() {
+        $.fn.fullpage.moveTo(videonum + 1, 0);
+      }
+      function showDmzPage() {
+        $.fn.fullpage.moveTo(videonum + sknum + 1, 0);
+      }
+      // 展示三维文物
+      function showWwPage() {
+        $.fn.fullpage.moveTo(videonum + sknum + dmznum + 1, 0);
+      }
+    </script>
+  </body>
+</html>

BIN=BIN
modelImg/hbts01.png


BIN=BIN
modelImg/hbts02.png


BIN=BIN
modelImg/hbts03.png


BIN=BIN
modelImg/hbts04.png


BIN=BIN
modelImg/hbts05.png


BIN=BIN
modelImg/hbts06.png


BIN=BIN
modelImg/hbts07.png


BIN=BIN
modelImg/hbts08.png


BIN=BIN
modelImg/hbts09.png


BIN=BIN
modelImg/hbts10.png


BIN=BIN
modelImg/hbts11.png


BIN=BIN
modelImg/hbts12.png


BIN=BIN
modelImg/hbts13.png


BIN=BIN
modelImg/hbts14.png


BIN=BIN
modelImg/hbts15.png


BIN=BIN
modelImg/hbts16.png


BIN=BIN
modelImg/hbts17.png


BIN=BIN
modelImg/hbts18.png


BIN=BIN
modelImg/hbts19.png


BIN=BIN
modelImg/hbts20.png


BIN=BIN
modelImg/hbts21.png


BIN=BIN
modelImg/hbts22.png


BIN=BIN
modelImg/hbts23.png


BIN=BIN
modelImg/hbts24.png


BIN=BIN
modelImg/hbts25.png


BIN=BIN
modelImg/hbts26.png


BIN=BIN
modelImg/hbts27.png


BIN=BIN
modelImg/hbts28.png


BIN=BIN
modelImg/hbts29.png


BIN=BIN
modelImg/hbts30.png


BIN=BIN
modelImg/hbts31.png


BIN=BIN
modelImg/hbts32.png


BIN=BIN
modelImg/hbts33.png


BIN=BIN
modelImg/hbts34.png


BIN=BIN
modelImg/hbts35.png


BIN=BIN
modelImg/hbts36.png


BIN=BIN
modelImg/hbts37.png


BIN=BIN
modelImg/hbts38.png


BIN=BIN
modelImg/hbts39.png


BIN=BIN
modelImg/hbts40.png


BIN=BIN
modelImg/hbts41.png


BIN=BIN
modelImg/hbts42.png


BIN=BIN
modelImg/hbts43.png


BIN=BIN
modelImg/hbts44.png


BIN=BIN
modelImg/hbts45.png


BIN=BIN
modelImg/hbts46.png


BIN=BIN
modelImg/hbts47.png


BIN=BIN
modelImg/hbts48.png


BIN=BIN
modelImg/hbts49.png


BIN=BIN
modelImg/hbts50.png


BIN=BIN
modelImg/hbts51.png


BIN=BIN
modelImg/hbts52.png


BIN=BIN
modelImg/hbts53.png


BIN=BIN
modelImg/hbts54.png


+ 9 - 0
page.html

@@ -0,0 +1,9 @@
+<!-- saved from url=(0033)https://vr.njmuseum.com/page.html -->
+<html>
+  <head>
+    <link rel="stylesheet" href="./css/page.css" />
+  </head>
+  <body>
+    <div class="section section1"></div>
+  </body>
+</html>

+ 74 - 0
section1.html

@@ -0,0 +1,74 @@
+<!-- saved from url=(0037)https://vr.njmuseum.com/section1.html -->
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
+    <link rel="stylesheet" href="./css/section1.css" />
+
+    <script src="chrome-extension://gkkcgbepkkhfnnjolcaggogkjodmlpkh/assets/content-main-world.ts-AyIWFy1P.js" type="module"></script>
+  </head>
+  <body>
+    <div class="allbg">
+      <video src="https://vr.njmuseum.com/img/bg.mp4" muted="" loop="" autoplay="" playbackrate="0.1" playsinline="" webkit-playsinline="" x-webkit-airplay="allow" x5-video-player-type="h5" x5-video-player-fullscreen="false" disablepictureinpicture="" id="myvideo"></video>
+    </div>
+
+    <div class="leftbtn" onclick="openLeftBtn()">
+      <i class="icon"></i>
+      <div class="hidebtnbox">
+        <div class="help" onclick="showGridIntro()"></div>
+      </div>
+    </div>
+    <div class="grid" id="grid"></div>
+    <div id="preloader"></div>
+    <div id="root" style="z-index: 0">
+      <div id="container">
+        <div id="pantone" class="chand show-pantone">
+          <div id="pantone-loading"></div>
+        </div>
+      </div>
+    </div>
+    <div id="check"></div>
+    <div class="logo"></div>
+
+    <!-- 探索+翻牌�&#65533; -->
+    <div class="explorewrap">
+      <ul class="wwtype" id="wwtype"></ul>
+      <div class="exploreiframe"></div>
+      <div class="close" onclick="closeExploreWrap()"></div>
+    </div>
+
+    <!-- 时间�&#65533; -->
+    <div class="timelinewrap">
+      <div class="timelineiframe"></div>
+      <div class="close" onclick="closeTimeline()"></div>
+    </div>
+
+    <div class="select">
+      <div class="iconbox">
+        <div class="typeicon active" onclick="showTypeCont()">
+          <ul class="option">
+            <!-- <li class="active"><span>全部</span></li>
+                <li><span>金银�&#65533;</span></li>
+                <li><span>铜器</span></li>
+                <li><span>陶器</span></li>
+                <li><span>玉石</span></li>
+                <li><span>书画</span></li>
+                <li><span>漆木�&#65533;</span></li> -->
+          </ul>
+        </div>
+      </div>
+      <div class="bg">
+        <div class="bg1"></div>
+        <div class="bg2"></div>
+        <div class="bg3"></div>
+        <div class="bg4"></div>
+      </div>
+    </div>
+    <div class="iframebox"></div>
+    <div class="overlay"></div>
+
+    <!-- <script src="https://vr.njmuseum.com/js/xlsx.full.min.js"></script> -->
+    <script src="./js/data.js"></script>
+    <script src="./js/list.js?n=1"></script>
+    <script src="./js/section1.js"></script>
+  </body>
+</html>