Requires

Provides

BoxShadow.js

Set box shadow in an accessible way

License:
Public domain (http://unlicense.org).
  1. 18
  2. 19
  3. 20
  4. 21
  5. 22
  6. 23
  7. 24
  8. 25
  9. 26
  10. 27
  11. 28
  12. 29
  13. 30
  14. 31
  15. 32
  16. 33
  17. 34
  18. 35
  19. 36
  20. 37
  21. 38
  22. 39
  23. 40
  24. 41
  25. 42
  26. 43
  27. 44
  28. 45
  29. 46
  30. 47
  31. 48
  32. 49
  33. 50
  34. 51
  35. 52
  36. 53
  37. 54
  38. 55
  39. 56
  40. 57
  41. 58
  42. 59
  43. 60
  44. 61
  45. 62
(function() { if (Browser.safari) var property = 'webkitBoxShadow'; else if (Browser.firefox) var property = 'MozBoxShadow' else var property = 'boxShadow'; if (property) { var dummy = document.createElement('div'); var cc = property.hyphenate(); if (cc.charAt(0) == 'w') cc = '-' + cc; dummy.style.cssText = cc + ': 1px 1px 1px #ccc' Browser.Features.boxShadow = !!dummy.style[property]; delete dummy; } Element.Properties.boxShadow = { set: function(value) { if (!property) return; switch ($type(value)) { case "number": value = {blur: value}; break; case "array": value = { color: value[0], blur: value[1], x: value[2], y: value[3] } break; case "boolean": if (value) value = {blur: 10}; else value = false case "object": if (value.isColor) value = {color: value} } if (!value) { if (!this.retrieve('shadow:value')) return; this.eliminate('shadow:value'); this.style[property] = 'none'; return; } this.store('shadow:value', value) var color = value.color ? value.color.toString() : 'transparent' this.style[property] = (value.x || 0) + 'px ' + (value.y || 0) + 'px ' + (value.blur || 0) + 'px ' + color; } } })();