2013-02-27 2 views
1

Я хочу применить стиль CSS, используя jquery, к элементу с фиксированной шириной.jQuery margin слева в зависимости от ширины элемента

Я хочу, чтобы его крайность была (минус) шириной элемента делением на два.

Как я могу это сделать?

это CSS:

.top_middle{ 
    width: 33%; 
    overflow: hidden; 
    height: 49%; 
    position: absolute; 
} 

Я пытался что-то вроде этого, но это не распространяется работа:

var width = $('.top_middle').width() 

    $('.top_middle').css(function(){ 
     'margin-left' : - "width"/2 
    }) 
+0

Что ваш DIV элемент и CSS выглядеть т.е. top_middle –

+0

отредактировать его, извините ошибка – 2013-02-27 11:33:58

ответ

1

В функции вы иметь ширину в «» знаков, что означает это будет запускаться как строка, не подбирать переменную try

Редактировать: Ваша функция кажется неправильной для синтаксиса jquery try

var width = $('.top_middle').width()/2; 
$('.top_middle').css('margin-left',-width); 

Смотрите пример здесь http://jsfiddle.net/domjgreen/ydEwx/2/

+0

идеально! он делает работу, спасибо – 2013-02-27 11:43:21

+0

Dominic, можно ли получить остаток с процентом? Я пытаюсь сделать его отзывчивым и добавляет маржу в пиксель, а не% – 2013-02-27 11:44:14

+0

@fxg Добавить символ процента в конец, например: '-width + '%'' –

1

В своем коде вы пытаетесь разделить строку «ширину» на 2, который является не то, что вы хотите. Вы хотите, чтобы разделить переменную ширину на 2, как это:

$('.top_middle').css({ 
    marginLeft : - (width/2) + 'px' 
}); 

Также вы передаете функцию CSS(), вы должны передать объект или пару аргументов, соответствующее свойство CSS и значение вы хотите установить для него.

0

попробовать это

var halfwidth = $('.top_middle').width()/2; 
$('.top_middle').css({'margin-left' : "-" + halfwidth });