私はバックグラウンド位置をシフトし、ズームのdivの背景に2つの関数を使用しています。ここで彼らは、次のとおりです。JS関数は別々に動作しますが、一緒には動作しません
(function(shifting) {
var parallax = document.querySelectorAll(".shiftparallax"),
speed = -0.05;
window.onscroll = function() {
[].slice.call(parallax).forEach(function(el, i) {
var windowXOffset = window.pageYOffset,
elBackgrounPos = (windowXOffset * speed) + "px";
console.log(elBackgrounPos);
el.style.backgroundPositionY = elBackgrounPos;
});
};
})();
(function(zooming) {
var parallaxfacts = document.querySelectorAll(".parallaxfacts"),
constantsize = 100;
speed = -0.03;
window.onscroll = function() {
if (window.innerWidth > 1024) {
[].slice.call(parallaxfacts).forEach(function(el, i) {
var windowXOffset = window.pageYOffset,
elBackgrounScale = (windowXOffset/950 * constantsize) + "%";
el.style.backgroundSize = elBackgrounScale;
});
}
};
})();
問題は、私はそれらの両方を同時に実行する必要があるが、彼らはのみ別途実行することです。それらが両方のように書かれていれば、第2のものは実行され、第1のものは何もしません。私が2番目を削除すると、最初のものが動作し始めます。私は最近JSで少し錆びているので、私はそれを理解できません。それらを両方とも機能させる方法はありますか?
window.onscroll = el => console.log ('first');
window.onscroll = el => console.log ('second');
は、次のコードを使用して...あなたが二回window.onscroll
に代入している
window.addEventListener('scroll', el => console.log ('firstlistener'));
window.addEventListener('scroll', el => console.log ('secondlistener'));
あなたが関数を呼び出すと、どのような条件の下でいる方法を示してください。 – Difster
@Difster彼らはIIFEです(彼らは彼ら自身を呼びます)。 – JJJ