overflow.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <?php
  2. require_once '../parts.php';
  3. require_once '../settings.php';
  4. $settings = get_settings();
  5. ?>
  6. <!DOCTYPE html>
  7. <html lang="en">
  8. <head>
  9. <meta charset="UTF-8">
  10. <meta name="viewport" content="width=device-width,initial-scale=1">
  11. <title>Overflow</title>
  12. <link rel="stylesheet" href="../../../../../dist/css/themes/splide-<?php echo $settings['theme'] ?>.min.css">
  13. <link rel="stylesheet" href="../../assets/css/styles.css">
  14. <script src="../../../../../dist/js/splide.js"></script>
  15. <script>
  16. document.addEventListener( 'DOMContentLoaded', function () {
  17. var splide01 = new Splide( '#splide01', {
  18. fixedWidth : '6rem',
  19. gap : 10,
  20. compact : true,
  21. focus : 0,
  22. } );
  23. splide01.on( 'overflow', overflow => {
  24. console.log( 'splide01:', overflow );
  25. splide01.root.classList.toggle( 'is-inactive', ! overflow );
  26. splide01.options = { arrows: overflow, pagination: overflow, drag: overflow };
  27. } );
  28. splide01.mount();
  29. var splide02 = new Splide( '#splide02', {
  30. type : 'loop',
  31. gap : '1rem',
  32. fixedWidth: 100,
  33. } );
  34. splide02.on( 'overflow', overflow => {
  35. console.log( 'splide02:', overflow );
  36. splide02.root.classList.toggle( 'is-inactive', ! overflow );
  37. if ( overflow ) {
  38. splide02.options = { clones: undefined, arrows: true, pagination: true, drag: true };
  39. } else {
  40. splide02.go( 0 );
  41. splide02.options = { clones: 0, arrows: false, pagination: false, drag: false };
  42. }
  43. } );
  44. splide02.mount();
  45. var splide03 = new Splide( '#splide03', {
  46. // height : 400,
  47. type : 'loop',
  48. gap : '1rem',
  49. perPage: 3,
  50. } );
  51. splide03.on( 'overflow', overflow => {
  52. console.log( 'splide03:', overflow );
  53. splide03.go( 0 );
  54. if ( overflow ) {
  55. splide03.options = { clones: undefined, arrows: true, pagination: true, drag: true };
  56. } else {
  57. splide03.options = { clones: 0, arrows: false, pagination: false, drag: false };
  58. }
  59. } );
  60. splide03.mount();
  61. var add = document.getElementById( 'add' );
  62. var remove = document.getElementById( 'remove' );
  63. var index = 1;
  64. add.addEventListener( 'click', function() {
  65. splide03.add( [
  66. `<li class="splide__slide"><img src="../../assets/images/pics/slide${ String( ++index ).padStart( 2, '0' ) }.jpg"></li>`,
  67. ] );
  68. } );
  69. remove.addEventListener( 'click', function() {
  70. splide03.remove( splide03.length - 1 );
  71. } );
  72. var splide04 = new Splide( '#splide04', {
  73. autoWidth : true,
  74. gap : '1rem',
  75. focus : 0,
  76. drag : 'free',
  77. compact : true,
  78. } );
  79. splide04.on( 'overflow', overflow => {
  80. console.log( 'splide04:', overflow );
  81. if ( overflow ) {
  82. splide04.options = { arrows: true, pagination: true, drag: true };
  83. } else {
  84. splide04.options = { arrows: false, pagination: false, drag: false };
  85. }
  86. } );
  87. splide04.mount();
  88. } );
  89. </script>
  90. <style>
  91. .splide.is-inactive .splide__list {
  92. justify-content: center;
  93. }
  94. </style>
  95. </head>
  96. <body>
  97. <?php render( 'splide01' ); ?>
  98. <?php render( 'splide02' ); ?>
  99. <?php render( 'splide03', 1 ); ?>
  100. <button id="add">Add</button>
  101. <button id="remove">Remove</button>
  102. <div id="splide04" class="splide">
  103. <div class="splide__track">
  104. <ul class="splide__list">
  105. <li style="width: 100px" class="splide__slide">
  106. <img src="../../assets/images/pics/slide01.jpg">
  107. </li>
  108. <li style="width: 200px" class="splide__slide">
  109. <img src="../../assets/images/pics/slide02.jpg">
  110. </li>
  111. <li style="width: 100px" class="splide__slide">
  112. <img src="../../assets/images/pics/slide03.jpg">
  113. </li>
  114. <li style="width: 200px" class="splide__slide">
  115. <img src="../../assets/images/pics/slide04.jpg">
  116. </li>
  117. <li style="width: 300px" class="splide__slide">
  118. <img src="../../assets/images/pics/slide05.jpg">
  119. </li>
  120. <li style="width: 200px" class="splide__slide">
  121. <img src="../../assets/images/pics/slide06.jpg">
  122. </li>
  123. </ul>
  124. </div>
  125. </div>
  126. </body>
  127. </html>