>  기사  >  웹 프론트엔드  >  HTML에서 마스크 레이어를 구현하는 방법 HTML_HTML/Xhtml_웹페이지 제작에서 마스크 레이어를 사용하는 방법

HTML에서 마스크 레이어를 구현하는 방법 HTML_HTML/Xhtml_웹페이지 제작에서 마스크 레이어를 사용하는 방법

WBOY
WBOY원래의
2016-05-16 16:45:591679검색

웹 페이지에서 마스크 레이어를 사용하면 반복 작업을 방지하고 팝업 모달 창을 시뮬레이션할 수도 있습니다.

구현 아이디어: 하나의 DIV는 마스크 레이어 역할을 하고, 하나의 DIV는 로딩되는 동적 GIF 이미지를 표시합니다. 다음 샘플 코드에서는 iframe 하위 페이지에서 표시 및 숨기기 마스크 레이어를 호출하는 방법도 보여줍니다.

샘플 코드:

index.html

XML/HTML 코드클립보드에 콘텐츠 복사
  1. >  
  2. <html lang="zh- CN">  
  3. <머리>  
  4. <메타 문자 집합="utf- 8">  
  5. <메타 http-equiv=" X-UA 호환" 콘텐츠="IE=edge">  
  6. <제목>HTML遮罩层제목>  
  7. <링크 rel="스타일시트"  href="css/index.css">  
  8. 머리>  
  9. <>  
  10.     <div class="header"  id="헤더">  
  11.         <div class="title- 외부">  
  12.            <스팬 클래스="제목" >  
  13.                 HTML遮罩层使용   
  14.             스팬>  
  15.         div>  
  16.     div>  
  17.     <div class="body"  id="본문">  
  18.         <iframe id="iframeRight"  이름="iframeRight" 너비="100%" 높이="100%"  
  19.            스크롤="아니요" 프레임 테두리="0"  
  20.            스타일="테두리: 0px;여백: 0px; 패딩: 0px; 너비: 100%; 높이: 100%;오버플로 : 숨김;"  
  21.            온로드="rightIFrameLoad(this)" src="body.html">iframe>  
  22.     div>  
  23.        
  24.       
  25.     <div id="오버레이"  클래스="오버레이">div>  
  26.       
  27.     <div class="modal"  id="modalDiv">div>  
  28.        
  29.     <스크립트 유형='text/ javascript' src="js/jquery-1.10.2.js"> 스크립트>  
  30.     <스크립트 유형="text/ javascript" src="js/index.js">< ;/스크립트>  
  31. >  
  32. html>  

index.css

CSS 코드复复内容到剪贴板
  1. * {   
  2.     여백: 0;   
  3.     패딩: 0;   
  4. }   
  5.   
  6. html, 본문 {   
  7.     너비: 100%;   
  8.     높이: 100%;   
  9.     글꼴 크기14px;   
  10. }   
  11.   
  12. div.header {   
  13.     너비: 100%;   
  14.     높이100px;   
  15.     테두리 하단1px 점선 파란색;   
  16. }   
  17.   
  18. div.title-outer {   
  19.     직위친척;   
  20.     상위: 50%;   
  21.     높이30px;   
  22. }   
  23. span.title {   
  24.     텍스트 정렬왼쪽;   
  25.     직위친척;   
  26.     왼쪽: 3%;   
  27.     상위: -50%;   
  28.     글꼴 크기22px;   
  29. }   
  30.   
  31. div.body {   
  32.     너비: 100%;   
  33. }   
  34. .overlay {   
  35.     위치절대;   
  36.     상단0px;   
  37.     왼쪽0px;   
  38.     z-색인: 10001;   
  39.     디스플레이:없음;   
  40.     filter:alpha(불투명도=60);   
  41.     배경색#777;   
  42.     불투명도: 0.5;   
  43.     -moz-불투명도: 0.5;   
  44. }  
  45. .loading-tip {   
  46.     z-색인: 10002;   
  47.     위치고정;   
  48.     디스플레이:없음;   
  49. }   
  50. .loading-tip img {   
  51.     너비:100px;   
  52.     높이:100px;   
  53. }   
  54.   
  55. .modal {   
  56.     위치:절대;   
  57.     너비600px;   
  58.     높이360px;   
  59.     테두리1px 단색 rgba(0, 0, 0, 0.2);   
  60.     상자 그림자: 0px 3px 9px rgba (0, 0, 0, 0.5);   
  61.     디스플레이없음;   
  62.     z-색인: 10003;   
  63.     테두리-반경: 6px;   
  64. }   
  65.   

