Просто математический синтаксис JQuery - как вычесть? - PullRequest
0 голосов
/ 02 сентября 2011

Здравствуйте, замечательное сообщество,

Я пытаюсь сделать действительно простую математику с JQuery, но я не могу найти чит-код с математическим синтаксисом (это относится к тому, что я пытаюсь сделать).Я знаю, как делать сложения и умножения, но вычитание ускользает от меня!

Что мне нужно сделать, это назначить стиль для "#photo" со значением (общая ширина области просмотра - (241px + (высота)* 0,32))).Этот код успешно захватывает общую ширину области просмотра и присваивает ей ширину #photo:

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

Но я ничего не пробовал с помощью ('width', (width- (value +)значение))) сработало - может кто-нибудь дать мне знать, что такое синтаксис для вычитания и вложенных уравнений?

ИЛИ вместо того, чтобы снова вычислять (высота * 0,32), как бы я назначил вывод (высота *)0.32) к var, чтобы я мог использовать его повторно, делая вычисление ширины примерно таким («width», (width- (281px - varname)))?

Вот вся функция, включая (height *0.32) calc:

$(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 часа утра, так что придется ждать до утра.

1 Ответ

2 голосов
/ 02 сентября 2011

Для форматирования несколько вещей.jQuery может принимать объекты для CSS, так что передавайте все сразу.Во-вторых, только когда ключ не является допустимым идентификатором javascript (см. «Padding-left»), вам нужны кавычки вокруг него.В-третьих, цепочка объектов jQuery, так что вы можете следовать вызову css() с помощью встроенного вызова removeclass().И, наконец, отступ - это действительно действительно ваш друг.

И, наконец, функции height и width возвращают голые целые числа, но функция css() требует, чтобы вы включили единицы,Наиболее фундаментальная единица, возвращаемая height и width, это пиксели:

$(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'});
 });
...