![](/img/trans.png)
[英]How do i restrict a animation using javascript to certain screen size?
[英]I Disabled certain jQuery script at certain screen size but how do I get it check when screen is resized?
我在1020以下的屏幕尺寸上禁用了此功能,但是不知道如何在調整瀏覽器窗口大小時使其動態檢查嗎?:
<script>
$(document).ready(function() {
/*Set height of sections to window height*/
$( "#homepage-fold" ).each(function(){
if ($(window).width() >= 1020) {
var $this = $(this);}
$this.css({'height':($(window).height())+'px'});
/*Recalculate on window resize*/
$(window).resize(function(){
$this.css({'height':($(window).height())+'px'});
});
});
});</script>
任何想法如何使我添加的if語句在調整瀏覽器大小時都能動態工作。 我嘗試在第二個“ 重新計算”部分中將第一個if標簽包裝起來,但是我一定不能將其放在正確的位置。
謝謝!!
-
首先,這似乎是一個簡單的解決方案,但我嘗試過的解決方案沒有用。 我是jQuery的新手,所以我猜測這是我的語法錯誤-可能是該規則的放置不當。 如果有人可以幫助我弄清楚如何使它工作,我將不勝感激。 我只希望此腳本在大於1020px的屏幕上有效。 1020以下的屏幕應該看到沒有此活動腳本的頁面。
<script>
$(document).ready(function() {
/*Set height of sections to window height*/
$( "#homepage-fold" ).each(function(){
var $this = $(this);
$this.css({'height':($(window).height())+'px'});
/*Recalculate on window resize*/
$(window).resize(function(){
$this.css({'height':($(window).height())+'px'});
});
});
});</script>
我想通過添加
if(screen.width >= 1020){
像這樣:$(document).ready(function(){
/*Set height of sections to window height*/
$( "#homepage-fold" ).each(function(){
if(screen.width> = 1020){
var $this = $(this);
$this.css({'height':($(window).height())+'px'});
/*Recalculate on window resize*/
$(window).resize(function(){
$this.css({'height':($(window).height())+'px'});
});
添加: }); });
});</script>
我在哪里弄亂了這段代碼有什么想法? 謝謝!!
這就是我的方法。 setFold
函數將所需元素的高度設置為窗口的高度,或者-如果窗口的寬度小於斷點(1020),則將其設置為默認值(999)。 我還將onresize
回調包裝為一個超時,該超時將延遲其執行,直到resize事件實際結束為止(因此實際上使它成為一個onresizeend
)。 有時這是一個好主意,因為在有人調整窗口resize
會多次觸發調整大小。 根據onresize
這可能會導致相當大的滯后,並且在大多數情況下,僅在用戶停止調整大小時發生一次是完全可以的(您可以在此處使用callbackDelay
或完全刪除超時內容)。
$(document).ready(function(){
// DOM READY
var $window = $(window), // cached
$fold = $('#homepage-fold'),
breakpoint = 1020,
defaultHeight = 999,
resizeTimeout,
callbackDelay = 200; // ms
function setFold(){
if( $window.width() < breakpoint ){
$fold.css('height', defaultHeight );
}
else {
$fold.css('height', $window.height() );
}
}
setFold(); // initial setting
// Attach event
$window.on('resize', function(){
clearTimeout( resizeTimeout );
resizeTimeout = setTimeout(function(){
setFold();
}, callbackDelay );
})
});
像這樣做:
if ($(window).width() >= 1020) {
}
另外,您可能還希望將其寫入調整大小函數,以便如果有人調整瀏覽器窗口的大小,腳本將根據調整大小而不是僅基於初始尺寸觸發或不觸發。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.