私はしばらくの間スムーズなスクロールアニメーションを得ようとしてきましたが、主にJSで.. これはうまくいきませんでしたので、CSS3で試してみることにしました。 アニメーションが対象とするオブジェクトに応じてアニメーションのCSSルールを追加するJS関数を呼び出すことで、このアニメーションを反応的にしたいと考えています。ここまで私が持っているJSコードです。私もフィドルを残しますが、私はそれが新しいので、すぐにはうまくいかないかもしれません。レスポンシブスムーススクロールCSS3アニメーション?
function getTexts() {
var element = document.getElementsByClassName('toplink');
for (x = 0, len = element.length; x < len; x++){
var ID = element[x].textContent.toLowerCase();
var object = document.getElementById(ID);
console.log(object);
addCSSAnimator(ID);
}
}
function addCSSAnimator(el) {
var sheet = document.styleSheets[0];
var DOM = document.getElementById(el);
var Class = DOM.getAttribute("class");
var Parent = DOM.parentElement.getAttribute("id");
var rect = DOM.getBoundingClientRect();
var rule = ".toplink[ id= '"+el+"' ]:target - #"+Parent+" div."+Class+" {\n" +
"-webkit-transform: translateY(+"+rect.y.toPrecision(4)+'px'+");\n" +
"transform: translateY(+"+rect.y.toPrecision(4)+'px'+");\n" +
"}";
console.log("Stylesheet: ",sheet," object: ",DOM," Class: ",Class," offset X&Y:",rect.x," ",rect.y);
console.log(rule);
sheet.insertRule("body { background-color: 0; }", 1);
}
https://jsfiddle.net/dtj46c64/