index.js

JavaScript 코드复复内容到剪贴板
  1. 함수 rightIFrameLoad(iframe) {
  2.  var pHeight = getWindowInnerHeight() - $('#header').height() - 5 ;
  3.  
  4. $('div.body').height(pHeight)
  5. console.log(pHeight)
  6.  
  7. }
  8. // 브라우저 호환성 브라우저 뷰포트 높이 가져오기
  9. 함수 getWindowInnerHeight() {
  10. var winHeight = window.innerHeight
  11. || (document.documentElement && document.documentElement.clientHeight)
  12. || (document.body && document.body.clientHeight)
  13. 반환 winHeight
  14.  
  15. }
  16. // 브라우저 호환성 브라우저 뷰포트 너비 가져오기
  17. 함수 getWindowInnerWidth() {
  18. var winWidth = window.innerWidth
  19. || (document.documentElement && document.documentElement.clientWidth)
  20. || (document.body && document.body.clientWidth)
  21. 반환 winWidth
  22.  
  23. }
  24. /**
  25. * 마스크 레이어 표시
  26. */
  27. 함수 showOverlay() {
  28. //마스크 레이어의 너비와 높이는 각각 페이지 콘텐츠의 너비와 높이입니다.
  29. $('.overlay').css({'높이':$(문서). 높이(),'너비':$(document).width()})
  30. $('.overlay').show()
  31. }
  32. /**
  33. * 로딩 프롬프트 표시
  34. */
  35. 함수 showLoading() {
  36. //마스크 레이어를 먼저 표시
  37. showOverlay()
  38. // 로딩 프롬프트 창이 중앙에 위치
  39. $("#loadingTip").css('top',
  40. (getWindowInnerHeight() - $("#loadingTip").height()) / 2 'px')
  41. $("#loadingTip").css('왼쪽',
  42. (getWindowInnerWidth() - $("#loadingTip").width()) / 2 'px')
  43.                                              
  44. $(
  45. "#loadingTip").show()
  46. $(document).scroll(
  47. 함수() {
  48. 반환 거짓
  49. })
  50. }
  51. /**
  52. * 로딩 프롬프트 숨기기
  53. */
  54. 함수 hideLoading() {
  55. $(
  56. '.overlay').hide()
  57. $(
  58. "#loadingTip").hide()
  59. $(document).scroll(
  60. 함수() {
  61. 반환
  62. })
  63. }
  64. /**
  65. * 팝업 모달 창 DIV 시뮬레이션
  66. * @param innerHtml 모달 창 HTML 콘텐츠
  67. */
  68. 함수 showModal(innerHtml) {
  69. // 시뮬레이션 모달 창을 표시하는 데 사용되는 DIV 가져오기
  70. var 대화 상자 = $('#modalDiv');
  71.  
  72. // 내용 설정
  73. dialog.html(innerHtml)
  74.  
  75. // 모달 창 DIV 창이 중앙에 있음
  76. 대화상자.css({
  77.  
  78. 'top' : (getWindowInnerHeight() -Dialog.height()) / 2 'px' ,
  79.  
  80. '왼쪽' : (getWindowInnerWidth() -Dialog.width()) / 2 'px'
  81. })
  82.  
  83. // 창 DIV 둥근 모서리
  84. Dialog.find(
  85. '.modal-container').css('border-radius', '6px')
  86.  
  87. // 모달 창 닫기 버튼 이벤트
  88. Dialog.find(
  89. '.btn-close').click(함수(){
  90. closeModal()
  91. })
  92.  
  93. //마스크 레이어 표시
  94. showOverlay()
  95.  
  96. //마스크 레이어 표시
  97. dialog.show()
  98. }
  99. /**
  100. * 모달 창 닫기 시뮬레이션 DIV
  101. */
  102. 함수 closeModal() {
  103. $(
  104. '.overlay').hide()
  105. $(
  106. '#modalDiv').hide()
  107. $(
  108. '#modalDiv').html(''); }
  109. body.html

    XML/HTML 코드클립보드에 콘텐츠 복사
    1. >  
    2. <html lang="zh- CN">  
    3. <머리>  
    4. <메타 문자 집합="utf- 8">  
    5. <메타 http-equiv=" X-UA 호환" 콘텐츠="IE=edge">  
    6. <제목>본문页면제목>  
    7. <스타일 유형="text/ css">  
    8. * {   
    9.     여백: 0;   
    10.     패딩: 0;   
    11. }   
    12.   
    13. html, 본문 {   
    14.     너비: 100%;   
    15.     높이: 100%;   
    16. }   
    17.   
    18. .outer {   
    19.     너비: 200px;   
    20.     높이: 120px;   
    21.     위치: 상대적;   
    22.     상위: 50%;   
    23.     왼쪽: 50%;   
    24. }   
    25.   
    26. .inner {   
    27.     너비: 200px;   
    28.     높이: 120px;   
    29.     위치: 상대적;   
    30.     상위: -50%;   
    31.     왼쪽: -50%;   
    32. }   
    33.   
    34. .버튼 {   
    35.     너비: 200px;   
    36.     높이: 40px;   
    37.     위치: 상대적;   
    38. }   
    39.     
    40. .button#btnShowLoading {   
    41.     상위: 0;   
    42. }   
    43.   
    44. .button#btnShowModal {   
    45.     상위: 30%;   
    46. }
    47. 스타일>
    48. <스크립트 유형="text/ javascript">
    49.  
    50. 함수 showOverlay() {
    51. // 상위 창을 호출하여 마스크 레이어와 로드 프롬프트를 표시합니다.
    52. window.top.window.showLoading()
    53. // 타이머를 사용하여 로딩 프롬프트 닫기를 시뮬레이션합니다.
    54. setTimeout(function() {
    55. window.top.window.hideLoading()
    56. }, 3000)
    57. }
    58. 함수 showModal() {
    59. // 팝업 모달 창을 시뮬레이션하기 위해 상위 창 메서드 호출
    60. window.top.showModal($('#modalContent').html())
    61. }
    62.  
    63. 스크립트>
    64. 머리>
    65. <>
    66.  <div class='외부' >
    67.  <div class='내부' >
    68.  <버튼 id='btnShowLoading' 클래스='버튼' 클릭='showOverlay();'>클릭하여 마스크 레이어 팝업버튼>
    69.  <버튼 id='btnShowModal' 클래스='버튼' 클릭='showModal();'>클릭하여 모달 창 띄우기버튼>
    70. div>
    71.  div> 
    72.  
    73.  <div id='modalContent' 스타일='디스플레이: 없음;'>
    74.  <div class='modal- 컨테이너' 스타일='너비: 100%;높이: 100%;배경색: 흰색;'>
    75.  <div 스타일='너비: 100%;높이: 49px;위치: 상대;왼쪽: 50%;상단: 50%;'>
    76.                <스팬 스타일='글꼴- 크기: 36px; 너비: 100%; 텍스트 정렬:가운데; 디스플레이: 인라인 블록; 위치:상속; 왼쪽: -50%;위: -50%;'>模态窗口1 >  
    77.             div>  
    78.            <버튼 수업='btn- 닫기' 스타일='너비: 100px; 높이: 30px; 위치: 절대; 오른쪽: 30px; 하단: 20px;'>关闭버튼>
    79.         div>  
    80.     div>  
    81.     <스크립트 유형='text/ javascript' src="js/jquery-1.10.2.js"> 스크립트>  
    82. >  
    83. html>  
    84.   

    运行结果:

    初始화

    显示遮罩层와Loading提示

    显示遮罩层和模拟弹伹模态窗口

    以上就是本文의 전체 부서는 内容, 希望对大家의 학교입니다.

    원문:http://www.cnblogs.com/haoqipeng/p/html-overlay.html

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.