Javascript 带变量的Jquery计算

Javascript 带变量的Jquery计算,javascript,jquery,html,css,Javascript,Jquery,Html,Css,大家好,有问题希望你们能帮忙 var imageHeight = $("#slider > Img").height(); var imageFloat = (imageHeight + 31 / 2); alert(imageFloat); $("#slidernavright").css("marginTop",(imageFloat)); 任何人都可以看到这里的问题,imageFloat上的警报返回了一个15.5的值,这意味着没有考虑imageHeight,变量imageHei

大家好,有问题希望你们能帮忙

var imageHeight = $("#slider > Img").height();
var imageFloat = (imageHeight + 31 / 2);

alert(imageFloat);

$("#slidernavright").css("marginTop",(imageFloat));

任何人都可以看到这里的问题,
imageFloat
上的警报返回了一个15.5的值,这意味着没有考虑
imageHeight
,变量
imageHeight
正在工作并检索正确的高度图像编号,此外,边距正在工作,并且
div
标记向下移动了15.5px。我不太了解jQuery,我认为这只是一个语法问题。

您是在
窗口之前还是之后计算它。onload
?如果图像尚未完全加载,jQuery将无法检索高度

window.onload = function() {
  var imageHeight = $("#slider > img").height();
  var imageFloat = (imageHeight + 31 / 2); // perhaps you meant (imageHeight+31)/2 ?
  $("#slidernavright").css("marginTop",imageFloat);
};

您是在
窗口.onload
之前还是之后计算此值?如果图像尚未完全加载,jQuery将无法检索高度

window.onload = function() {
  var imageHeight = $("#slider > img").height();
  var imageFloat = (imageHeight + 31 / 2); // perhaps you meant (imageHeight+31)/2 ?
  $("#slidernavright").css("marginTop",imageFloat);
};

您确定imageHeight计算正确吗?我刚刚用
imageHeight=5
对它进行了测试,它对我来说运行良好,即使没有操作顺序之类的东西。

你确定imageHeight的计算正确吗?我刚刚用
imageHeight=5
对它进行了测试,它对我来说运行良好,即使没有操作顺序的东西。

最有可能的是
img
没有完全加载,所以它的
height
0

要修复它,请在
img
上放置一个
onload
处理程序。另外,检查是否使用
.complete
属性缓存了它,当然,手动调用处理程序

$("#slider > Img")
    .on("load", function() {
        var imageHeight = $(this).height();
        var imageFloat = (imageHeight + 31 / 2);

        alert(imageFloat);

        $("#slidernavright").css("marginTop",(imageFloat));
    })
    .filter(function() { return this.complete; })
    .trigger("load");
请记住,
/
的优先级高于
+
,因此:

var imageFloat = (imageHeight + 31 / 2);
正在这样做:

var imageFloat = (imageHeight + (31 / 2));
与此相反:

var imageFloat = ((imageHeight + 31) / 2);

很可能是
img
未完全加载,因此其
高度
0

要修复它,请在
img
上放置一个
onload
处理程序。另外,检查是否使用
.complete
属性缓存了它,当然,手动调用处理程序

$("#slider > Img")
    .on("load", function() {
        var imageHeight = $(this).height();
        var imageFloat = (imageHeight + 31 / 2);

        alert(imageFloat);

        $("#slidernavright").css("marginTop",(imageFloat));
    })
    .filter(function() { return this.complete; })
    .trigger("load");
请记住,
/
的优先级高于
+
,因此:

var imageFloat = (imageHeight + 31 / 2);
正在这样做:

var imageFloat = (imageHeight + (31 / 2));
与此相反:

var imageFloat = ((imageHeight + 31) / 2);

尝试使用类似于
parseInt()
--
var*=parseInt(imageHeight)的方法


这将给出实际的int值,通常当您得到这样的值时。height()返回值的字符串表示形式,而不是实际的int值。几天前我遇到了一个问题。

尝试使用类似于
parseInt()
--
var*=parseInt(imageHeight)


这将给出实际的int值,通常当您得到这样的值时。height()返回值的字符串表示形式,而不是实际的int值。几天前我对此有一个问题。

您是否尝试过使用小写I$(“#滑块>img”).height();因此,如果您替换了警报(imageFloat);具有警报(图像高度);,它产生除0?警报(imageHeight)以外的数字;生成241的值。是否尝试使用小写字母I$(“#滑块>img”).height();因此,如果您替换了警报(imageFloat);具有警报(图像高度);,它产生除0?警报(imageHeight)以外的数字;生成241erm的值不太确定,但尝试了此操作无效我正在像这样加载文档?$(文档).ready(函数(){$(“#slider>Img#1”).fadeIn(500);startSlider();sliderControl();controlHeight();});在加载图像之前,文档已准备就绪-您必须等待窗口加载。您也可以将其仅与图像加载绑定,但有一些技巧需要小心;window.onload更简单。erm不太确定,但尝试了此操作。我正在像这样加载文档?$(文档)。就绪(函数(){$(“#slider>Img#1”).fadeIn(500);startSlider();sliderControl();controlHeight();});在加载图像之前,文档已准备就绪-您必须等待窗口加载。您也可以将其仅与图像加载绑定,但有一些技巧需要小心;window.onload更容易。这是一种工作方式,但imageHeight产生的值是991,它类似于整个文档的大小,而不是#slider>Img@AaronProwse:你试过我更新的答案了吗?我简化了
$(this).height()
应该会给出图像的高度。非常感谢工作伙伴:)非常感谢!有没有办法调整它,使imageFloat在每次图像大小更改时都是动态的和更新的,而无需刷新?因为滑块图像基本上延伸到屏幕上,所以可以在不刷新的情况下,根据浏览器大小的变化调整页边距顶部吗?@AaronProwse:你的意思是如果用户调整窗口大小?如果是,则在运行相同代码的
窗口上放置一个
“resize”
处理程序。它将在用户调整窗口大小时运行。这是正常工作的,但imageHeight产生的值为991,与整个文档的大小相似,而不是#滑块的大小>Img@AaronProwse:你试过我更新的答案了吗?我简化了
$(this).height()
应该会给出图像的高度。非常感谢工作伙伴:)非常感谢!有没有办法调整它,使imageFloat在每次图像大小更改时都是动态的和更新的,而无需刷新?因为滑块图像基本上延伸到屏幕上,所以可以在不刷新的情况下,根据浏览器大小的变化调整页边距顶部吗?@AaronProwse:你的意思是如果用户调整窗口大小?如果是,则在运行相同代码的
窗口上放置一个
“resize”
处理程序。它将在用户调整窗口大小时运行。