Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.28 KB | None | 0 0
  1. var IMGs = [];
  2. var x = 0;
  3. var Last = 0;
  4. var Wndw = $(window);
  5. var TopBar;
  6. var InputBx;
  7. var JSON;
  8. var BrdrImg;
  9. var ScImgBrdr = '0.3em dotted rgb(0, 153, 255)';
  10. var ScImgHovBrdr = '0.2em dotted rgb(0, 153, 255)';
  11. var ScFstImgBrdr = '0.2em solid rgb(255, 200, 0)';
  12. var Title;
  13. var Vw;
  14. var VwBrdr = '0.3em solid black';
  15. var VwBrdrHov = 'repeating-linear-gradient(45deg, purple, aqua 1%, purple 1%, aqua 12%) 10';
  16. var VwBrdrUnhov = 'none';
  17. var ScBx;
  18. var ScWd;
  19. var ScLBnd;
  20. var ScRBnd;
  21. var ScImgWd;
  22.  
  23. function SetVar() {
  24. TopBar = $("#TopBar");
  25. InputBx = $("#JSON");
  26. ScBx = $("#ScBox");
  27. Vw = $("#Vw");
  28. Title = $("#Title");
  29. }
  30.  
  31. function UpdateSizes() {
  32. Title.css('font-size', Math.min(Wndw.width(), Wndw.height()) * 0.062);
  33. }
  34.  
  35. function LoadPics() {
  36. ScBx.empty();
  37. IMGs = [];
  38. $.getJSON(https://api.myjson.com/bins/pebie, function(data) {
  39. $.each(data, function(key, val) {
  40. var ScIMG = $(document.createElement('img'));
  41. ScBx.append(ScIMG);
  42. IMGs.push({
  43. "IMG" : ScIMG,
  44. "title" : key,
  45. "src" : val
  46. });
  47. var Cur = IMGs.length - 1;
  48. ScIMG.attr('id', key);
  49. ScIMG.attr('src', val);
  50. ScIMG.click(function() { ImgClick(Cur); });
  51. ScIMG.hover(function() { ImgHov(Cur); }, function() {ImgUnhov(Cur); });
  52. });
  53. Last = IMGs.length - 1;
  54. Vw.attr('src', IMGs[0].src);
  55. Vw.css('border', VwBrdr);
  56. BrdrImg = IMGs[0].IMG;
  57. BrdrImg.css('border', ScImgBrdr);
  58. Title.text(IMGs[0].title);
  59. UpdateScrollInfo();
  60. });
  61. }
  62.  
  63. function UpdateScrollInfo() {
  64. ScWd = ScBx.width();
  65. ScLBnd = ScBx.scrollLeft();
  66. ScRBnd = ScLBnd + ScWd;
  67. if (IMGs.length > 0)
  68. ScImgWd = parseInt(IMGs[0].IMG.css('width')) + 2 * parseInt(IMGs[0].IMG.css('margin-left'));
  69. }
  70.  
  71. function AddEventListeners() {
  72. window.addEventListener("keydown", function(event) {
  73. if (event.keyCode == 39)
  74. GoRight();
  75. else if (event.keyCode == 37)
  76. GoLeft();
  77. else if (event.keyCode == 13)
  78. LoadJSON();
  79. });
  80. window.addEventListener('mousewheel', function(e) {
  81. if (e.wheelDelta < 0)
  82. GoRight();
  83. else
  84. GoLeft();
  85. });
  86. }
  87.  
  88.  
  89. function BtnHov(ID) {
  90. $("#" + ID).css('opacity', 1);
  91. }
  92.  
  93. function BtnUnhov(ID) {
  94. $("#" + ID).css('opacity', 0.4);
  95. if (ID == "LB" || ID == "RB") {
  96. $("#" + ID).css('width', '7%');
  97. $("#" + ID).css('height', '14%');
  98. }
  99. }
  100.  
  101. function BtnMDown(ID) {
  102. if (ID == "LB" || ID == "RB") {
  103. $("#" + ID).css('width', '9%');
  104. $('#' + ID).css('height', '18%');
  105. }
  106. }
  107.  
  108. function BtnMUp(ID) {
  109. if (ID == "LB" || ID == "RB") {
  110. $("#" + ID).css('width', '7%');
  111. $("#" + ID).css('height', '14%');
  112. }
  113. }
  114.  
  115. function GoRight() {
  116. if (IMGs.length != 0) {
  117. if (x == 0)
  118. BrdrImg.css('border', ScFstImgBrdr);
  119. else
  120. BrdrImg.css('border', 'none');
  121. x = (x == Last) ? 0 : x + 1;
  122. BrdrImg = IMGs[x].IMG;
  123. Vw.attr('src', IMGs[x].src);
  124. BrdrImg.css('border', ScImgBrdr);
  125. Title.text(IMGs[x].title);
  126.  
  127. var LPos = x * ScImgWd;
  128. var RPos = LPos + ScImgWd;
  129. if (RPos > ScRBnd)
  130. ScBx.scrollLeft(LPos);
  131. else if (LPos < ScLBnd)
  132. ScBx.scrollLeft(RPos - ScWd);
  133. }
  134.  
  135. }
  136.  
  137. function GoLeft() {
  138. if (IMGs.length != 0) {
  139. if (x == 0)
  140. BrdrImg.css('border', ScFstImgBrdr);
  141. else
  142. BrdrImg.css('border', 'none');
  143. x = (x == 0) ? Last : x - 1;
  144. BrdrImg = IMGs[x].IMG;
  145. Vw.attr('src', IMGs[x].src);
  146. BrdrImg.css('border', ScImgBrdr);
  147. Title.text(IMGs[x].title);
  148.  
  149. var LPos = x * ScImgWd;
  150. var RPos = LPos + ScImgWd;
  151. if (LPos < ScLBnd)
  152. ScBx.scrollLeft(RPos - ScWd);
  153. else if (RPos > ScRBnd)
  154. ScBx.scrollLeft(LPos);
  155. }
  156. }
  157.  
  158. function ImgClick(i) {
  159. Vw.attr('src', IMGs[i].src);
  160. if (x == 0)
  161. BrdrImg.css('border', ScFstImgBrdr);
  162. else
  163. BrdrImg.css('border', 'none');
  164. x = i;
  165. BrdrImg = IMGs[x].IMG;
  166. BrdrImg.css('border', ScImgBrdr);
  167. Title.text(IMGs[x].title);
  168.  
  169. var LPos = x * ScImgWd;
  170. var RPos = LPos + ScImgWd;
  171. if (RPos > ScRBnd)
  172. ScBx.scrollLeft(LPos);
  173. else if (LPos < ScLBnd)
  174. ScBx.scrollLeft(RPos - ScWd);
  175. }
  176.  
  177. function ImgHov(i) {
  178. if (IMGs[i].IMG != BrdrImg)
  179. IMGs[i].IMG.css('border', ScImgHovBrdr);
  180. }
  181.  
  182. function ImgUnhov(i) {
  183. if (IMGs[i].IMG != BrdrImg && i == 0)
  184. IMGs[i].IMG.css('border', ScFstImgBrdr);
  185. else if (IMGs[i].IMG != BrdrImg && i != 0)
  186. IMGs[i].IMG.css('border', 'none');
  187. }
  188.  
  189. function ViewHov() {
  190. Vw.css('border-image', VwBrdrHov);
  191. }
  192.  
  193. function ViewUnhov() {
  194. Vw.css('border-image', VwBrdrUnhov);
  195. }
  196.  
  197. function LoadJSON() {
  198. if (InputBx.val() != "") {
  199. JSON = InputBx.val();
  200. InputBx.val("");
  201. LoadPics();
  202. }
  203. }
  204.  
  205. function Reveal() {
  206. TopBar.css('z-index', 2);
  207. }
  208.  
  209. function Hide() {
  210. TopBar.css('z-index', -2);
  211. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement