Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

3 лет назад
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
  2. // ================= Transition =================
  3. // Event wrapper. Copy from react source code
  4. function makePrefixMap(styleProp, eventName) {
  5. var prefixes = {};
  6. prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();
  7. prefixes['Webkit' + styleProp] = 'webkit' + eventName;
  8. prefixes['Moz' + styleProp] = 'moz' + eventName;
  9. prefixes['ms' + styleProp] = 'MS' + eventName;
  10. prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();
  11. return prefixes;
  12. }
  13. export function getVendorPrefixes(domSupport, win) {
  14. var prefixes = {
  15. animationend: makePrefixMap('Animation', 'AnimationEnd'),
  16. transitionend: makePrefixMap('Transition', 'TransitionEnd')
  17. };
  18. if (domSupport) {
  19. if (!('AnimationEvent' in win)) {
  20. delete prefixes.animationend.animation;
  21. }
  22. if (!('TransitionEvent' in win)) {
  23. delete prefixes.transitionend.transition;
  24. }
  25. }
  26. return prefixes;
  27. }
  28. var vendorPrefixes = getVendorPrefixes(canUseDOM, typeof window !== 'undefined' ? window : {});
  29. var style = {};
  30. if (canUseDOM) {
  31. style = document.createElement('div').style;
  32. }
  33. var prefixedEventNames = {};
  34. export function getVendorPrefixedEventName(eventName) {
  35. if (prefixedEventNames[eventName]) {
  36. return prefixedEventNames[eventName];
  37. }
  38. var prefixMap = vendorPrefixes[eventName];
  39. if (prefixMap) {
  40. var stylePropList = Object.keys(prefixMap);
  41. var len = stylePropList.length;
  42. for (var i = 0; i < len; i += 1) {
  43. var styleProp = stylePropList[i];
  44. if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {
  45. prefixedEventNames[eventName] = prefixMap[styleProp];
  46. return prefixedEventNames[eventName];
  47. }
  48. }
  49. }
  50. return '';
  51. }
  52. export var animationEndName = getVendorPrefixedEventName('animationend');
  53. export var transitionEndName = getVendorPrefixedEventName('transitionend');
  54. export var supportTransition = !!(animationEndName && transitionEndName);
  55. export function getTransitionName(transitionName, transitionType) {
  56. if (!transitionName) return null;
  57. if (typeof transitionName === 'object') {
  58. var type = transitionType.replace(/-\w/g, function (match) {
  59. return match[1].toUpperCase();
  60. });
  61. return transitionName[type];
  62. }
  63. return transitionName + '-' + transitionType;
  64. }