使用变量进行 Jquery 计算
Jquery calculation with variables
嗨,伙计们遇到了一个问题,希望你能提供帮助,
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了解不多,我认为这只是语法问题。
您是在window.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);
};
很可能
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);
你确定图像高度被正确计算了吗?我只是用imageHeight = 5
测试了它,即使没有操作顺序的东西,它对我来说也很好用。
尝试使用类似 parseInt()
-- var * = parseInt(imageHeight);
这将给出实际的 int 值,通常当你得到像这样的 .height() 值时,它们返回值的字符串表示形式,而不是实际的 int 值。几天前我遇到了这个问题。
相关文章:
- 使用jQuery计算数组中的对象以更改进度条
- 如何使用jQuery计算和显示font-awesome的评级
- jQuery 计算动态添加的行
- 使用 jQuery 计算文本框数组中的值
- jquery计算的列表项未正确显示
- JQuery计算金额(带逗号)
- 多复选框jquery计算
- 使用jquery计算包含另一个带边距元素的元素的高度
- 使用jquery计算提取数据的两个输入值
- jQuery:计算可见元素-效率/速度问题
- 使用 jquery 计算价格和 TVA
- 使用 jquery 计算页面中一级 UL LI 的数量
- Jquery计算元素中的字符,并为太短的字符添加填充
- 使用 Jquery 计算
- 使用变量进行 Jquery 计算
- JavaScript / jquery 计算问题
- 使用 jquery 计算隐藏字段
- 防止 jquery 计算后的负值
- 如何使用 jQuery 计算动态添加到页面的列表项数
- 如何使用 jquery 计算选项卡的高度以向下推页脚