이미지 스크롤 스킨을 만들려고하는데.....클릭이 안돼네요.... 정보
이미지 스크롤 스킨을 만들려고하는데.....클릭이 안돼네요....
본문
초짜가 겁도없이 좀 부드러운 갤러리 스크롤 스킨을 만들고 싶어서 기본 스크롤 스킨을 좀 변경하여 보았습니다.
현제 소스이구요..
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 위로 스크롤되는 최신글
// 사용법 :
// 스킨, 게시판아이디, 출력라인, 글자수, "몇개라인,라인높이"
// latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
// $rows(출력라인)는 $line_mod의 2의 배수 이상으로 설정하셔야 합니다.
// 유니크 값 (최신글은 한페이지에 여러개 둘 수 있으므로... 자바스크립트에서 함수, 변수 충돌을 방지)
$uni = md5(uniqid(rand(), true));
list($line_mod, $height) = explode(",", $options);
$box_height = (int)$line_mod * (int)$height;
?>
<table width=100% cellpadding=0 cellspacing=0 border=0>
<colgroup width=14>
<colgroup>
<colgroup width=37>
<colgroup width=14>
<tr><td colspan=4 style='padding-left:5px; padding-right:5px; padding-top:5px; padding-bottom:10px;'>
<? if (count($list) == 0) { ?>
<tr><td colspan=4 align=center height=50>게시물이 없습니다.</td></tr>
<? } else { ?>
<script language="javascript">
var roll_height_<?=$uni?> = <?=$box_height?>;
var total_area_<?=$uni?> = 0;
var wait_flag_<?=$uni?> = true;
var bMouseOver_<?=$uni?> = 1;
var roll_speed_<?=$uni?> = 1;
var waitingtime_<?=$uni?> = 3000;
var s_tmp_<?=$uni?> = 2;
var s_amount_<?=$uni?> = <?=(int)$height?>;
var roll_text_<?=$uni?> = new Array();
var startPanel_<?=$uni?> = 0;
var n_panel_<?=$uni?> = 0;
var i_<?=$uni?> = 0;
function start_roll_<?=$uni?>()
{
i_<?=$uni?> = 0;
for (i_<?=$uni?> in roll_text_<?=$uni?>)
n_panel_<?=$uni?>++;
n_panel_<?=$uni?> = n_panel_<?=$uni?> -1 ;
startPanel_<?=$uni?> = Math.round(Math.random()*n_panel_<?=$uni?>);
if(startPanel_<?=$uni?> == 0) {
i_<?=$uni?> = 0;
for (i_<?=$uni?> in roll_text_<?=$uni?>)
insert_area_<?=$uni?>(total_area_<?=$uni?>, total_area_<?=$uni?>++);
} else if(startPanel_<?=$uni?> == n_panel_<?=$uni?>) {
insert_area_<?=$uni?>(startPanel_<?=$uni?>, total_area_<?=$uni?>);
total_area_<?=$uni?>++;
for (i_<?=$uni?>=0; i_<?=$uni?><startPanel_<?=$uni?>; i_<?=$uni?>++) {
insert_area_<?=$uni?>(i_<?=$uni?>, total_area_<?=$uni?>);
total_area_<?=$uni?>++;
}
} else if((startPanel_<?=$uni?> > 0) || (startPanel_<?=$uni?> < n_panel_<?=$uni?>)) {
insert_area_<?=$uni?>(startPanel_<?=$uni?>, total_area_<?=$uni?>);
total_area_<?=$uni?>++;
for (i_<?=$uni?>=startPanel_<?=$uni?>+1; i_<?=$uni?><=n_panel_<?=$uni?>; i_<?=$uni?>++) {
insert_area_<?=$uni?>(i_<?=$uni?>, total_area_<?=$uni?>);
total_area_<?=$uni?>++;
}
for (i_<?=$uni?>=0; i_<?=$uni?><startPanel_<?=$uni?>; i_<?=$uni?>++) {
insert_area_<?=$uni?>(i_<?=$uni?>, total_area_<?=$uni?>);
total_area_<?=$uni?>++;
}
}
if ( navigator.appName == "Microsoft Internet Explorer" ) {
if ( navigator.appVersion.indexOf ( "MSIE 4" ) > -1 )
return ;
}
window.setTimeout("rolling_<?=$uni?>()",waitingtime_<?=$uni?>);
}
function rolling_<?=$uni?>()
{
if (bMouseOver_<?=$uni?> && wait_flag_<?=$uni?>) {
for (i_<?=$uni?>=0;i_<?=$uni?><total_area_<?=$uni?>;i_<?=$uni?>++) {
tmp_<?=$uni?> = document.getElementById('scroll_area_<?=$uni?>'+i_<?=$uni?>).style;
tmp_<?=$uni?>.top = parseInt(tmp_<?=$uni?>.top)-roll_speed_<?=$uni?>;
if (parseInt(tmp_<?=$uni?>.top) <= -roll_height_<?=$uni?>) {
tmp_<?=$uni?>.top = roll_height_<?=$uni?>*(total_area_<?=$uni?>-1);
}
if (s_tmp_<?=$uni?>++ > (s_amount_<?=$uni?>-1)*roll_text_<?=$uni?>.length) {
wait_flag_<?=$uni?>=false;
window.setTimeout("wait_flag_<?=$uni?>=true;s_tmp_<?=$uni?>=0;",waitingtime_<?=$uni?>);
}
}
}
window.setTimeout("rolling_<?=$uni?>()", 1);
}
function insert_area_<?=$uni?>(idx_<?=$uni?>, n_<?=$uni?>)
{
document.write('<div style="left: 0px; width: 100%; position: absolute; top: '+(roll_height_<?=$uni?>*n_<?=$uni?>)+'px" id="scroll_area_<?=$uni?>'+n_<?=$uni?>+'">\n'+roll_text_<?=$uni?>[idx_<?=$uni?>]+'\n</div>\n');
}
<?
unset($roll_text);
for ($i=0; $i<count($list); $i++) {
$href = "<a href='./?doc=$cart_dir/item.php&it_id=$row[it_id]' class=item>";
$thumb1_width=85;//섬네일 최대폭
$thumb1_height=75;//섬네일 최대높이
$image = urlencode($list[$i][file][0][file]); // 첫번째 파일이 이미지라면
if (preg_match("/\.(gif|jpg|png)$/i", $image)) {
if(!is_file('$g4[path]/data/file/$bo_table/thumb1_$image')){
include "$g4[path]/thumbEngine/dq_thumb_engine2.php";
$thumbsource="$g4[path]/data/file/$bo_table/" . $image;
$thumbimg="$g4[path]/data/file/$bo_table/thumb1_" . $image;
make_thumb($thumb1_width,$thumb1_height,$thumbsource,$thumbimg);
chmod($thumbimg, 0606);
}
}
$k = (int)($i / $line_mod);
$roll_text[$k] .= "<div style=\"height:{$height}px; padding-top:5px;\">";
$roll_text[$k] .= "<a href=\"{$list[$i][href]}\">";
// $roll_text[$k] .= "<img src=\"{$latest_skin_path}/img/latest_icon.gif\" align=absmiddle border=0> ";
$roll_text[$k] .= "<table><tr>";
$roll_text[$k] .= "<td><img src=\"{$g4[path]}/data/file/$bo_table/$image\" align=middle width=100 height=75 border=0> </td>"; // 이미지출력
$roll_text[$k] .= "<td>";
$roll_text[$k] .= $list[$i][wr_subject]; // 제목
$roll_text[$k] .= " ";
$roll_text[$k] .= " (";
$roll_text[$k] .= $list[$i][wr_hit]; // 히트수
$roll_text[$k] .= ")";
$roll_text[$k] .= "<br>";
$roll_text[$k] .= $list[$i][wr_name]; //작성자
$roll_text[$k] .= "<br>";
$roll_text[$k] .= $list[$i][datetime];
$roll_text[$k] .= "</td></tr>";
$roll_text[$k] .= "</td></tr></table>";
if ($list[$i][comment_cnt])
$roll_text[$k] .= " <a href=\"{$list[$i][comment_href]}\">{$list[$i][comment_cnt]}</a>";
$roll_text[$k] .= "</div>";
}
for ($i=0; $i<=$k; $i++) {
echo "roll_text_{$uni}[$i] = '{$roll_text[$i]}';\n";
}
?>
</script>
<div style="left: 0px; width: 100%; position: relative; top: 0px; height: <?=$box_height?>px; overflow:hidden;" onMouseover="bMouseOver_<?=$uni?>=0" onMouseout="bMouseOver_<?=$uni?>=1" id="latest_scroll_<?=$uni?>">
<script language='javascript'>
var no_script_flag_<?=$uni?> = false ;
if ( navigator.appName == "Microsoft Internet Explorer" ) {
if ( navigator.appVersion.indexOf ( "MSIE 4" ) > -1 ) {
document.write ( roll_text_<?=$uni?>[0] ) ;
no_script_flag_<?=$uni?> = true ;
}
}
if ( no_script_flag_<?=$uni?> == false )
start_roll_<?=$uni?>();
</script>
</div>
<? } ?>
</td></tr>
<tr><td colspan=4 bgcolor=#EBEBEB height=1></td></tr>
</table>
문제가 되는 부분입니다..
$roll_text[$k] .= "<table><tr>";
$roll_text[$k] .= "<td><img src=\"{$g4[path]}/data/file/$bo_table/$image\" align=middle width=100 height=75 border=0> </td>"; // 이미지출력
$roll_text[$k] .= "<td>";
$roll_text[$k] .= $list[$i][wr_subject]; // 제목
$roll_text[$k] .= " ";
$roll_text[$k] .= " (";
$roll_text[$k] .= $list[$i][wr_hit]; // 히트수
$roll_text[$k] .= ")";
$roll_text[$k] .= "<br>";
$roll_text[$k] .= $list[$i][wr_name]; //작성자
$roll_text[$k] .= "<br>";
$roll_text[$k] .= $list[$i][datetime];
$roll_text[$k] .= "</td></tr>";
$roll_text[$k] .= "</td></tr></table>";
여기서 표를 삽입하지 않고 하면 한줄로 제목, 히트수, 작성자 등이 나와서 표를 이용하여 세 줄로 만들었습니다..
문제는 표를 삽입했더니 클릭이 안됀다는 것입니다...ㅡㅡ
어떻게 해야할지 모르겠네요..그냥 한줄로 쓸 수는 없고.....
아무쪼록 고수님들의 도움을 부탁드립니다..
초짜가 하려니 여기 저기 막히는게 많네요..쩝...
현제 소스이구요..
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 위로 스크롤되는 최신글
// 사용법 :
// 스킨, 게시판아이디, 출력라인, 글자수, "몇개라인,라인높이"
// latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
// $rows(출력라인)는 $line_mod의 2의 배수 이상으로 설정하셔야 합니다.
// 유니크 값 (최신글은 한페이지에 여러개 둘 수 있으므로... 자바스크립트에서 함수, 변수 충돌을 방지)
$uni = md5(uniqid(rand(), true));
list($line_mod, $height) = explode(",", $options);
$box_height = (int)$line_mod * (int)$height;
?>
<table width=100% cellpadding=0 cellspacing=0 border=0>
<colgroup width=14>
<colgroup>
<colgroup width=37>
<colgroup width=14>
<tr><td colspan=4 style='padding-left:5px; padding-right:5px; padding-top:5px; padding-bottom:10px;'>
<? if (count($list) == 0) { ?>
<tr><td colspan=4 align=center height=50>게시물이 없습니다.</td></tr>
<? } else { ?>
<script language="javascript">
var roll_height_<?=$uni?> = <?=$box_height?>;
var total_area_<?=$uni?> = 0;
var wait_flag_<?=$uni?> = true;
var bMouseOver_<?=$uni?> = 1;
var roll_speed_<?=$uni?> = 1;
var waitingtime_<?=$uni?> = 3000;
var s_tmp_<?=$uni?> = 2;
var s_amount_<?=$uni?> = <?=(int)$height?>;
var roll_text_<?=$uni?> = new Array();
var startPanel_<?=$uni?> = 0;
var n_panel_<?=$uni?> = 0;
var i_<?=$uni?> = 0;
function start_roll_<?=$uni?>()
{
i_<?=$uni?> = 0;
for (i_<?=$uni?> in roll_text_<?=$uni?>)
n_panel_<?=$uni?>++;
n_panel_<?=$uni?> = n_panel_<?=$uni?> -1 ;
startPanel_<?=$uni?> = Math.round(Math.random()*n_panel_<?=$uni?>);
if(startPanel_<?=$uni?> == 0) {
i_<?=$uni?> = 0;
for (i_<?=$uni?> in roll_text_<?=$uni?>)
insert_area_<?=$uni?>(total_area_<?=$uni?>, total_area_<?=$uni?>++);
} else if(startPanel_<?=$uni?> == n_panel_<?=$uni?>) {
insert_area_<?=$uni?>(startPanel_<?=$uni?>, total_area_<?=$uni?>);
total_area_<?=$uni?>++;
for (i_<?=$uni?>=0; i_<?=$uni?><startPanel_<?=$uni?>; i_<?=$uni?>++) {
insert_area_<?=$uni?>(i_<?=$uni?>, total_area_<?=$uni?>);
total_area_<?=$uni?>++;
}
} else if((startPanel_<?=$uni?> > 0) || (startPanel_<?=$uni?> < n_panel_<?=$uni?>)) {
insert_area_<?=$uni?>(startPanel_<?=$uni?>, total_area_<?=$uni?>);
total_area_<?=$uni?>++;
for (i_<?=$uni?>=startPanel_<?=$uni?>+1; i_<?=$uni?><=n_panel_<?=$uni?>; i_<?=$uni?>++) {
insert_area_<?=$uni?>(i_<?=$uni?>, total_area_<?=$uni?>);
total_area_<?=$uni?>++;
}
for (i_<?=$uni?>=0; i_<?=$uni?><startPanel_<?=$uni?>; i_<?=$uni?>++) {
insert_area_<?=$uni?>(i_<?=$uni?>, total_area_<?=$uni?>);
total_area_<?=$uni?>++;
}
}
if ( navigator.appName == "Microsoft Internet Explorer" ) {
if ( navigator.appVersion.indexOf ( "MSIE 4" ) > -1 )
return ;
}
window.setTimeout("rolling_<?=$uni?>()",waitingtime_<?=$uni?>);
}
function rolling_<?=$uni?>()
{
if (bMouseOver_<?=$uni?> && wait_flag_<?=$uni?>) {
for (i_<?=$uni?>=0;i_<?=$uni?><total_area_<?=$uni?>;i_<?=$uni?>++) {
tmp_<?=$uni?> = document.getElementById('scroll_area_<?=$uni?>'+i_<?=$uni?>).style;
tmp_<?=$uni?>.top = parseInt(tmp_<?=$uni?>.top)-roll_speed_<?=$uni?>;
if (parseInt(tmp_<?=$uni?>.top) <= -roll_height_<?=$uni?>) {
tmp_<?=$uni?>.top = roll_height_<?=$uni?>*(total_area_<?=$uni?>-1);
}
if (s_tmp_<?=$uni?>++ > (s_amount_<?=$uni?>-1)*roll_text_<?=$uni?>.length) {
wait_flag_<?=$uni?>=false;
window.setTimeout("wait_flag_<?=$uni?>=true;s_tmp_<?=$uni?>=0;",waitingtime_<?=$uni?>);
}
}
}
window.setTimeout("rolling_<?=$uni?>()", 1);
}
function insert_area_<?=$uni?>(idx_<?=$uni?>, n_<?=$uni?>)
{
document.write('<div style="left: 0px; width: 100%; position: absolute; top: '+(roll_height_<?=$uni?>*n_<?=$uni?>)+'px" id="scroll_area_<?=$uni?>'+n_<?=$uni?>+'">\n'+roll_text_<?=$uni?>[idx_<?=$uni?>]+'\n</div>\n');
}
<?
unset($roll_text);
for ($i=0; $i<count($list); $i++) {
$href = "<a href='./?doc=$cart_dir/item.php&it_id=$row[it_id]' class=item>";
$thumb1_width=85;//섬네일 최대폭
$thumb1_height=75;//섬네일 최대높이
$image = urlencode($list[$i][file][0][file]); // 첫번째 파일이 이미지라면
if (preg_match("/\.(gif|jpg|png)$/i", $image)) {
if(!is_file('$g4[path]/data/file/$bo_table/thumb1_$image')){
include "$g4[path]/thumbEngine/dq_thumb_engine2.php";
$thumbsource="$g4[path]/data/file/$bo_table/" . $image;
$thumbimg="$g4[path]/data/file/$bo_table/thumb1_" . $image;
make_thumb($thumb1_width,$thumb1_height,$thumbsource,$thumbimg);
chmod($thumbimg, 0606);
}
}
$k = (int)($i / $line_mod);
$roll_text[$k] .= "<div style=\"height:{$height}px; padding-top:5px;\">";
$roll_text[$k] .= "<a href=\"{$list[$i][href]}\">";
// $roll_text[$k] .= "<img src=\"{$latest_skin_path}/img/latest_icon.gif\" align=absmiddle border=0> ";
$roll_text[$k] .= "<table><tr>";
$roll_text[$k] .= "<td><img src=\"{$g4[path]}/data/file/$bo_table/$image\" align=middle width=100 height=75 border=0> </td>"; // 이미지출력
$roll_text[$k] .= "<td>";
$roll_text[$k] .= $list[$i][wr_subject]; // 제목
$roll_text[$k] .= " ";
$roll_text[$k] .= " (";
$roll_text[$k] .= $list[$i][wr_hit]; // 히트수
$roll_text[$k] .= ")";
$roll_text[$k] .= "<br>";
$roll_text[$k] .= $list[$i][wr_name]; //작성자
$roll_text[$k] .= "<br>";
$roll_text[$k] .= $list[$i][datetime];
$roll_text[$k] .= "</td></tr>";
$roll_text[$k] .= "</td></tr></table>";
if ($list[$i][comment_cnt])
$roll_text[$k] .= " <a href=\"{$list[$i][comment_href]}\">{$list[$i][comment_cnt]}</a>";
$roll_text[$k] .= "</div>";
}
for ($i=0; $i<=$k; $i++) {
echo "roll_text_{$uni}[$i] = '{$roll_text[$i]}';\n";
}
?>
</script>
<div style="left: 0px; width: 100%; position: relative; top: 0px; height: <?=$box_height?>px; overflow:hidden;" onMouseover="bMouseOver_<?=$uni?>=0" onMouseout="bMouseOver_<?=$uni?>=1" id="latest_scroll_<?=$uni?>">
<script language='javascript'>
var no_script_flag_<?=$uni?> = false ;
if ( navigator.appName == "Microsoft Internet Explorer" ) {
if ( navigator.appVersion.indexOf ( "MSIE 4" ) > -1 ) {
document.write ( roll_text_<?=$uni?>[0] ) ;
no_script_flag_<?=$uni?> = true ;
}
}
if ( no_script_flag_<?=$uni?> == false )
start_roll_<?=$uni?>();
</script>
</div>
<? } ?>
</td></tr>
<tr><td colspan=4 bgcolor=#EBEBEB height=1></td></tr>
</table>
문제가 되는 부분입니다..
$roll_text[$k] .= "<table><tr>";
$roll_text[$k] .= "<td><img src=\"{$g4[path]}/data/file/$bo_table/$image\" align=middle width=100 height=75 border=0> </td>"; // 이미지출력
$roll_text[$k] .= "<td>";
$roll_text[$k] .= $list[$i][wr_subject]; // 제목
$roll_text[$k] .= " ";
$roll_text[$k] .= " (";
$roll_text[$k] .= $list[$i][wr_hit]; // 히트수
$roll_text[$k] .= ")";
$roll_text[$k] .= "<br>";
$roll_text[$k] .= $list[$i][wr_name]; //작성자
$roll_text[$k] .= "<br>";
$roll_text[$k] .= $list[$i][datetime];
$roll_text[$k] .= "</td></tr>";
$roll_text[$k] .= "</td></tr></table>";
여기서 표를 삽입하지 않고 하면 한줄로 제목, 히트수, 작성자 등이 나와서 표를 이용하여 세 줄로 만들었습니다..
문제는 표를 삽입했더니 클릭이 안됀다는 것입니다...ㅡㅡ
어떻게 해야할지 모르겠네요..그냥 한줄로 쓸 수는 없고.....
아무쪼록 고수님들의 도움을 부탁드립니다..
초짜가 하려니 여기 저기 막히는게 많네요..쩝...
댓글 전체

우선 클릭이 안되는 부분만....
$roll_text[$k] .= "<a href=\"{$list[$i][href]}\">";
$roll_text[$k] .= $list[$i][wr_subject]; // 제목
$roll_text[$k] .= "</a>";
제목 출력 부분을 위와같이 해주시면 되겠네요....^^
부디 성공하시기를...^^
$roll_text[$k] .= "<a href=\"{$list[$i][href]}\">";
$roll_text[$k] .= $list[$i][wr_subject]; // 제목
$roll_text[$k] .= "</a>";
제목 출력 부분을 위와같이 해주시면 되겠네요....^^
부디 성공하시기를...^^