imgsFullspread.js 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // images double-page
  2. if (debug) console.log('start imgsFullspread');
  3. (function() {
  4. let fullspreadElements = document.querySelectorAll('.imgfullspreadleft, .imgfullspreadright, .imgfullspreadright_bleedtop, .imgfullspreadright_bleed, .doublepage_bigleft, .doublepage_bigright');
  5. for (let fullspreadEl of fullspreadElements) {
  6. let imgSrc = fullspreadEl.firstElementChild?.getAttribute('src');
  7. let nextPage = fullspreadEl.closest('.pagedjs_page')?.nextElementSibling?.querySelector('.pagedjs_page_content');
  8. let imgOverflowEl = document.createElement('div');
  9. switch(true) {
  10. case fullspreadEl.classList.contains('imgfullspreadleft'):
  11. imgOverflowEl.setAttribute('class', 'imgfullspreadleft-right');
  12. break;
  13. case fullspreadEl.classList.contains('imgfullspreadright'):
  14. imgOverflowEl.setAttribute('class', 'imgfullspreadright-right');
  15. break;
  16. case fullspreadEl.classList.contains('imgfullspreadright_bleedtop'):
  17. imgOverflowEl.setAttribute('class', 'imgfullspreadright_bleedtop-right');
  18. break;
  19. case fullspreadEl.classList.contains('imgfullspreadright_bleed'):
  20. imgOverflowEl.setAttribute('class', 'imgfullspreadright_bleed-right');
  21. break;
  22. case fullspreadEl.classList.contains('doublepage_bigleft'):
  23. imgOverflowEl.setAttribute('class', 'overflow_bigimgleft');
  24. break;
  25. case fullspreadEl.classList.contains('doublepage_bigright'):
  26. imgOverflowEl.setAttribute('class', 'overflow_bigimgright');
  27. break;
  28. default:
  29. break;
  30. }
  31. let imgOverflow = document.createElement('img');
  32. imgOverflow.src = imgSrc;
  33. imgOverflowEl.append(imgOverflow);
  34. if (nextPage) nextPage.append(imgOverflowEl);
  35. if (fullspreadEl.classList.contains('imgfullspreadright')
  36. || fullspreadEl.classList.contains('imgfullspreadright_bleedtop')
  37. || fullspreadEl.classList.contains('imgfullspreadright_bleed')) {
  38. let imgLeft = fullspreadEl.firstElementChild;
  39. let imgMargin = imgOverflowEl.getBoundingClientRect().right - imgLeft?.getBoundingClientRect().right;
  40. if (imgLeft) imgLeft.style.marginLeft = `${imgMargin}px`;
  41. }
  42. if (fullspreadEl.classList.contains('doublepage_bigleft')
  43. || fullspreadEl.classList.contains('doublepage_bigright')) {
  44. let smallImgSrc = fullspreadEl.querySelector('img:last-of-type')?.getAttribute('src');
  45. fullspreadEl.querySelector('img:last-of-type')?.remove();
  46. let smallImg = document.createElement('img');
  47. smallImg.setAttribute('src', smallImgSrc);
  48. let smallImgEl = document.createElement('div');
  49. smallImgEl.classList.add('dp_sm_img');
  50. smallImgEl.append(smallImg);
  51. if (fullspreadEl.classList.contains('doublepage_bigleft') && nextPage) {
  52. nextPage.append(smallImgEl);
  53. } else {
  54. fullspreadEl.parentElement?.append(smallImgEl);
  55. }
  56. }
  57. }
  58. // fullpage img page gauche
  59. let fullPageImgs = document.querySelectorAll('.fullpageimage');
  60. for (let fullPageImg of fullPageImgs) {
  61. if (fullPageImg.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode // désolé
  62. .classList.contains('pagedjs_left_page')) {
  63. fullPageImg.style.marginLeft = '-22mm';
  64. }
  65. }
  66. })();
  67. if (debug) console.log('end imgsFullspread');