Jquery 날짜 선택기 Z- 색인 문제


106

슬라이드 쇼 div가 있고 해당 div 위에 datepicker 필드가 있습니다.

datepicker 필드를 클릭하면 datepicker 패널이 슬라이드 쇼 div 뒤에 표시됩니다.

그리고 스크립트를 다음과 같이 넣었습니다.

http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.min.js

따라서 CSS에서 datepicker의 Z- 색인을 변경할 수 없습니다. 스크립트가 생성하는 datepicker의 z-index는 1이고 내 슬라이드 쇼 div (googleajaxapi를 통해 호출) z-index는 5입니다. 따라서 날짜 선택기의 z-index를 5보다 크게 늘려야한다고 생각합니다. 그것을 늘리는 방법은 무엇입니까?

누군가 나를 도울 수 있습니까?


다음은 솔루션입니다. stackoverflow.com/questions/11533161/…
개발자

답변:


176

'입력'텍스트 요소에 다음 스타일을 넣으십시오 position: relative; z-index: 100000;..

datepicker div는 입력에서 Z- 색인을 가져 오지만 위치가 상대적인 경우에만 작동합니다.

이 방법을 사용하면 jQuery UI에서 자바 스크립트를 수정할 필요가 없습니다.


8
이러한 문제점으로는 입력이 거의 원하는 효과가없고, 다른 요소 위에 표시한다는 것이다
Serj 사간

1
때 작업하도록되어 날짜 선택기가 A와 결합되어 스팬 ?
rmoestl

10
position : relative허용되지 않으며 내 상황에서 작동하지 않습니다. 솔루션 벨로우즈가 잘 작동합니다.
Kiwy

1
이것은 IE 11 브라우저에서 작동하지 않습니다. 이 브라우저는 특정입니까?
애쉬 위니 Maddala

3
이 솔루션은 작동하지만 모든 상황에 유효하지는 않습니다. 베스트 단일 CSS의 라인 오버라이드 (override)하는 것입니다 '.ui-날짜 선택기 {! Z- 인덱스 : 9999 중요한;}'
다니엘 퉁

154

단순히 CSS에서 ' .ui-datepicker{ z-index: 9999 !important;}'를 사용하십시오. 여기서 9999는 datepicker를 사용하려는 레이어 값으로 바꿀 수 있습니다. 어떤 코드도 주석을 position:relative;달거나 입력 요소에 ' 'css를 추가해서는 안됩니다 . 입력 요소의 Z- 색인을 늘리면 모든 입력 유형 버튼에 영향을 미치므로 일부 경우에는 필요하지 않을 수 있습니다.


내가 사용했다 datepicker보다는ui-datepicker
M 스미스

자바 스크립트는 여전히 불연속 Z- 색인, 임의의 스택 컨텍스트를 사용하며 2016 년에 브라우저 간 호환성 문제가 있습니까? ActionScript 3 FTW (10 년 전, 현재까지).
Triynko 2016 년


14

marksyzm 답변을 기반으로 이것은 나를 위해 일했습니다.

$('input').datepicker({
    beforeShow:function(input) {
        $(input).css({
            "position": "relative",
            "z-index": 999999
        });
    }
});

1
그러나 이것은 입력에만 영향을 미치고 datepicker 오버레이에는 영향을 미치지 않습니까?
marksyzm

2
datepicker에 아이콘을 사용하지 않는 이 예제 jqueryui.com/datepicker 를 사용하고 있습니다. 이 솔루션을 사용하면 나머지 웹 구성 요소에 문제가 없었습니다.
Lucas

5

Justin의 대답에 덧붙여서, 깔끔한 마크 업이 걱정되거나 CSS에서이 값을 하드 코딩하지 않으려면 표시되기 전에 입력을 설정할 수 있습니다. 이 같은:

$('input').datepicker({
    beforeShow:function(input){
        $(input).dialog("widget").css({
            "position": "relative",
            "z-index": 20
        });
    }
});

