뷰페이지 큰 이미지 리사이즈 방법 변경... 정보
뷰페이지 큰 이미지 리사이즈 방법 변경...본문
2~3년전에 팁을 올렸던 것 같은데 찾아보니 안보이네...
원본 소스도 바뀐 부분이 있으니 다시 올립니다
어쨌던 아래와 같습니다(view.skin.php만 수정하면 됩니다)
====================================================
큰 이미지 리사이즈시 화면 이상하게 되는 것 방지
====================================================
view.skin.php 에서
<?
// 파일 출력
$tmp_width=" width='{$board[bo_image_width]}' name=";
for ($i=0; $i<=count($view[file]); $i++) {
if ($view[file][$i][view]){
if($view[file][$i][image_width] >= $board[bo_image_width])
$view[file][$i][view]=preg_replace("/name=/i",$tmp_width,$view[file][$i][view]);
echo $view[file][$i][view] . "<p>";
}
}
?>
맨 아래 스크립트 수정
<script language="JavaScript">
window.onload=function() {
// resizeBoardImage(<?=(int)$board[bo_image_width]?>); 주석처리
drawFont();
var target = document.getElementsByName('target_resize_image[]');
<?
$k=0;
for ($i=0; $i<=count($view[file]); $i++) {
if ( ($view[file][$i][image_type] >0 && $view[file][$i][image_type]<4) || $view[file][$i][image_type]==6){ // gif jpg png bmp 인지 확인
echo "target[$k].tmp_width ={$view[file][$i][image_width]}; target[$k].tmp_height ={$view[file][$i][image_height]};\n";
$k++;
}
}
?>
}
</script>
=======================
이미지를 여러개 등록 후 앞의 이미지 삭제 또는 이미지 첨부가 차례로 첨부되지않은 경우를
생각하여 $k 추가...
3
댓글 12개
적용시켜보니.. 큰이미지리사이즈시 화면이상하게 되는건 방지가 되는데요.
뷰화면에서 이미지를 클릭시 새창으로 큰이미지를 못뿌려주네요 ㅠㅠ
새창은 뜨긴뜨는데 1pixel 1pixel 사이즈의 이미지가 뜹니다.
새창에 이미지가 나오지 않는다는 것은
맨 아래 스크립트 수정<--이라고 되어있는 자바스크립트 부분에서
이미지 사이즈를 구하지않아서 일텐데...
에러나는 페이지를 볼 수 있으면 좋을텐데요
사무실에서 할땐 몇번을 수정해도 안돼길래.. 포기했는데
좋은팁 감사합니다.
작동됨 :
http://bleu.pe.kr/neue/bbs/board.php?bo_table=0308&wr_id=5&page=0
작동안됨 : 가로 세로가 undefined로 나오네요
http://bleu.pe.kr/neue/bbs/board.php?bo_table=0308&wr_id=6&page=0
<img src='http://bleu.pe.kr/neue/data/file/0308/1993904445_41de5e86_BmwM1Homage_01.png' width='undefined' height='undefined' border=0 class='dragme' onclick='window.close();' style='cursor:pointer' title=' 이미지 사이즈 : undefined x undefined 클릭하면 닫혀요. '>
참고로 ie6 이에요
다시해보니 이미지 두개를 올리면 안되네요 ㅠㅠ
target[0].tmp_height =473target[1].tmp_width =355;<--이렇게 나오네요
즉 소스에서 세미콜론(;)이 빠져서 그렇습니다
위의 자바스크립트 부분을 복사해서 붙여넣으세요
소스 보니 위의 자바스크립트 소스에 빠져있었네요
target[$k].tmp_height ={$view[file][$i][image_height]};";
좋은팁 감사드립니다 ^^
클릭하면 이미지 원본이 안떠요
회색창만 뜹니당 어찌해야할까욤
원본 스킨으로 해도 팝업창에 이미지가 보이지 않을 것입니다
이유는 window.onload=function() 이 함수에 있습니다
이 함수 호출 외에 onload를 사용한 곳이 있을 때 이 함수가 호출되지않아서 입니다
소스보기를 해서 onload 를 찾아보세요 분명 또 다른 onload가 있을 것입니다
위 함수를 아예 변경해서 사용해야 됩니다
function img_init(){
.
.
}
if (window.addEventListener) window.addEventListener("load", img_init, false)
else if (window.attachEvent) window.attachEvent("onload", img_init)
이렇게 onload 방법을 바꾸어서 사용하세요
이것은 이 팁에만 적용되는 것이 아니라 홈페이지 구성 방법에따라
이렇게 사용하지 않으면 실행되지 않는 경우가 더러 있을 것입니다