0

アプリのタスク マネージャーを作成しています。ウィジェットの高さを計算して、要件を満たしていれば何かを実行しようとしています。基本的に、タスク ウィジェットの最大高さ (最小高さは既に設定されています) を取得するために、ウィンドウの高さから別の数値を引いた値を取得したいと考えています。次に、div の実際の高さを動的に取得し、それが最大の高さと等しい場合は、いくつかの css プロパティを変更したいと考えています。これを行うためにjquery 1.5.2を使用しています。これが私が持っているものです...

$(document).ready(function() {
//Get the height for #tasks
var tH = Math.round($(window).height() - 463);
$('#tasks').css('height', tH); //Make it the max height
var ti = Math.round($("#tasks").height()); //Get actual height of #tasks

if(tH==ti){ // If #tasks actual height is equal to the max-height than do...
    //alert('true');
    $('.taskItems').css('width', '172px');
    $('.tT, .tD').css('width', '135px');
    console.debug(ti + ' ' + tH);
}else{
    alert(tH + ' ' + ti); 
    console.debug(ti + ' ' + tH);
}
});

"alert('true')"が最初に発生し、"max-height"が"height"に変更されている限り、これはうまく機能します。

アラートがコメント化されると、if ステートメントが機能しなくなります。

とき

$("#tasks").css('height', tH) は $("#tasks").css('max-height', tH) に変更されます

値はめちゃくちゃオフです。例: 78/130。cssは次のとおりです...

#tasks {
    border:1px solid #D1D1D1;
    border-top:none;
    color:rgb(82,124,149);
    display:inline-block;
    font-size:12px;
    margin:0px 0px 0px 1px;
    overflow:auto;
    width:194px;
}

どんな助けでも大歓迎です。前もって感謝します。

4

2 に答える 2

1

ウィンドウのサイズが変更されるたびに、次を使用します。

jQuery(document).ready(function () {

    jQuery(window).resize(function () {
        //alert("window changed");
        resizeDivs();
    });
});

function resizeDivs() {
    var clientWidth = jQuery(window).width();
    var clientHeight = jQuery(window).height();
    var newHeight = 100;
    var newWidth = 100;

    var firstDatasegment = jQuery(".datasegment")[0];

    if (!jQuery(firstDatasegment).width()) {
        currentWidth = jQuery(firstDatasegment).clientWidth;
        newHeight = currentWidth - (currentWidth / 7);
        newWidth = currentWidth;
    }
    else {
        //currentWidth = jQuery(".datasegment")[0].css("width");
        currentWidth = jQuery(firstDatasegment).width();
        newHeight = currentWidth - (currentWidth / 7);
        newWidth = currentWidth;
    }

    jQuery(".datasegment").height(newHeight);
    jQuery(".sidemenu").height(clientHeight);
    jQuery(".maindatacontent").height(clientHeight);
    jQuery(".text-glow").css("font-size", (clientWidth / 50) + "px");
    jQuery(".hovermenuicon .menudesc").not('.bucketText').css("font-size", (clientWidth / 50) + "px");
    jQuery("td.menudesc span:first-child").not('.bucketText').css("font-size", (clientWidth / 50) + "px");
    jQuery(".sidemenudesc").css("font-size", (clientWidth / 80) + "px");
    jQuery(".datavalue").css("font-size", (clientWidth / 80) + "px");
    jQuery(".mainmenuitem").css("font-size", (clientWidth / 50) + "px");
    jQuery(".qireportgridview table").css("font-size", (clientWidth / 80) + "px");
    jQuery(".scrolldivbig").height(clientHeight);
}

私があなたをもっと助けるために、これが機能するための最も基本的なhtmlを確認する必要があります。次に、実際のサンプルでコードを変更します。

h番目

于 2012-08-28T00:08:31.223 に答える
1
  1. $('').height()セッターとしても使える!-->$('#tasks').height(th);

  2. $('').css('height': myVal) を使用する場合は、単位 (px など) を指定する必要があることに注意してください。あなたは今はしていません。

  3. とはどういう意味ですか?

アラートがコメント化されると、if ステートメントが機能しなくなります。

アラートを削除すると、else-branch は何も実行しません。

于 2012-08-28T00:12:17.673 に答える