[JQUERY] 창 크기 조정에 jQuery를
JQUERY창 크기 조정에 jQuery를
해결법
-
1.여기에 크기 조정 이벤트를 처리하기 위해 jQuery를, 자바 스크립트와 CSS를 사용하여 예입니다. (CSS 만약 당신이 단지 크기 조정에서 일을 stylizing하는 경우 가장 좋은 건 (미디어 쿼리)) http://jsfiddle.net/CoryDanielson/LAF4G/
여기에 크기 조정 이벤트를 처리하기 위해 jQuery를, 자바 스크립트와 CSS를 사용하여 예입니다. (CSS 만약 당신이 단지 크기 조정에서 일을 stylizing하는 경우 가장 좋은 건 (미디어 쿼리)) http://jsfiddle.net/CoryDanielson/LAF4G/
.footer { /* default styles applied first */ } @media screen and (min-height: 820px) /* height >= 820 px */ { .footer { position: absolute; bottom: 3px; left: 0px; /* more styles */ } }
window.onresize = function() { if (window.innerHeight >= 820) { /* ... */ } if (window.innerWidth <= 1280) { /* ... */ } }
$(window).on('resize', function(){ var win = $(this); //this = window if (win.height() >= 820) { /* ... */ } if (win.width() >= 1280) { /* ... */ } });
이 크기 조정에 바인딩 할 때 알 수 있습니다 첫 번째 문제입니다. 크기 조정 코드는 사용자가 수동으로 브라우저의 크기를 조정하는 LOT 호출되는, 꽤는 janky을 느낄 수 있습니다.
당신의 크기 조정 코드를 호출 빈도를 제한하려면 디 바운스 또는 밑줄 & lowdash 라이브러리에서 스로틀 방법을 사용할 수 있습니다.
당신은 밑줄 또는 lodash이없는 경우 유사한 솔루션을 직접 구현할 수 있습니다 : 자바 스크립트 / JQuery와 : $ (창) 크기 조정이 완료된 후 어떻게 화재 .resize?
-
2.함수 다음 바인드 창 크기를 조정하려면 해당 함수로 자바 스크립트를 이동합니다.
함수 다음 바인드 창 크기를 조정하려면 해당 함수로 자바 스크립트를 이동합니다.
$(document).ready(function () { updateContainer(); $(window).resize(function() { updateContainer(); }); }); function updateContainer() { var $containerHeight = $(window).height(); if ($containerHeight <= 818) { $('.footer').css({ position: 'static', bottom: 'auto', left: 'auto' }); } if ($containerHeight > 819) { $('.footer').css({ position: 'absolute', bottom: '3px', left: '0px' }); } }
-
3.jQuery를 사용하면 .resize, 창문에 부착 할 수있는 크기 조정 이벤트 핸들러가 (). 당신이 $ (창) .resize를 넣어한다면, ({여기 * / / * 코드를} () 함수를) 다음 코드는 창 크기를 조정할 때마다 실행됩니다.
jQuery를 사용하면 .resize, 창문에 부착 할 수있는 크기 조정 이벤트 핸들러가 (). 당신이 $ (창) .resize를 넣어한다면, ({여기 * / / * 코드를} () 함수를) 다음 코드는 창 크기를 조정할 때마다 실행됩니다.
그럼, 당신이 원하는 것은 윈도우의 크기가 변경 될 때마다 첫 페이지로드 후에 코드를 실행하는 것입니다. 따라서 당신은 자신의 기능에 코드를 뽑아 두 경우 모두에 해당 기능을 실행해야합니다.
// This function positions the footer based on window size function positionFooter(){ var $containerHeight = $(window).height(); if ($containerHeight <= 818) { $('.footer').css({ position: 'static', bottom: 'auto', left: 'auto' }); } else { $('.footer').css({ position: 'absolute', bottom: '3px', left: '0px' }); } } $(document).ready(function () { positionFooter();//run when page first loads }); $(window).resize(function () { positionFooter();//run on every window resize });
참조 : 크로스 브라우저 창 크기 조정 이벤트 - 자바 스크립트 / jQuery를
-
4.이 솔루션을 사용해보십시오. 만 페이지가로드되면 발사하고 미리 정의 된 resizeDelay에서 창 크기 조정시.
이 솔루션을 사용해보십시오. 만 페이지가로드되면 발사하고 미리 정의 된 resizeDelay에서 창 크기 조정시.
$(document).ready(function() { var resizeDelay = 200; var doResize = true; var resizer = function () { if (doResize) { //your code that needs to be executed goes here doResize = false; } }; var resizerInterval = setInterval(resizer, resizeDelay); resizer(); $(window).resize(function() { doResize = true; }); });
-
5.다음, 당신의 익명 함수의 이름을 지정합니다 :
다음, 당신의 익명 함수의 이름을 지정합니다 :
$(window).on("resize", doResize);
http://api.jquery.com/category/events/
-
6.너무 사용할 수 있습니다
너무 사용할 수 있습니다
function getWindowSize() { var fontSize = parseInt($("body").css("fontSize"), 10); var h = ($(window).height() / fontSize).toFixed(4); var w = ($(window).width() / fontSize).toFixed(4); var size = { "height": h ,"width": w }; return size; } function startResizeObserver() { //--------------------- var colFunc = { "f10" : function(){ alert(10); } ,"f50" : function(){ alert(50); } ,"f100" : function(){ alert(100); } ,"f500" : function(){ alert(500); } ,"f1000" : function(){ alert(1000);} }; //--------------------- $(window).resize(function() { var sz = getWindowSize(); if(sz.width > 10){colFunc['f10']();} if(sz.width > 50){colFunc['f50']();} if(sz.width > 100){colFunc['f100']();} if(sz.width > 500){colFunc['f500']();} if(sz.width > 1000){colFunc['f1000']();} }); } $(document).ready(function() { startResizeObserver(); });
-
7.
function myResizeFunction() { ... } $(function() { $(window).resize(myResizeFunction).trigger('resize'); });
이 창 크기 조정에 준비 문서에 트리거로 크기 조정 핸들러의 원인이됩니다. 당신이 .trigger ( '크기 조정') 대신 페이지로드 실행하려면 물론, 당신은 문서 준비 핸들러의 당신의 크기 조정 핸들러 외부를 첨부 할 수 있습니다.
업데이트 : 당신이 다른 타사 라이브러리의 사용을하지 않으려면 여기에 또 다른 옵션이 있습니다.
당신은 단지 CSS를 통해 스타일을 제어 (피하는 인라인 스타일링)의 장점 때문에,이 기술은 대상 요소에 특정 클래스를 추가합니다.
또한 실제 임계 값 포인트가 크기 조정 각각의 모든 트리거와하지 않을 때 클래스는 추가 또는 제거되도록합니다. 각 지역 내 819 또는 그 <로 = 818>에서 높이 변경 반대가 아니라 여러 번 : 그것은 하나 개의 임계 시점에서 발사됩니다. 그것은 폭의 변화에 관심을 아니에요.
function myResizeFunction() { var $window = $(this), height = Math.ceil($window.height()), previousHeight = $window.data('previousHeight'); if (height !== previousHeight) { if (height < 819) previousHeight >= 819 && $('.footer').removeClass('hgte819'); else if (!previousHeight || previousHeight < 819) $('.footer').addClass('hgte819'); $window.data('previousHeight', height); } } $(function() { $(window).on('resize.optionalNamespace', myResizeFunction).triggerHandler('resize.optionalNamespace'); });
예를 들어, 당신은 당신의 CSS 규칙의 일부로서 다음이있을 수 있습니다 :
.footer { bottom: auto; left: auto; position: static; } .footer.hgte819 { bottom: 3px; left: 0; position: absolute; }
-
8.이 옵션을 사용합니다 :
이 옵션을 사용합니다 :
window.onresize = function(event) { ... }
-
9.당신은 .resize ()를 사용하여 크기 조정을 결합하여 브라우저 크기를 조정할 때 코드를 실행할 수 있습니다. 당신은 또한 귀하의 if 문에 다른 조건을 추가 할 필요가 당신의 CSS의 이전 및 새로운 토글 값보다는 새로운 설정.
당신은 .resize ()를 사용하여 크기 조정을 결합하여 브라우저 크기를 조정할 때 코드를 실행할 수 있습니다. 당신은 또한 귀하의 if 문에 다른 조건을 추가 할 필요가 당신의 CSS의 이전 및 새로운 토글 값보다는 새로운 설정.
from https://stackoverflow.com/questions/9828831/jquery-on-window-resize by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] AngularJS와 - 요청 매개 변수 대신 JSON의를 보낼 수 $ http.post에 대한 모든 방법은? (0) | 2020.10.12 |
---|---|
[JQUERY] 다시로드하는 방법 / jQuery를의 요소 (이미지)를 새로 고침 (0) | 2020.10.12 |
[JQUERY] 적절한 방법은 강력한 형식의 MVC 3보기에서 패스 모델에 JQuery와에 AJAX 포스트를 사용하는 (0) | 2020.10.11 |
[JQUERY] jQuery로 텍스트 영역에 텍스트를 삽입 (0) | 2020.10.11 |
[JQUERY] jQuery를는 .click - 패스 파라미터를 사용자 함수 (0) | 2020.10.11 |