【问题标题】:Simply JQuery math syntax- how do I subtract?简单的 JQuery 数学语法 - 我如何减去?
【发布时间】:2011-09-01 22:51:11
【问题描述】:

你好,很棒的社区,

我正在尝试使用 JQuery 进行一些非常简单的数学运算,但我找不到带有数学语法的作弊(这与我正在尝试做的事情有关)。我知道如何做加法和乘法,但减法却让我望而却步!

我需要做的是为“#photo”分配一个样式,其值为(视口的总宽度 - (241px + (height*0.32)))。此代码成功获取视口的总宽度并将其分配为#photo 的宽度:

$(document).ready(function(){
    var width = $(window).width(); 
    $('#photo').css('width', width);
});

但是我通过 ('width', (width- (value + value))) 尝试的方法都没有奏效 - 有人可以告诉我减法和嵌套方程的语法是什么吗?

OR,而不是再次计算 (height*0.32),我如何将 (height*0.32) 的输出分配给一个 var,以便我可以重新使用它,使宽度计算类似于 ('width', (宽度- (281px - varname)))?

这是包括 (height*0.32) 计算在内的整个函数:

$(document).ready(function(){
    var height = $(window).height();
    var width = $(window).width(); 
    $('#menu').css('height', height);
    $('#menu').css('width', (height*0.29));
    $('#menu').css('position','fixed');
    $('#menu').removeClass('nojavascript');
    $('#novel').css('padding-left', (height*0.32));
    $('#novel').removeClass('nojavascript');
    $('#photo').css('width', width);
});

呃,关于如何整理我的代码的进一步提示也很感激。光是看,我就可以猜到一些很可能是不必要的重复的东西!

根据请求编辑: 这是减法问题,我现在已经开始工作了:

  $('img').css('width', (width - (281+(height*0.32))) + 'px');

现在我要解决的问题是如何计算 img 的高度,以保持 4:3 的照片比例!不过现在快凌晨 4 点了,所以得等到早上。

【问题讨论】:

  • 您能否发布代码中出现的减法问题,以便我们看到?

标签: jquery math subtraction


【解决方案1】:

对于格式化,一些事情。 jQuery 可以为 CSS 获取对象,因此一次性传入所有内容。其次,只有当密钥不是有效的 javascript 标识符(请参阅“padding-left”)时,您才需要在其周围加上引号。第三,jQuery 对象链,因此您可以在 css() 调用和removeclass() 调用内联。最后,缩进真的是,真的你的朋友。

最后,heightwidth 函数返回裸整数,但 css() 函数要求您包含单位。最基本的单位,也就是heightwidth 返回的单位是像素:

$(document).ready(function() {
    var height = $(window).height(), width = $(window).width();
    $('#menu').css({height: height + 'px', width: (height * 0.29) + 'px', position: 'fixed'})
        .removeClass('nojavascript');
    $('#novel').css({'padding-left': (height * 0.32) + 'px'})
        .removeClass('nojavascript');
    $('#photo').css({width: width + 'px'});
 });

【讨论】:

  • 这也是我的答案,但我刚刚在 SO (jQuery 1.5.2) 上对其进行了测试,看起来 jQuery 足够聪明,可以 a) 将裸数字转换为 num + 'px' 和 b) @ 987654330@ 浮动。但这种行为可能是特定于浏览器的。
  • 是否是特定于浏览器的,那么我在帖子中放置的块可以完美地分配它们需要去的宽度和高度,并分配像素?例如,#menu 得到 style="height: 583px; width: 169.07px; position: fixed;" 即使我在代码中没有 + 'px'。
  • 感谢您提供的格式提示,看到它们与我正在使用的实际代码而不是抽象的代码对比真的很有帮助。
  • ...but the css() function requires that you include units. 这根本不是真的。虽然您必须在 CSS 中提供度量单位,但 jQuery 足够聪明,可以为您添加它...
猜你喜欢
  • 2016-02-05
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-10
  • 1970-01-01
  • 2014-02-24
  • 1970-01-01
相关资源
最近更新 更多