W moim projekcie mam stronę internetową, która ma 2 obszary div w prawo i pozostawione. Lewy div trwa prawie 60% całej szerokości strony, a właściwy trwa około 36% strony. Chciałem zmienić rozmiar obu obszarów div w odpowiednim stosunku, gdy zmniejszam przeglądarkę z prawej strony lub lewej strony. UI jest generowany z JavaScript. To jest kod.

boardHolderPadding = $board.outerHeight() - $board.height();
$board.height(viewportHeight - siblingsHeight - boardHolderPadding);

this.$('#board .droptarget').setWidthAsRatioOfHeight(this.options.ratio);

$('#sidebar').width($(window).width() - $board.find('#board').width() - 50);

Próbowałem z wtyczką Resize JQuery, ale nie może uzyskać właściwego wyniku, którego szukam. Czy ktoś ma sugestię?

Dzięki

0
Mujahid 27 lipiec 2012, 12:30

3 odpowiedzi

Najlepsza odpowiedź

Zrobiłem to w inny sposób w JavaScript i mam nadzieję, że pomoże to komuś naprawić, jeśli spotykają się w takim problemie

relativeSize : function(width, height){
    var boardWidth = this.$("#board").width(),
            boardHeight = this.$("#board").height(), 
            newcard = this.$("#newCard").width(), 
            space = width - boardWidth - newcard;
            ratio = space / width * 3; //used to increment the ratio with 3 as the ratio is very tiny value, this will help to increase minimizing size
            bheight = boardHeight - 25; // used to reduce the height by 25px, u can use any amount to match ur ratio
        var relHeight = (space < ratio) ? bheight : height;
        return relHeight;
  }

Dzięki

0
Mujahid 7 sierpień 2012, 03:48

Patrz Jsfiddle Przykład ale myślę, że wystarczy ustawić szerokości jako procenty, a nie próbować ich obliczyć - Uwaga Wyświetlacz jest ustawiony na inline-block

<div>
    <div class="small-left-column">this is the left column</div>
    <div class="large-right-column">this is the right column</div>
</div>

<style>
.small-left-column {
    width: 30%;
    background-color: #aeaeae;
    display: inline-block;
}
.large-right-column {
    width: 60%;
    background-color: #aeaeae;
    display: inline-block;
}
</style>

Więc myślę, że twój przykład twój będziesz miał coś takiego

$(document).ready(function () {
    $('#sidebar').addClass('small-left-column');
    $('#board').addClass('large-right-column');
});
1
Chris Moutray 27 lipiec 2012, 08:50

Może szukasz wersji PURE-JavaScript powyższego:

$(document).ready(function () {
    $('#sidebar').css( {
        width: '30%'
        backgroundColor: '#aeaeae',
        display: 'inline-block'
    });
    $('#board').css({
        width: '60%',
        backgroundColor: '#aeaeae',
        display: 'inline-block'
    });
});
0
Malvolio 27 lipiec 2012, 19:02