オリジナルjsはフルページ/フルスクリーンスクロールを実現します。
前言
単ページ/フルスクリーンスクロールページはますます一般的になりました。製品紹介、求人などの内容が少ない簡単なページに多く使われています。このような効果に対しても多くのjQueryプラグインが現れています。本明細書で実現した効果はフルパスのシングルスクリーンスクロールに似ています。オリジナルJSを使って実現して、jsライブラリに依存しません。
cssコード:
締め括りをつける
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に一定の助けをもたらしてほしいです。もし疑問があれば、メッセージを残して交流してもいいです。
単ページ/フルスクリーンスクロールページはますます一般的になりました。製品紹介、求人などの内容が少ない簡単なページに多く使われています。このような効果に対しても多くのjQueryプラグインが現れています。本明細書で実現した効果はフルパスのシングルスクリーンスクロールに似ています。オリジナルJSを使って実現して、jsライブラリに依存しません。
cssコード:
html,body {height:100%;}
body {margin:0px;}
div {height:100%;}
htmlコード:
<div style="background:#FEE;"></div>
<div style="background:#EFE;"></div>
<div style="background:#EEF;"></div>
<div style="background:red;"></div>
jsコード:
document.addEventListener("DOMContentLoaded", function() {
var body = document.body,
html = document.documentElement;
var itv, height = document.body.offsetHeight;
var page = scrollTop() / height | 0;
//
addEventListener("resize", onresize, false);
onresize();
//
document.body.addEventListener(
"onwheel" in document ? "wheel" : "mousewheel",
function(e) {
clearTimeout(itv);
itv = setTimeout(function() {
var delta = e.wheelDelta / 120 || -e.deltaY / 3;
page -= delta;
var max = (document.body.scrollHeight / height | 0) - 1;
if (page < 0) return page = 0;
if (page > max) return page = max;
move();
}, 100);
e.preventDefault();
}
);
//
function move() {
var value = height * page;
var diff = scrollTop() - value;
(function callee() {
diff = diff / 1.2 | 0;
scrollTop(value + diff);
if (diff) itv = setTimeout(callee, 16);
})();
};
//resize
function onresize() {
height = body.offsetHeight;
move();
};
// scrollTop
function scrollTop(v) {
if (v == null) return Math.max(body.scrollTop, html.scrollTop);
else body.scrollTop = html.scrollTop = v;
};
});
オンラインプレゼンテーションをクリックしてください。ここです締め括りをつける
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に一定の助けをもたらしてほしいです。もし疑問があれば、メッセージを残して交流してもいいです。