[JavaScript] 이미지 원본 크기로 보기

페이지 정보

shadow2fox 1,602 2 2 2021.03.14 23:49

평점

  • 평점 : 5점 (2명 참여)

본문

📝 이미지 원본 크기로 보기
자바스크립트와 jQuery를 사용할 수 있는 환경이라면 아래 소스의 선택 엘리먼트와 팝업 함수의 제목만 입맛에 맞도록 바꾸어 적용하면 된다.

$(document).ready(function() {
    $('img').load(function(){
        var img = $(this);
        var width = img[0].naturalWidth;
        console.log(width);
        var winwidth = $(".board-view-atc").width();
        console.log(winwidth);
        if(width > winwidth){
            if(!(img[0].closest('a'))) {
                img.addClass('zoomable');
                $('img.zoomable').css('cursor', 'zoom-in');
            }
        }
  })
});

function image_popup(url) {
    var imgObj = new Image();
    imgObj.src = url;
    var left = (screen.width - imgObj.width)/2;
    imageWin = window.open("", "profile_popup", "width=" + imgObj.width + "px, height=" + imgObj.height + "px, left=" + left +"px");
    imageWin.document.write("<html><body style='margin:0'>");
    imageWin.document.write("<a href=javascript:window.close()><img src='" + imgObj.src + "' style='max-width:100%;cursor:zoom-out'></a>");
    imageWin.document.write("</body><html>");
    imageWin.document.title = "{=cut_str(get_text(view.wr_subject), 120)}";
}

$('body').on('click','img.zoomable',function(){
    var img = $(this);
    var src = img.attr('src');
    image_popup(src);
});
$('img').load(function()은 이미지가 로딩될 때마다 이미지의 넓이를 검증하고 board-view-atc 클래스보다 크면 zoomable 클래스를 이미지에 추가하고 zoom-in 커서 스타일을 추가한다.

$('body').on('click','img.zoomable',function()은 zoomable 클래스를 지닌 img를 클릭할 때 image_popup함수를 호출한다.

function image_popup(url)는 호출된 이미지의 크기를 구하여 사용자 해상도 넓이의 중앙에 맞게 띄우고 팝업 내 이미지에 zoom-out 커서 스타일을 추가하며 이미지를 클릭하면 팝업창을 닫는다.
탬플릿언더바를 이용하는 이윰빌더일 경우 게시글 제목을 잘라서 팝업 제목으로 사용한다.
추천인 2
  • 내사랑
  • 하늘구장
10
shadow2fox - 회원등급 : 자연/Level 142 - 포인트 : 2,544,205
레벨 142
경험치 3,042,610

Progress Bar 93%

- 가입일 : 2015-03-10 12:21:44
- 서명 : 인간에게 가장 큰 선물은 자기 자신에게 기회를 주는 것이다. - 크리스 가드너, Chris Gardner -
- 자기소개 : There's never a shortcut to happiness.

댓글2

내사랑님의 댓글

내사랑 2021.03.15 15:19
올려 주셨군용 퇴근 후에 적용해야겠네요 아주 많이 감사드립니다

하늘구장님의 댓글

하늘구장 2021.03.15 00:03
그누보드에서 제공된 이미지 팝업 기능을 사용치 않는 경우 아주 유용한 팁이네요 정말 감사합니다

축하합니다. 첫 댓글로 1경험치를 획득하였습니다.

축하합니다. 행운의 73경험치를 획득하였습니다.

Total 747538 페이지
제목 글쓴이 날짜 조회 추천
그누•영카트  🏆 그누보드 5.0.38 패치 루루아빠 2015.06.30 3,378 0
JavaScript  🏆 오프스크린 이미지(Offscreen Images) 지연하기 shadow2fox 2018.12.27 3,377 2
제로  🏆 💾 회원가입시 아이디체크 (중복, 필터링, 검색, 사용시 입력창으로..) 루루아빠 2005.07.07 3,353 0
그누•영카트  🏆 그누보드 로그인, 로그아웃시 현재 페이지 유지하기 루루아빠 2017.01.25 3,345 0
그누•영카트  🏆 영카트 5.1.17 패치 루루아빠 2016.05.17 3,344 0
이윰  🏆 modal 창 크기 변경하기 루루아빠 2015.07.30 3,332 0
그누•영카트  🏆 영카트 상품 증가 감소 선택 문자 바꾸기 루루아빠 2015.05.01 3,331 0
에디터  🏆 smarteditor2 로 사진 첨부시 에디터 크기에 맞게 리사이즈 루루아빠 2015.04.23 3,329 0
이윰  🏆 이윰빌더 1.1.4 패치 루루아빠 2015.06.08 3,310 0
기타  🏆 Font Awesome 4.7.0 - Web Application, Directional 루루아빠 2017.11.20 3,293 0
에디터  댓글+1🏆 에디터상에서 이미지 가운데 정렬 루루아빠 2015.05.23 3,282 0
이윰  댓글+2🏆 게시판 카테고리 탭 형식으로 만들기 루루아빠 2015.04.21 3,271 0
이윰  댓글+2🏆 쪽지 보낼때 캡챠코드 사용하지 않기 - 오류 루루아빠 2015.09.24 3,267 0
제로  🏆 아파치1.x 버젼을 위한 설정 루루아빠 2006.06.01 3,261 0
그누•영카트  🏆 영카트 5.2.9.8 패치 (이니시스 Lpay 간편결제 추가) 루루아빠 2017.12.21 3,260 0
제로  🏆 카테고리/페이지 상관없이 공지는 무조건 보이게 루루아빠 2006.05.26 3,259 0
이윰  🏆 로그인을 메인으로 - 회원제 사이트 - 폐쇄형 사이트용 루루아빠 2015.07.08 3,256 0
이윰  🏆 스크린 사이즈에 따른 미디어 쿼리(container 크기 변화) 루루아빠 2015.06.25 3,255 0
제로  댓글+1🏆 회원가입시 자동환영 쪽지보내기! 루루아빠 2006.03.09 3,253 0
이윰  댓글+1🏆 디바이스에 따른 내용 보이기 숨기기 루루아빠 2015.03.20 3,253 0