"position": "relative"플러그인이 두 규칙 또는 스타일 시트에 대해 인라인 스타일을 검색하지만 둘 다가 아닌 , 규칙을 생략 할 수 없습니다 .

dialog("widget")팝업 실제 날짜 선택기입니다.


1
이 문제는 JqueryUI 스크립트에서 해결해야하며 기본적으로 오버레이를 방지하도록 설정해야합니다. 대부분의 사용 사례는 달력 입력 기능을 오버레이하는 입력을 원하지 않습니다. 캘린더에 입력 (또는 기타 요소)을 오버레이해야하는 경우 이와 같은 솔루션을 사용해야합니다. 그래도 @marksyzm은 필요할 때만 적용 할 수있는 최상의 솔루션 IMO가 될 것입니다.
FrankO 2014

5

이 문제를 클릭하여 해결했습니다.

var checkin = $('.dpd1').datepicker()
.on('click', function (ev) {
        $('.datepicker').css("z-index", "999999999");
}).data('datepicker');

이 솔루션은 팝업 창에서 완벽하게 작동합니다. 감사 !
darkomen

5

datepicker를 사용하는 대화 상자가 있습니다. 항상 숨겨져있었습니다. Z- 색인을 조정했을 때 하단 양식의 필드가 항상 대화 상자에 표시되었습니다.

문제를 해결하기 위해 본 솔루션을 조합하여 사용했습니다.

$('.ui-datepicker', $form).datepicker({
                showButtonPanel: true,
                changeMonth: true,
                changeYear: true,
                dateFormat: "yy-M-dd",
                beforeShow: function (input) {
                    $(input).css({
                        "position": "relative",
                        "z-index": 999999
                    });
                },
                onClose: function () { $('.ui-datepicker').css({ 'z-index': 0  } ); }                    
            });

before show는 datepicker를 선택했을 때 항상 맨 위에 있도록 보장하지만 onClose는 필드의 z-index가 재설정되어 나중에 다른 datepicker로 열린 대화 상자에서 겹치지 않도록합니다.


이 솔루션은 훌륭하고 내 문제를 해결했습니다. 그러나 "onClose"부분에서 약간 편집하십시오. 나는 넣어 $(this)대신 $('.ui-datepicker'). 따라서 z-index:0ui-datepicker 클래스의 모든 입력 대신 "이 입력"으로 설정 됩니다.
Asuka165


1

datepicker가 datatables.net tabletools 버튼 위에있는 페이지가 있습니다. 데이터 테이블 버튼은 개별 날짜 선택기 날짜 버튼보다 Z- 색인이 더 높습니다. Ronye의 답변 덕분에 position : relative;를 사용하여이 문제를 해결할 수있었습니다. 및 Z- 색인 : 10000. 감사합니다!


1

이것은 내가 주제를 놓쳤을 때 나에게 일어났습니다. 테마가 있는지 확인하거나 테마를 다시 다운로드 한 다음 서버에 다시 업로드하십시오.


1

그것이 내 문제를 해결했습니다.

 $( document ).ready(function() {   
    $('#datepickerid').datepicker({
     zIndexOffset: 1040 #or any number you want
     });
});

1

실제로 CSS를 효과적으로 추가 .ui-datepicker{ z-index: 9999 !important;}할 수 있지만 ui-datepicker 클래스 끝에 수정 jquery-ui.css하거나 jquery-ui.min.css추가 할 수 있습니다 z-index: 9999 !important;. 두 가지 모두 나를 위해 작동합니다 (하나만 필요합니다 ;-))


0

datepicker가 입력의 Z- 색인을 사용하기 때문에이 문제도 발생했습니다. 다음 CSS를 추가했습니다.

#dialogID input,.modal-dialog input, .modal-dialog .input-group .form-control{
  z-index:inherit;
}

부모 ID, 클래스 또는 내 경우에는 입력 그룹 및 양식 제어를 사용하여 부트 스트랩 대화 상자에 적용되는 규칙을 취하십시오.


0

나는해야했다

.datepicker.dropdown-menu {
    position: relative;
    z-index: 9999 !important;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.