프로그래밍/Javascript

이미지 썸네일

즐겁게 하하하 2022. 1. 14. 03:13
728x90

이미지 썸네일1

<style>
             .preview {
               position: fixed;
               left: 42%;
               right: 0;
               top: 9%;
               bottom: 0;
               display: inline-flex;
               align-items: center;
               justify-content: center;
               background: rgba(0, 0, 0, 0.5);
               display: none;
               width: 850px;
               height: 500px;
             }

            .preview a {
                display: flex;
                align-items: center;
                position: relative;
             }
            .preview a::before {
              position: absolute;
              content: '⨉';
              display: inline-block;
              background: tomato;
              top: -16px;
              right: -16px;
              width:32px;
              height: 32px;
              border-radius: 50%;
              color: white;
              text-align: center;
              font-size: 16px;
              line-height: 32px;
           }

           .preview img {
             width: 850px;
             height: 500px;
           }

          .preview:target {
            display: flex;
          }

         .preview-trigger {
           text-decoration: none;
           font-family: monospace;
           border: 2px solid;
           padding: 10px;
           margin-top: 10px;
           display: inline-block;
           transition: 0.16s;
         }

        .preview-trigger:active {
          border-radius: 50%;
          animation: effect 0.16s linear infinite;
        }

       @keyframes effect {
         100% {
            transform: rotateZ(360deg);
        }
       }
</style>

<!--이미지 미리보기.-->
<div id="flower" class="preview" style="z-index: 4000">
     <a href="#"><img  id="mapimg" src="" alt=""/></a>
</div>

<!--ajax 선택박스.-->
tag += "<td><select class='maps_bubble' name='maps[]' id='maps_" + flag + "' onchange='mapsChange("+ flag +")' onmouseover='overEffect("+ flag +")' onmouseout='outEffect("+ flag +")' >"+ $("#account_maps").val() +"</select><input type='hidden' name='select_maps[]' id='select_maps_" + flag + "' value='' /></td>";


//선택박스 마우스over
function overEffect( flag ){
    var mapsSelect = $("#maps_"+ flag +" option:selected").val();
    if(mapsSelect != 0){
        var img = $("#select_maps_" + flag).val();
        $("#mapimg").attr("src","/attach/" + img );
        $("#maps_" + flag).css("color", "#FF4500");
        $("#flower").show();
    }
}

//선택박스 mouseout
function outEffect( flag ){
    $("#maps_" + flag).css("color", "black");
    $("#flower").hide();
}

//선택박스값 변경
function mapsChange( flag ){

    var mapsSelect = $("#maps_"+ flag +" option:selected").val();    
      if(mapsSelect != 0){
          var data = {"mode" : "getMapsSearch" , "mapsSelect" : mapsSelect };
          $.ajax({
            type : "post",
            data : data,
            async: false,
            url  : "ajax.php",
            success: function(str){
                $("#select_maps_" + flag).val(str);    
            }
          });
      }
}
 
 
 
이미지 썸네일2 ( 업로드 전 이미지 선택시 미리보기 )
<th style="background-color:#f1f1f1; vertical-align:middle;" rowspan='7'>  이미지</th>
<td rowspan='7' style="width:40%">
	<div style="height:400px;width:400px;border:1px solid #ddd;">	
		<div>		
			<img src="#" id="v_blah" style=" height:400px;width:400px;display:none;"/>			
		</div>	
	</div>
	<input type="file" name="img" id="img"/>
</td>

// 이미지
$("#img").change(function(){ 
	$("#v_blah").css("display","block");

	readURL(this,"v_blah"); 
});

//이미지  미리보기
function readURL(input,id) { 
	if (input.files && input.files[0]) { 
		var reader = new FileReader(); 
		reader.onload = function (e) {
			$('#'+id).attr('src', e.target.result); 
		} 
		reader.readAsDataURL(input.files[0]); 
	}
}
 

■ 버튼 대면 메뉴 리스트 형식으로 보이고 빠져 나오면 메뉴 없애기

