зеркало из https://github.com/mozilla/gecko-dev.git
53 строки
2.0 KiB
XML
53 строки
2.0 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE window>
|
|
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" title="RTL overflow test" width="640px" height="480px" style="direction: rtl" onload="load()" class="reftest-wait">
|
|
|
|
<hbox style="max-width: 200px; border: 1px solid red;">
|
|
<scrollbox id="sb" align="start" pack="start" orient="horizontal" flex="1">
|
|
<button id="sb1" label="test1"/><button label="test2"/><button label="test3"/><button label="test4"/><button label="test5"/>
|
|
</scrollbox>
|
|
</hbox>
|
|
|
|
<hbox style="max-width: 200px; border: 1px solid blue">
|
|
<arrowscrollbox id="asb" align="start" pack="start" orient="horizontal" flex="1">
|
|
<button id="asb1" label="test1"/><button label="test2"/><button label="test3"/><button label="test4"/><button label="test5"/>
|
|
</arrowscrollbox>
|
|
</hbox>
|
|
|
|
<hbox style="max-width: 200px; border: 1px solid black">
|
|
<hbox align="end" pack="end" flex="1">
|
|
<button label="test1"/><button label="test2"/><button label="test3"/><button label="test4"/><button label="test5"/>
|
|
</hbox>
|
|
</hbox>
|
|
|
|
<script type="text/javascript">
|
|
<![CDATA[
|
|
function load() {
|
|
// arrowscrollbox provides a helper ensureElementIsVisible method
|
|
document.getElementById("asb").ensureElementIsVisible(document.getElementById("asb1"), false);
|
|
|
|
// scrollbox doesn't provide that, so we have to do the heavy lifting directly
|
|
var sb = document.getElementById("sb");
|
|
var sb1 = document.getElementById("sb1");
|
|
var rect = sb.getBoundingClientRect();
|
|
var containerStart = rect.left;
|
|
var containerEnd = rect.right;
|
|
rect = sb1.getBoundingClientRect();
|
|
var elementStart = rect.left;
|
|
var elementEnd = rect.right;
|
|
|
|
var amountToScroll = 0;
|
|
if (elementStart < containerStart) {
|
|
amountToScroll = elementStart - containerStart;
|
|
} else if (elementEnd > containerEnd) {
|
|
amountToScroll = elementEnd - containerEnd;
|
|
}
|
|
sb.scrollLeft += amountToScroll;
|
|
|
|
document.documentElement.removeAttribute("class");
|
|
}
|
|
]]>
|
|
</script>
|
|
|
|
</window>
|