clip-path-element-userspaceonuse-001.html (1105B)
1 <!DOCTYPE html> 2 <title>Hit-test of clip-path userSpaceOnUse <clipPath></title> 3 <link rel="help" href="https://drafts.fxtf.org/css-masking/#the-clip-path"> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <style> 7 body { 8 margin: 0; 9 } 10 .box { 11 width: 100px; 12 height: 100px; 13 background-color: blue; 14 margin: 100px; 15 clip-path: url(#clip); 16 } 17 </style> 18 <div class="box"></div> 19 <svg height="0"> 20 <clipPath id="clip" clipPathUnits="userSpaceOnUse"> 21 <polygon points="50,0 100,50 50,100 0,50"/> 22 </clipPath> 23 </svg> 24 <script> 25 function assert_element_at(element, pointlist) { 26 for (let point of pointlist) { 27 let result = document.elementFromPoint(point[0], point[1]); 28 assert_equals(result, element, point.join(',')); 29 } 30 } 31 32 test(function() { 33 let div = document.querySelector('.box'); 34 35 // Points inside clip-path. 36 assert_element_at(div, [[150, 150], [150, 125], [150, 175], [125, 150], [175, 150]]); 37 38 // Points outside clip-path. 39 assert_element_at(document.body, [[120, 120], [180, 120], [120, 180], [180, 180]]); 40 }); 41 </script>