Sin descripción

main.html 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <!DOCTYPE html> <title>Prevent Overflow Visual Test</title>
  2. <style>
  3. @import '/reset.css';
  4. #scroll {
  5. overflow: scroll;
  6. width: 584px;
  7. height: 584px;
  8. background-color: grey;
  9. }
  10. #scroll::before {
  11. content: 'before';
  12. display: block;
  13. height: 584px;
  14. width: 1px;
  15. }
  16. #scroll::after {
  17. content: 'after';
  18. display: block;
  19. height: 584px;
  20. width: 1px;
  21. }
  22. #reference {
  23. width: 200px;
  24. height: 200px;
  25. background-color: red;
  26. box-shadow: inset 0 0 0 1px black;
  27. }
  28. #popper {
  29. width: 100px;
  30. height: 300px;
  31. background-color: rebeccapurple;
  32. box-shadow: inset 0 0 0 1px black;
  33. }
  34. #arrow {
  35. width: 20px;
  36. height: 20px;
  37. background-color: yellow;
  38. }
  39. </style>
  40. <div id="scroll">
  41. <div id="reference">Reference Box</div>
  42. </div>
  43. <div id="popper">
  44. Popper Box
  45. <div id="arrow" data-popper-arrow></div>
  46. </div>
  47. <script type="module">
  48. import { createPopper } from '../../dist/popper.js';
  49. const reference = document.querySelector('#reference');
  50. const popper = document.querySelector('#popper');
  51. window.instance = createPopper(reference, popper, {
  52. placement: 'right',
  53. modifiers: [
  54. {
  55. name: 'flip',
  56. enabled: false,
  57. },
  58. {
  59. name: 'preventOverflow',
  60. options: {
  61. /*
  62. // "surfaces"
  63. tetherOffset: ({ placement, reference, popper }) => {
  64. const len = ['top', 'bottom'].includes(placement)
  65. ? 'width'
  66. : 'height';
  67. return reference[len] < popper[len] ? reference[len] : popper[len];
  68. },
  69. // "center"
  70. tetherOffset: ({ placement, popper }) => {
  71. const len = ['top', 'bottom'].includes(placement)
  72. ? 'width'
  73. : 'height';
  74. return popper[len] / 2;
  75. },
  76. */
  77. },
  78. },
  79. ],
  80. });
  81. </script>