display 추가 방법: jQuery show() 기능에서 inline-block?
이런 코드가 있어요
function switch_tabs(obj) {
$('.tab-content').hide();
$('.tabs a').removeClass("selected");
var id = obj.attr("rel");
$('#' + id).show();
obj.addClass("selected");
}
쇼 기능이 추가됩니다.display:block
. 하지만 나는 덧붙이고 싶습니다.display:inline-block
블록 대신에
대신에show
, 내용을 숨기고 보여주기 위해 CSS를 사용하려고 합니다.
function switch_tabs(obj) {
$('.tab-content').css('display', 'none'); // you could still use `.hide()` here
$('.tabs a').removeClass("selected");
var id = obj.attr("rel");
$('#' + id).css('display', 'inline-block');
obj.addClass("selected");
}
사용 후 CSS 속성 설정.show()
효과가 있을 겁니다HTML 페이지의 잘못된 요소를 겨냥하고 있는 것일 수도 있습니다.
$('#foo').css('display', 'inline-block');
하지만 만약 당신이 어떤 효과도 사용하지 않는다면,.show(), .hide()
이러한 CSS 속성을 다음과 같이 수동으로 설정하는 것은 어떨까요?
$('#foo').css('display','none');
$('#foo').css('display','inline-block');
다음과 같이 show() 또는 fadeIn() 직후에 css()를 사용합니다.
$('div.className').fadeIn().css('display', 'inline-block');
그렇게 했어요.
function showPanels() {
$('.panels').show("slow");
$('.panels').css('display','inline-block');
}
매력적으로 작용합니다.
Razz의 해결책은 다음과 같은 경우에 효과가 있을 것입니다..hide()
그리고..show()
methods 그러나 작동하지 않습니다..toggle()
방법.
시나리오에 따라서 CSS 수업을 하는 것..inline_block { display: inline-block; }
그리고 전화를$(element).toggleClass('inline_block')
문제를 해결해 줄 겁니다
시도해 보십시오.
$('#foo').show(0).css('display','inline-block');
표시/숨김 대신 애니메이트를 사용할 수 있습니다.
이와 같은 것:
function switch_tabs(obj)
{
$('.tab-content').animate({opacity:0},3000);
$('.tabs a').removeClass("selected");
var id = obj.attr("rel");
$('#'+id).animate({opacity:1},3000);
obj.addClass("selected");
}
애니메이션과 마지막에 디스플레이 속성을 설정하는 것 모두 원하시는 것 같습니다.그런 경우에는 사용하는 것이 좋습니다.show()
아래와 같이 콜백
$("#my_obj").show(400,function() {
$("#my_obj").css("display","inline-block")
}) ;
이렇게 하면 두 가지 결과를 모두 얻을 수 있습니다.
<style>
.demo-ele{display:inline-block}
</style>
<div class="demo-ele" style="display:none">...</div>
<script>
$(".demo-ele").show(1000);//hide first, show with inline-block
<script>
실제로 jQuery는 단순히 'display' 속성의 값을 지우고, 'block'으로 설정하지 않습니다(jQuery의 내부 구현 참조).showHide() -
function showHide(elements, show) {
var display, elem, hidden,
...
if (show) {
// Reset the inline display of this element to learn if it is
// being hidden by cascaded rules or not
if (!values[index] && display === "none") {
elem.style.display = "";
}
...
if (!show || elem.style.display === "none" || elem.style.display === "") {
elem.style.display = show ? values[index] || "" : "none";
}
}
$.fn.show()/$fn.hide()를 재정의할 수 있습니다. 숨길 때 요소 자체에 원래 디스플레이를 저장하고(예: 속성으로 또는 $.data()) 표시할 때 다시 적용할 수 있습니다.
또한 css important!를 사용하는 것은 아마도 여기서는 작동하지 않을 것입니다. 왜냐하면 인라인으로 스타일을 설정하는 것은 보통 다른 어떤 규칙보다 강하기 때문입니다.
최고의 .부모가 되게 하라.display :inline-block
또는 부모 추가div
CSS에만 있는 것display :inline-block
.
가장 좋은 방법은 !important 접미사를 선택기에 추가하는 것입니다.
예:
#selector{
display: inline-block !important;
}
언급URL : https://stackoverflow.com/questions/9260009/how-to-add-displayinline-block-in-a-jquery-show-function
'programing' 카테고리의 다른 글
공유 정적 라이브러리를 사용하는 xcode에서 "중복 기호" 오류를 방지하려면 어떻게 해야 합니까? (0) | 2023.10.01 |
---|---|
Git은 왜 제 마스터 지점이 "이미 최신"이 아니라고 합니까? (0) | 2023.10.01 |
npm WARN old lock file package-lock.json 파일이 이전 버전의 npm으로 생성되었습니다. (0) | 2023.10.01 |
Spring Data의 Paged Resources Assembler를 올바르게 사용하는 방법은 무엇입니까? (0) | 2023.10.01 |
하이버네이트가 MySQL의 "ON DUFFICED KEY UPDATE" 구문과 함께 작동할 수 있습니까? (0) | 2023.10.01 |