@drozdik.m/slow-scroll
Version:
Slow scroll handling
76 lines (59 loc) • 2.04 kB
text/typescript
import { UnitTest, Assert } from "@drozdik.m/unit-test";
import { BrowserTestAgent } from "@drozdik.m/web-unit-test";
import { SlowScroll } from "../../src/SlowScroll";
let unitTest = new UnitTest("Slow Scroll");
unitTest.AddAsyncTestCase("Scroll to an achor and to top", function (Done, Fail)
{
SlowScroll.AnchorScroll("slowScroll");
let link = document.getElementById("toBlock2");
var clickEvent = new Event("click");
clickEvent.initEvent("click");
link.dispatchEvent(clickEvent);
setTimeout(function ()
{
try
{
console.log(document.documentElement.scrollTop);
Assert.IsTrue(document.documentElement.scrollTop > 100);
SlowScroll.ToTop();
setTimeout(function ()
{
try
{
console.log(document.documentElement.scrollTop);
Assert.AreEqual(0, document.documentElement.scrollTop);
Done();
}
catch
{
Fail();
}
}, 750);
}
catch
{
Fail();
}
}, 750);
});
document.addEventListener("DOMContentLoaded", function ()
{
document.documentElement.insertAdjacentHTML("beforeend", `
<style>
.block{
height: 50rem;
}
</style>
<div id="block1" class="block" style="background-color: aqua;">
<a href="#block2" id="toBlock2" class="slowScroll">Scroll</a>
</div>
<div id="block2" class="block" style="background-color: brown;">
<a href="#block3" class="slowScroll">Scroll</a>
</div>
<div id="block3" class="block" style="background-color: darkviolet;">
<a href="#block1" class="slowScroll">Scroll</a>
</div>
`);
let browserTestAgent = new BrowserTestAgent(unitTest);
browserTestAgent.Run();
});