以下情况:
var height = $(window).height();
$(window).resize(function() {
var getfactor1 = 680 / 697
var posval1 = height*getfactor1
});
在另一个功能中我有以下内容:
if($firstBG.hasClass("inview")){
$firstBG.css({'backgroundPosition': newPos(0, windowHeight, pos, posval1, 0.3)});
}
每次用户缩放浏览器窗口时,如何将window.resize()函数中的posval1值放入firstBG.css。
谢谢!!答案 0 :(得分:1)
或者您可以尝试通过函数传递它:
var height = $(window).height();
$(window).resize(function() {
var getfactor1 = 680 / 697
var posval1 = height*getfactor1
myFunction(posval1);
});
function myFunction(posval1){
if($firstBG.hasClass("inview")){
$firstBG.css({'backgroundPosition': newPos(0, windowHeight, pos, posval1, 0.3)});
}
}
答案 1 :(得分:1)
或者,更简单,为什么不在windows resize函数之外声明posval1?
var height = $(window).height(),
posval1;
$(window).resize(function() {
var getfactor1 = 680 / 697;
posval1 = height*getfactor1;
});
if($firstBG.hasClass("inview")){
$firstBG.css({'backgroundPosition': newPos(0, windowHeight, pos, posval1, 0.3)});
}
答案 2 :(得分:0)
为什么你不把$ firstBG.css()放到window.resize()中?
答案 3 :(得分:0)
每次用户调整窗口大小时都会发生resize事件。如果要更改某些内容,则必须从该事件的处理程序完成,否则值将不会更新。但一般来说,如果你的posval1
变量的范围高于resize事件处理程序,你也可以从其他地方访问它,但正如我所说的,代码的其他部分将不再执行,除非在事件处理程序。
范围示例:
var posval1;
$(window).on('resize', function() {
posval1 = height * (680 / 697);
});
// somewhere else
console.log(posval1);
posval1
的值最有可能在执行到达console.log()
时未定义,因为窗口尚未调整大小。您可以做的只是将CSS更新外包给另一个函数,并从事件处理程序调用它以及在开始时调用它。
var windowHeight, pos, posval1; // etc
var updateBg = function () {
if($firstBG.hasClass("inview")){
$firstBG.css({'backgroundPosition': newPos(0, windowHeight, pos, posval1, 0.3)});
}
};
updateBg(); // once
$(window).on('resize', function () {
// calculate posval1
updateBg(); // every time on resize
});
答案 4 :(得分:0)
function newPos(x, windowHeight, pos, adjuster, inertia){
return x + "% " + (-((windowHeight + pos) - adjuster) * inertia) + "px";
}
function Move(){
var pos = $window.scrollTop();
if($firstBG.hasClass("inview")){
var getfactor1 = 680/697;
var posval1 = height*getfactor1;
console.log(posval1);
$firstBG.css({'backgroundPosition': newPos(0, windowHeight, pos, posval1, 0.3)});
}
if($secondBG.hasClass("inview")){
var getfactor2 = 1255/697;
var posval2 = height*getfactor2;
.......等等