2014-06-07 77 views
1

如何添加窗口大小調整功能?如果窗口調整大小,jQuery檢查元素css屬性

jQuery(document).ready(function($){   
    var $MyDiv1 = $('#mydiv1'); 
     if ($MyDiv1.length && $MyDiv1.css('position') == 'fixed') { 
      console.log ('#mydiv1 is fixed');  
     } else {  
      console.log ('#mydiv1 is not fixed');  
     }  
}); 

如果在調整大小後刷新頁面,此工作。我想在窗口大小調整時檢查MyDiv1的位置是否已修復。謝謝你的幫助。

+0

這可能是一個重複的問題。請參閱:http://stackoverflow.com/questions/2758651/how-to-change-height-div-on-window-resize – Vincent

+0

我不會建議每次瀏覽器窗口更改大小時執行此操作。它會被執行很多次。你真的要檢查這個嗎?你爲什麼要檢查元素的位置屬性?也許我們可以給你一些更好的適合的解決方案。 – Jagi

+0

Jagi,這是我的WordPress主題粘性菜單。如果wp管理欄存在,則該腳本將wpadminbar高度添加到頂部間距。 wp管理欄的位置由defult固定,但在移動設備上的位置是絕對的。在這種情況下,我需要0 topspacing的粘性菜單,否則我有一個缺口的頂部。 – agva

回答

3
$(document).ready(myfunction); 
$(window).on('resize',myfunction); 

function myfunction() { 
    var $MyDiv1 = $('#mydiv1'); 
    if ($MyDiv1.length && $MyDiv1.css('position') == 'fixed') { 
     console.log ('#mydiv1 is fixed');  
    } else {  
     console.log ('#mydiv1 is not fixed');  
    } 
} 

另一種技術是.trigger()一個事件中的另一個內:

$(window).on('resize',function() { 
    var $MyDiv1 = $('#mydiv1'); 
    if ($MyDiv1.length && $MyDiv1.css('position') == 'fixed') { 
     console.log ('#mydiv1 is fixed');  
    } else {  
     console.log ('#mydiv1 is not fixed');  
    } 
}); 
$(document).ready(function() { 
    $(window).trigger('resize'); 
}); 

如果你把你的代碼在頁面的底部,以避免需要$(document).ready,它變得更簡單:

$(window).on('resize',function() { 
    var $MyDiv1 = $('#mydiv1'); 
    if ($MyDiv1.length && $MyDiv1.css('position') == 'fixed') { 
     console.log ('#mydiv1 is fixed');  
    } else {  
     console.log ('#mydiv1 is not fixed');  
    } 
}).trigger('resize'); 

參考:jQuery combine .ready and .resize

+0

謝謝,我使用你的第三個解決方案並且工作。 – agva

+0

我的榮幸.. :) – 4dgaurav

0

您可以使用:

$(window).on('resize', function(){ 
//code here 
}); 

使用javascript:

window.onresize = function() { 
//code here 
} 

完整代碼:

function divreset(){ var $MyDiv1 = $('#mydiv1'); 
    if ($MyDiv1.length && $MyDiv1.css('position') == 'fixed') { 
     console.log ('#mydiv1 is fixed');  
    } else {  
     console.log ('#mydiv1 is not fixed');  
    } 
} 
jQuery(document).ready(function($){   
    divreset(); 
}); 
window.onresize = function() { 
    divreset(); 
}