gradients.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*!
  2. {
  3. "name": "CSS Gradients",
  4. "caniuse": "css-gradients",
  5. "property": "cssgradients",
  6. "tags": ["css"],
  7. "knownBugs": ["False-positives on webOS (https://github.com/Modernizr/Modernizr/issues/202)"],
  8. "notes": [{
  9. "name": "Webkit Gradient Syntax",
  10. "href": "https://webkit.org/blog/175/introducing-css-gradients/"
  11. },{
  12. "name": "Linear Gradient Syntax",
  13. "href": "https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient"
  14. },{
  15. "name": "W3C Spec",
  16. "href": "https://drafts.csswg.org/css-images-3/#gradients"
  17. }]
  18. }
  19. !*/
  20. define(['Modernizr', 'prefixes', 'createElement'], function(Modernizr, prefixes, createElement) {
  21. Modernizr.addTest('cssgradients', function() {
  22. var str1 = 'background-image:';
  23. var str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));';
  24. var css = '';
  25. var angle;
  26. for (var i = 0, len = prefixes.length - 1; i < len; i++) {
  27. angle = (i === 0 ? 'to ' : '');
  28. css += str1 + prefixes[i] + 'linear-gradient(' + angle + 'left top, #9f9, white);';
  29. }
  30. if (Modernizr._config.usePrefixes) {
  31. // legacy webkit syntax (FIXME: remove when syntax not in use anymore)
  32. css += str1 + '-webkit-' + str2;
  33. }
  34. var elem = createElement('a');
  35. var style = elem.style;
  36. style.cssText = css;
  37. // IE6 returns undefined so cast to string
  38. return ('' + style.backgroundImage).indexOf('gradient') > -1;
  39. });
  40. });