//css
<!----------------- //폼 레이어  ------------------->
<style>

	.imgSelect:hover {
		background-color:#f7f7f7;
	}

	.popupLayer {
		position: absolute;
		display: none;
		background-color: #ffffff;
		border: solid 1px #d0d0d0;
		width: 150px;
		height: 148px;
		
	}

	.di:hover {
		background-color:#f2f2f2;
	}

	.di{
		float:left;
		width:100%;
		font-size:14px;
		text-align:center;
		height:35px;
		line-height:35px;
		cursor:pointer;
	}

</style>
 
//html
<!-- //클릭 이미지 -->
<!-- 폼 레이어  -->
<div class="popupLayer">
	<div class="popupButton" >	
	</div>
</div>

<input type="hidden" name="divLeft" id="divLeft" value="" placeholder="클릭한 x 좌표"/>
<input type="hidden" name="divTop" id="divTop" value="" placeholder="클릭한 Y 좌표"/>

<input type="hidden" name="pageX" id="pageX" value="" placeholder="클릭후 움직이는 마우스 x좌표"/>
<input type="hidden" name="pageY" id="pageY" value="" placeholder="클릭후 움직이는 마우스 Y좌표"/>
<!----------------- //폼 레이어  -------------------> 

//버튼
<td>
   <input type='button' class='btn btn-xs btn-success regist' id='moldBtn' value='관리' onmouseleave=\"clClose()\" onclick=\"cl(" + json[i].uid + ");\" />
</td>

//마우스가 버튼을 벗어나면
function clClose(){

	$(document).mousemove(function(e){
		
		//창닫히는 좌표의 시작과 끝은 약간 여유를 둔다.
		var divDownSite = Number( $("#divTop").val() )+230; //Y좌표 화면아래로 이동시 체크하는 최대값..
		var divTopSite = Number( $("#divTop").val() )-40		//Y좌표 체크 시작지점..

		var divLeftSite = Number( $("#divLeft").val() )-50;		// X좌표 체크 시작지점 // X축 끝부분 누르면 알아서 위치값 잡아줌..
		var divRightSite = Number( $("#divLeft").val() )+150;		//Y좌표 체크 시작지점..
		
		if( $("#divTop").val() != "" &&  $("#divLeft").val() != "" ){ //테이블 안에 클릭한 지점이 있으면.
			if( (e.pageY > divTopSite  && e.pageY < divDownSite) && ( e.pageX > divLeftSite  && e.pageX < divRightSite ) ){ // 마우스 Y 좌표 체크.
		
					$("#pageX").val(e.pageX); //x 위치 확인하기
					$("#pageY").val(e.pageY);	  // Y 위치 확인하기.
			}else{
					$(".popupLayer").css("display","none");
			}
		}
	});
}

//마우스가 버튼위로 올라가면
function cl( param ){

	var tag = "";
	if( classify != "1"){
		tag +="<div class='di' onclick='postItem("+ param +")'>메뉴1</div>";
		tag +="<div class='di' onclick='registProcess("+ param +")'>메뉴2</div>";
		tag +="<div class='di' onclick=\"registSelfInspection("+ param + ")\">메뉴3</div>";
		
	}else{
		tag +="<div class='di' onclick='postItem("+ param +")'>메뉴1</div>";
		$(".popupLayer").css("height","39");
	}
	
	$(".popupButton").html(tag);
	
	var sWidth = window.innerWidth;
	var sHeight = window.innerHeight;

	var oWidth = $('.popupLayer').width();
	var oHeight = $('.popupLayer').height();

	// 레이어가 나타날 위치를 셋팅한다.
	var divLeft = event.clientX + 10;
	var divTop = event.clientY;

	// 레이어가 화면 크기를 벗어나면 위치를 바꾸어 배치한다.
	if( divLeft + oWidth > sWidth ) divLeft -= oWidth;
	if( divTop + oHeight > sHeight ) divTop -= oHeight;

	// 레이어 위치를 바꾸었더니 상단기준점(0,0) 밖으로 벗어난다면 상단기준점(0,0)에 배치하자.
	if( divLeft < 0 ) divLeft = 0;
	if( divTop < 0 ) divTop = 0;

	//레이어 위치 저장
	$("#divLeft").val(divLeft); //클릭한 x 좌표
	$("#divTop").val(divTop);   // 클릭한 Y 좌표

	$('.popupLayer').css({
		"top": divTop,
		"left": divLeft,
		"position": "absolute"
	}).show();
}
 
 

 

728x90