index.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. export function randomExtend(minNum, maxNum) {
  2. if (arguments.length === 1) {
  3. return parseInt(Math.random() * minNum + 1, 10)
  4. } else {
  5. return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10)
  6. }
  7. }
  8. export function debounce(delay, callback) {
  9. let lastTime
  10. return function () {
  11. clearTimeout(lastTime)
  12. const [that, args] = [this, arguments]
  13. lastTime = setTimeout(() => {
  14. callback.apply(that, args)
  15. }, delay)
  16. }
  17. }
  18. export function observerDomResize(dom, callback) {
  19. const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver
  20. const observer = new MutationObserver(callback)
  21. observer.observe(dom, { attributes: true, attributeFilter: ['style'], attributeOldValue: true })
  22. return observer
  23. }
  24. export function getPointDistance(pointOne, pointTwo) {
  25. const minusX = Math.abs(pointOne[0] - pointTwo[0])
  26. const minusY = Math.abs(pointOne[1] - pointTwo[1])
  27. return Math.sqrt(minusX * minusX + minusY * minusY)
  28. }
  29. export function uuid(hasHyphen) {
  30. return (hasHyphen ? 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' : 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx').replace(/[xy]/g, function (c) {
  31. const r = (Math.random() * 16) | 0
  32. const v = c == 'x' ? r : (r & 0x3) | 0x8
  33. return v.toString(16)
  34. })
  35. }