2017-07-06 63 views
0

你好傢伙我試圖動態地改變我的元素的高度。 這些是我的變數。更改調整元素的高度

var windowWidth = 1440; 
var currentWidth = $(window).width(); 
var elementHeight = $('#line4').height(); 

現在我想的是,當窗口寬度和電流寬度之間的區別是低然後6我想改變我的元素的高度。每當(windowWidth - currentWidth)<時,我想這樣做6.因此,每當窗口大小調整並且它低於6時,我想要改變元素的高度減去14px。這是我試過的。

$(window).bind("resize", function(){ 
    if((windowWidth - currentWidth)<6) { 
     $("#line4").css('height', elementHeight-14); 
    } 
}); 

它不起作用,我不知道我錯過了什麼。還有後續問題,我可以通過這種方式更改其他CSS屬性。對於這個特定的問題,我還需要以相同的方式更改css top屬性,因爲我有一些絕對位置的div。

+0

你必須把'currentWidth'和'elementHeight'進入調整大小功能,如果'windowWidth'不是恆定的,如你的榜樣,也是這個 – baao

回答

1

您需要在每個調整大小事件上測量窗口的當前寬度,因爲它也在改變。

var windowWidth = 1440; 
var currentWidth = $(window).width(); 
var elementHeight = $('#line4').height(); 

$(window).bind("resize", function(){ 
    currentWidth = $(window).width() 
    if((windowWidth - currentWidth)<6) { 
    $("#line4").css('height', elementHeight-14); 
    } 
}); 
+0

這應該做的伎倆。 – williamli

+0

我試過,因爲某些原因它不起作用。 – Zvezdas1989

+0

這不是我的代碼,它是一團糟。我試着在codepen和jsbin上傳它,但它不能正常工作。在這裏你可以在我的谷歌驅動器上查看它。我試圖改變的是其中一種方式。那裏有連接我的divs的線路,對他們來說,我需要改變高度。雲端硬盤鏈接:https://drive.google.com/open?id=0B6qR8Uzr3ojCVlQyRVRDWUZQcW8 – Zvezdas1989

0

你需要得到WINDOWWIDTH每次調整事件稱爲 你應該添加防抖動到resize事件有更好的表現。 我經常做這樣的,也許你可以搜索任何更好的辦法:

var resizeTimer; 
$(window).on('resize', function(e) { 

    clearTimeout(resizeTimer); 
    resizeTimer = setTimeout(function() { 

    // Run code here, resizing has "stopped" 
    currentWidth = $(window).width() 
    if((windowWidth - currentWidth)<6) { 
    $("#line4").css('height', elementHeight-14); 
    } 

    }, 250); 
}); 

,我創造了這個測試,你可以試試。順便說一句我增加從6到600,以檢查更容易:d https://codepen.io/huytran0605/pen/NgBEVO

+0

我剛剛檢查過你的codepen,當我調整屏幕大小時,高度保持不變。這裏是一個圖像:https://drive.google.com/file/d/0BzFnmSPdntJDTU9ZU1RWZnlSWDA/view?usp=drivesdk – Zvezdas1989

+0

請檢查谷歌開發工具,並檢查該元素。 – HuyTran

+0

在這裏你可以看到它的高度在調整大小時仍然是一樣的: https://drive.google.com/open?id=0B6qR8Uzr3ojCdXp6MUJGX3NIcm8 – Zvezdas1989