91 lines
2 KiB
HTML
91 lines
2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<!-- Submitted from TestTWF Paris -->
|
|
<head>
|
|
<style type="text/css">
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
p {
|
|
clear: both;
|
|
margin: 10px 0;
|
|
}
|
|
|
|
/* The first test box has its vertical dimension is set to
|
|
some `vh` units. */
|
|
#testBoxWithVhOnly {
|
|
background: #F00;
|
|
width: 60px; height: 20vh;
|
|
float: left;
|
|
}
|
|
|
|
/* The second test box, with fixed height. */
|
|
#testBoxNotGrownHorizontallyByJS {
|
|
background: #F0F;
|
|
width: 20vh;
|
|
height: 60px;
|
|
float: left;
|
|
}
|
|
|
|
/* The third box, changed by using CSS transition. */
|
|
#testBoxWithTransition {
|
|
background: #FF0;
|
|
width: 20vh;
|
|
height: 40px;
|
|
float: left;
|
|
transition-property: width, height;
|
|
transition-duration: 0.3s;
|
|
transition-delay: 0;
|
|
}
|
|
|
|
/* The reference box, growing in both directions (height
|
|
by script, width by `vh` units. */
|
|
#referenceBoxGrownHorizontallyByJS {
|
|
background: #0F0;
|
|
width: 20vh;
|
|
height: 40px;
|
|
float: left;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<p>
|
|
All boxes should end up the same size. The green box is the reference one.
|
|
</p>
|
|
|
|
<div id="testBoxWithVhOnly"></div>
|
|
<div id="testBoxNotGrownHorizontallyByJS"></div>
|
|
<div id="testBoxWithTransition"></div>
|
|
<div id="referenceBoxGrownHorizontallyByJS"></div>
|
|
|
|
<script type="text/javascript">
|
|
'use strict';
|
|
|
|
function animate() {
|
|
var viewportHeight = document.documentElement.clientHeight;
|
|
var referenceDimension = Math.round(20 * viewportHeight / 100);
|
|
|
|
document.getElementById('referenceBoxGrownHorizontallyByJS')
|
|
.style['height'] = referenceDimension + "px";
|
|
if (referenceDimension < 60) {
|
|
setTimeout(animate, 20);
|
|
}
|
|
}
|
|
|
|
addEventListener('transitionend', event => {
|
|
if (event.propertyName == 'width') {
|
|
// Stop any further transitions.
|
|
testBoxWithTransition.style.transitionProperty = 'none';
|
|
parent.postMessage('transitionInIFrameEnded', '*');
|
|
}
|
|
}, false);
|
|
|
|
document.getElementById('testBoxWithTransition').style.height = "60px";
|
|
setTimeout(animate, 20);
|
|
parent.postMessage('frameLoaded', '*');
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|