| <!DOCTYPE html> |
| <html class="reftest-wait"> |
| <head> |
| <style> |
| #container { |
| border: 3px dotted black; |
| background: yellow; |
| overflow: hidden; |
| width: 400px; |
| max-height: 25px; |
| } |
| |
| #container.masked { |
| mask: url('#fade_mask_bottom'); |
| } |
| .item { |
| font-size: 30px; |
| } |
| </style> |
| <script> |
| function go() { |
| clear(); |
| insert(); |
| } |
| |
| function clear() { |
| // Force reflow: |
| container.offsetHeight; |
| |
| // Remove mask: |
| container.classList.remove('masked'); |
| } |
| |
| function insert() { |
| // Add new child: |
| var notificationNode = document.createElement('div'); |
| notificationNode.classList.add('item'); |
| notificationNode.appendChild(document.createTextNode("PASS")); |
| var container = document.getElementById('container'); |
| container.appendChild(notificationNode); |
| |
| // Force reflow: |
| container.offsetHeight; |
| |
| // Add back mask: |
| container.classList.add('masked'); |
| |
| document.documentElement.classList.remove('reftest-wait'); |
| } |
| </script> |
| </head> |
| <body onload="go();"> |
| <div id='container' class="masked"></div> |
| |
| <!-- BEGIN SVG MASK: --> |
| <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> |
| <mask id="fade_mask_bottom" |
| maskUnits="objectBoundingBox" maskContentUnits="objectBoundingBox"> |
| <linearGradient id="fade_gradient_bottom" |
| gradientUnits="objectBoundingBox" x2="0" y2="1"> |
| <stop stop-color="white" stop-opacity="1" offset="0.7"></stop> |
| <stop stop-color="white" stop-opacity="0" offset="1"></stop> |
| </linearGradient> |
| <rect x="0" y="0" width="1" height="1" |
| fill="url(#fade_gradient_bottom)"></rect> |
| </mask> |
| </svg> |
| <!-- END SVG MASK --> |
| |
| </body> |
| </html> |