반응형 갤러리에서 첨부이미지 클릭시 jpg에서 크기 확대/축소 할수 있는방법이 있을까요?

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
반응형 갤러리에서 첨부이미지 클릭시 jpg에서 크기 확대/축소 할수 있는방법이 있을까요?

QA

반응형 갤러리에서 첨부이미지 클릭시 jpg에서 크기 확대/축소 할수 있는방법이 있을까요?

본문

현재 여기에 많은 도움을 받고 계속 게시판을 검색하고 있습니다.

다름이 아니라  아무리 검색을 해도 안나와서 질문 게시판에 글을 적습니다.

반응형 사이트이고 갤러리에서 이미지 첨부후 모바일에서 점부 이미지 클릭하면 

JPG파일로 모바일 크기에 맞게 나옵니다.

 

 

그런데 제가 원하는것 클릭시 이미지가 손가락으로 확대 축소를 하고 싶어 몇가지 해보았으나 안됩니다.

우선 메인페이지에 head.sub.php 파일에 

 

<?php
if (G5_IS_MOBILE) {
    echo '<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=0,maximum-scale=10,user-scalable=yes">'.PHP_EOL;
    echo '<meta name="HandheldFriendly" content="true">'.PHP_EOL;
    echo '<meta name="format-detection" content="telephone=no">'.PHP_EOL;
} else {
    echo '<meta http-equiv="imagetoolbar" content="no">'.PHP_EOL;
    echo '<meta http-equiv="X-UA-Compatible" content="IE=Edge">'.PHP_EOL;
}

if($config['cf_add_meta'])
    echo $config['cf_add_meta'].PHP_EOL;
?>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=yes">
<title><?php echo $g5_head_title; ?></title>

 

테마 폴더에 head.sub.php

<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=yes">

 

이렇게 해놓았으나 그냥 고정이 됩니다.

점부파일 이미지가 모바일로 클릭시  고정이 됩니다..손가락으로 확대 축소가 안됩니다.

어떻게 보면 당연하겠지만 확장자가 보니 jpg이더군요..

 

혹시나 싶어 view_image.php파일의

<?php
include_once('./_common.php');

$g5['title'] = '이미지 크게보기';
include_once(G5_PATH.'/head.sub.php');

$filename = isset($_GET['fn']) ? preg_replace('/[^A-Za-z0-9 _ .\-\/]/', '', $_GET['fn']) : '';

if(function_exists('clean_relative_paths')){
    $filename = clean_relative_paths($filename);
}

$extension = pathinfo($filename, PATHINFO_EXTENSION);

if ( ! preg_match('/(jpg|jpeg|png|gif|bmp|webp)$/i', $extension) ){
    alert_close('이미지 확장자가 아닙니다.');
}

if(strpos($filename, G5_DATA_DIR.'/editor')) {
    $editor_file = strstr($filename, 'editor');
    $filepath = G5_DATA_PATH.'/'.$editor_file;
} else if(strpos($filename, G5_DATA_DIR.'/qa')) {
    $editor_file = strstr($filename, 'qa');
    $filepath = G5_DATA_PATH.'/'.$editor_file;
} else {
    $editor_file = '';
    $filepath = G5_DATA_PATH.'/file/'.$bo_table.'/'.$filename;
}

$file_exists = (is_file($filepath) && file_exists($filepath)) ? 1 : 0;

if($file_exists = run_replace('exists_view_image', $file_exists, $filepath, $editor_file)) {
    $size = $file_exists ? run_replace('get_view_imagesize', @getimagesize($filepath), $filepath, $editor_file) : array();
    if(empty($size))
        alert_close('이미지 파일이 아닙니다.');

    $width = (isset($size[0]) && $size[0]) ? (int) $size[0] : 0;
    $height = (isset($size[1]) && $size[1]) ? (int) $size[1] : 0;

    if($editor_file)
        $fileurl = run_replace('get_editor_content_url', G5_DATA_URL.'/'.$editor_file);
    else
        $fileurl = run_replace('get_file_board_url', G5_DATA_URL.'/file/'.$bo_table.'/'.$filename, $bo_table);

    $img_attr = ($width && $height) ? 'width="'.$width.'" height="'.$height.'"' : '';

    $img = '<img src="'.$fileurl.'" alt=""  class="draggable" style="position:relative;top:0;left:0;cursor:move;max-width:100%;height:auto;">';

} else {
    alert_close('파일이 존재하지 않습니다.');
}
?>

<div class="bbs-view-image"><?php echo $img ?></div>
<?
if($width > 1000){
    $t_width = 1000;
    $t_height = ($height / $width) * $t_width;
    $width = $t_width;
    $height = $t_height;
}
?>
<script>

jQuery(function($){

$.fn.imgLoad = function(callback) {
    return this.each(function() {
        if (callback) {
            if (this.complete || /*for IE 10-*/ $(this).height() > 0) {
                callback.apply(this);
            }
            else {
                $(this).on('load', function(){
                    callback.apply(this);
                });
            }
        }
    });
};

    $(".bbs-view-image img").imgLoad(function(){

        var win_w = <?php echo $width ?>;
        var win_h = <?php echo $height ?> + 70;

        if( !win_w || !win_h ){
            win_w = $(this).width();
            win_h = $(this).height();
        }

        var win_l = (screen.width - win_w) / 2;
        var win_t = (screen.height - win_h) / 2;

        if(win_w > screen.width) {
            win_l = 0;
            win_w = screen.width - 20;

            if(win_h > screen.height) {
                win_t = 0;
                win_h = screen.height - 40;
            }
        }

        if(win_h > screen.height) {
            win_t = 0;
            win_h = screen.height - 40;

            if(win_w > screen.width) {
                win_w = screen.width - 20;
                win_l = 0;
            }
        }

        if(win_w < screen.width) {
            if(window.outerWidth){
                win_w = win_w + (window.outerWidth - (document.documentElement.clientWidth || window.innerWidth));
            }
        }

        window.moveTo(win_l, win_t);
        window.resizeTo(win_w, win_h);
    });

    var is_draggable = false;
    var x = y = 0;
    var pos_x = pos_y = 0;

    $(".draggable").mousemove(function(e) {
        if(is_draggable) {
            x = parseInt($(this).css("left")) - (pos_x - e.pageX);
            y = parseInt($(this).css("top")) - (pos_y - e.pageY);

            pos_x = e.pageX;
            pos_y = e.pageY;

            $(this).css({ "left" : x, "top" : y });
        }

        return false;
    });

    $(".draggable").mousedown(function(e) {
        pos_x = e.pageX;
        pos_y = e.pageY;
        is_draggable = true;
        return false;
    });

    $(".draggable").mouseup(function() {
        is_draggable = false;
        return false;
    });

    $(".draggable").dblclick(function() {
        window.close();
    });
});
</script>

<?php
include_once(G5_PATH.'/tail.sub.php');

이렇게 수정해도 안되였습니다.

방법이 있을까요?

 

 

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
전체 13
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT