Javascript JS函数单独工作,但不能一起工作
我使用两个函数来移动背景位置和缩放div的背景。这是:Javascript JS函数单独工作,但不能一起工作,javascript,function,Javascript,Function,我使用两个函数来移动背景位置和缩放div的背景。这是: (function(shifting) { var parallax = document.querySelectorAll(".shiftparallax"), speed = -0.05; window.onscroll = function() { [].slice.call(parallax).forEach(function(el, i) { var w
(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;
});
}
};
})();
问题是,我需要它们同时运行,但它们只能单独运行。如果它们都是这样写的——第二个只运行,第一个什么也不做。如果我移除第二个,第一个开始工作。我最近对JS有点生疏,所以我想不出来。有什么方法可以使它们都工作吗?覆盖window.onscroll事件 请尝试以下两行:
window.onscroll = el => console.log ('first');
window.onscroll = el => console.log ('second');
使用以下代码
window.addEventListener('scroll', el => console.log ('firstlistener'));
window.addEventListener('scroll', el => console.log ('secondlistener'));
覆盖window.onscroll事件 请尝试以下两行:
window.onscroll = el => console.log ('first');
window.onscroll = el => console.log ('second');
使用以下代码
window.addEventListener('scroll', el => console.log ('firstlistener'));
window.addEventListener('scroll', el => console.log ('secondlistener'));
您将分配给
window.onscroll
两次。这意味着第二个处理程序“注销”第一个处理程序
您可以使用addEventListener
在两个函数中侦听事件:
window.addEventListener("scroll", function() { /* function 1*/ });
window.addEventListener("scroll", function() { /* function 2*/ });
您将分配给
window.onscroll
两次。这意味着第二个处理程序“注销”第一个处理程序
您可以使用addEventListener
在两个函数中侦听事件:
window.addEventListener("scroll", function() { /* function 1*/ });
window.addEventListener("scroll", function() { /* function 2*/ });
请说明您如何调用函数,以及在什么条件下调用。@Difster他们是生命(他们称自己)。请说明您如何调用函数,以及在什么条件下调用。@Difster他们是生命(他们称自己)。这样做了。我不知道他们互相取消了。非常感谢。它就像其他任何财产一样;如果你
a={};a、 x=1;a、 x=2
,x
最后是2
,因为属性只能有一个值。这就解决了问题。我不知道他们互相取消了。非常感谢。它就像其他任何财产一样;如果你a={};a、 x=1;a、 x=2
,x
在末尾是2
,因为属性只能有一个值。不要在此处使用el
。它用作内部函数中的变量。是的,您还可以编写:window.addEventListener('scroll',()=>console.log('secondlistener')代码>不要在此处使用el
。它用作内部函数中的变量。是的,您还可以编写:window.addEventListener('scroll',()=>console.log('secondlistener')代码>