2015-09-09 4 views
2

Я хотел иметь возможность реализовать свойство преобразования css в зависимости от размера контейнера относительно размера закрывающего окна.css style transform

Со ссылкой на следующий код, scaleCameraShutter(). Масштабирование происходит с переписанным кодом для scaleCameraShutter(), и масштабирование является точным.

Вот остающаяся проблема = window изменяет размеры, а также container. THEN, я делаю перезагрузку окна, и правильное масштабирование полностью исчезает. Короче говоря, масштабирование является лишь временным, а не постоянным?

Поскольку Совет преуспевает на коде, в .css спецификации на дне ...

$(window).bind('resize', function() { 

    scaleCameraShutter(); // below, container is GLOBAL 

}); 

Я называю:

function scaleCameraShutter() { 

    // .width() returns "###px" 

    // value before scaling 
    var containerWidth = parseInt(container.width()); 
    var windowWidth = parseInt($(window).width()); 

    var theScale = windowWidth/containerWidth; 
    var maxContainerWidth = 480; 

    if (windowWidth > maxContainerWidth) 
    { 
     theScale = maxContainerWidth/containerWidth; 
    } 

    // Let the Browser pick the parm it accepts: 
    // IE 10 and Firefox 
    container.css("-transform"  , "scale(" + theScale + ", " + theScale + ")"); 
    // IE 9 
    container.css("-ms-transform" , "scale(" + theScale + ", " + theScale + ")"); 
    // Firefox 
    container.css("-moz-transform" , "scale(" + theScale + ", " + theScale + ")"); 
    // Chrome and Safari 
    container.css("-webkit-transform", "scale(" + theScale + ", " + theScale + ")"); 
    // Opera 
    container.css("-o-transform"  , "scale(" + theScale + ", " + theScale + ")"); 

} 

Последний, вот CSS:

#container { 
    position: relative; 

    margin: 0 auto; 
    width:  30.00em; 
    height: 22.50em; 

} 
+0

Можете ли вы отправить пример своего кода на что-то вроде плункера? –

+0

Спасибо, Martijn –

+0

Я искренне извиняюсь перед каждым ... очень новым для jsFiddle и просто добавил jsFiddle, не считая его публичным. Надеюсь, это закончится ... http://jsfiddle.net/johnlove/yL2td3r2/ –

ответ

0

Насколько я знаю, вы передаете только одно значение SCALE. Попробуйте выполнить одно из следующих действий: масштаб (x, y) Определяет преобразование 2D-шкалы
scale3d (x, y, z) Определяет преобразование трехмерного масштаба
scaleX (x) Определяет масштабное преобразование, задавая значение для ось Х
ScaleY (у) Определяет масштабное преобразование, давая значение для оси Y.
scaleZ (г) Определяет 3D масштабное преобразование, давая значение для Z-оси

http://www.w3schools.com/cssref/css3_pr_transform.asp

удачи.

+0

Благословения за ответ ... к сожалению, я пробовал «масштаб (шкала, шкала)», с кавычками и без них ... и даже (10,10) или некоторые другие смешные #. Результат = ничего. ТАК, кажется, что что-то совершенно фундаментальное неверно. OH, я также попытался использовать theContainer.css ("- transform", scale (theScale, theScale)) –

+0

Можете ли вы более конкретно узнать, что вы пытаетесь здесь выполнить? Можете ли вы показать демо? Извините, но не зная, чего вы хотите, очень сложно дать вам какое-либо предложение. – sagarthapa

+0

Мое удовольствие: http://lovesongforever.com/50/ Как вы видите наверху, плагин jQuery «затвора камеры» внутри коробки с рамкой. Я хочу уменьшить масштаб $ ('# container') с шириной окна по шкале (xxx, xxx). Только при таком подходе я могу оставить код, который влияет только на эффект опалубки. Другими словами, масштабирование будет идентичным тому, что происходит в Safari, например, когда пользователь увеличивает и уменьшает масштаб. На самом деле, я могу успешно использовать соответствующие спецификации css для этого масштабирования, но затем мне нужно изменить код подключаемого модуля jQuery. –