view.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. $(function () {
  2. $(window).trigger("resize");
  3. let mainImg = document.getElementById("btnMainImgEnlargement")
  4. mainImg.onclick = function () {
  5. popupCenter(this.value, this.title);
  6. };
  7. });
  8. $(window).resize(function () {
  9. toggleActorBtnMoreInfo($("section.actor"));
  10. toggleStaffBtnMoreInfo($("section.staff"));
  11. });
  12. let toggleActorBtnMoreInfo = function ($obj) {
  13. let $block = $obj.find("blockquote");
  14. let width = $block.textWidth();
  15. if (Number($block.innerWidth()) > width) {
  16. $obj.find("input").prop("hidden", true);
  17. } else {
  18. $obj.find("input").prop("hidden", false);
  19. }
  20. }
  21. let toggleStaffBtnMoreInfo = function ($obj) {
  22. let $block = $obj.find("blockquote")
  23. let width = 0;
  24. for (let row of $block.find("dl")) {
  25. width += Number($(row).width());
  26. }
  27. if (Number($block.width()) > width) {
  28. $obj.find("input").prop("hidden", true);
  29. } else {
  30. $obj.find("input").prop("hidden", false);
  31. }
  32. }
  33. let makePhotoSwipeImage = function (list) {
  34. for (let row of list) {
  35. if (row.firstChild == null) {
  36. continue;
  37. }
  38. const a = row.firstChild.nextSibling;
  39. const img = new Image();
  40. img.src = a.href;
  41. img.onload = function () {
  42. a.dataset.pswpWidth = this.width;
  43. a.dataset.pswpHeight = this.height;
  44. }
  45. }
  46. }
  47. new Swiper("#posters", {
  48. grabCursor: true,
  49. centeredSlides: false,
  50. a11y: true,
  51. loop: false,
  52. loopFillGroupWithBlank: false,
  53. navigation: {
  54. nextEl: ".swiper-button-next",
  55. prevEl: ".swiper-button-prev",
  56. },
  57. breakpoints: {
  58. 320: {
  59. slidesPerView: 4,
  60. spaceBetween: 10
  61. },
  62. 800: {
  63. slidesPerView: 4,
  64. spaceBetween: 10
  65. },
  66. 1000: {
  67. slidesPerView: 5,
  68. spaceBetween: 10
  69. },
  70. 1200: {
  71. slidesPerView: 7,
  72. spaceBetween: 10
  73. },
  74. 1400: {
  75. slidesPerView: 8,
  76. spaceBetween: 10
  77. },
  78. 1700: {
  79. slidesPerView: 10,
  80. spaceBetween: 10
  81. },
  82. 2000: {
  83. slidesPerView: 11,
  84. spaceBetween: 10
  85. },
  86. 2200: {
  87. slidesPerView: 13,
  88. spaceBetween: 10
  89. },
  90. 2500: {
  91. slidesPerView: 15,
  92. spaceBetween: 30
  93. }
  94. }
  95. });
  96. new Swiper("#stillCut", {
  97. grabCursor: true,
  98. centeredSlides: false,
  99. a11y: true,
  100. loop: false,
  101. loopFillGroupWithBlank: false,
  102. navigation: {
  103. nextEl: ".swiper-button-next",
  104. prevEl: ".swiper-button-prev",
  105. },
  106. breakpoints: {
  107. 320: {
  108. slidesPerView: 4,
  109. spaceBetween: 10
  110. },
  111. 800: {
  112. slidesPerView: 4,
  113. spaceBetween: 10
  114. },
  115. 1000: {
  116. slidesPerView: 5,
  117. spaceBetween: 10
  118. },
  119. 1200: {
  120. slidesPerView: 7,
  121. spaceBetween: 10
  122. },
  123. 1400: {
  124. slidesPerView: 8,
  125. spaceBetween: 10
  126. },
  127. 1700: {
  128. slidesPerView: 10,
  129. spaceBetween: 10
  130. },
  131. 2000: {
  132. slidesPerView: 11,
  133. spaceBetween: 10
  134. },
  135. 2200: {
  136. slidesPerView: 13,
  137. spaceBetween: 10
  138. },
  139. 2500: {
  140. slidesPerView: 15,
  141. spaceBetween: 30
  142. }
  143. }
  144. });
  145. let posters = document.getElementById("posters");
  146. let stillCuts = document.getElementById("stillCut");
  147. if (posters) {
  148. makePhotoSwipeImage(posters.querySelector(".swiper-wrapper").children);
  149. const posterBox = new PhotoSwipeLightbox({
  150. gallery: "#posters .swiper-wrapper",
  151. children: "a",
  152. thumbSelector: "img",
  153. mouseMovePan: true,
  154. showHideAnimationType: 'none',
  155. initialZoomLevel: 'fit',
  156. secondaryZoomLevel: 1.5,
  157. maxZoomLevel: 1,
  158. errorMsg: '이미지를 찾을 수 없습니다.',
  159. pswpModule: () => PhotoSwipe
  160. });
  161. posterBox.init();
  162. }
  163. if (stillCuts) {
  164. makePhotoSwipeImage(stillCuts.querySelector(".swiper-wrapper").children)
  165. const stillCutBox = new PhotoSwipeLightbox({
  166. gallery: "#stillCut .swiper-wrapper",
  167. children: "a",
  168. thumbSelector: "img",
  169. mouseMovePan: true,
  170. showHideAnimationType: "none",
  171. initialZoomLevel: 'fit',
  172. secondaryZoomLevel: 1.5,
  173. maxZoomLevel: 1,
  174. errorMsg: '이미지를 찾을 수 없습니다.',
  175. pswpModule: () => PhotoSwipe
  176. });
  177. stillCutBox.init();
  178. }