묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
다음이나 네이버처럼 실시간 뉴스 만드는 방법이 궁금합니다.
2006.04.14 12:36
<script language="javascript">
//Math.random()
var scrollerheight=100; // 스크롤러의 세로
var html,total_area=0,wait_flag=true;
var bMouseOver = 1;
var scrollspeed = 5; // Scrolling 속도
var waitingtime = 10000; // 멈추는 시간
var s_tmp = 0, s_amount = 20;
var scroll_content=new Array();
var startPanel=0, n_panel=0, i=0;
function startscroll()
{ // 스크롤 시작
i=0;
for (i in scroll_content)
n_panel++;
n_panel = n_panel -1 ;
startPanel = Math.round(Math.random()*n_panel);
if(startPanel == 0)
{
i=0;
for (i in scroll_content)
insert_area(total_area, total_area++); // area 삽입
}
else if(startPanel == n_panel)
{
insert_area(startPanel, total_area);
total_area++;
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area); // area 삽입
total_area++;
}
}
else if((startPanel > 0) || (startPanel < n_panel))
{
insert_area(startPanel, total_area);
total_area++;
for (i=startPanel+1; i<=n_panel; i++)
{
insert_area(i, total_area); // area 삽입
total_area++;
}
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area); // area 삽입
total_area++;
}
}
window.setTimeout("scrolling()",waitingtime);
}
function scrolling(){ // 실제로 스크롤 하는 부분
if (bMouseOver && wait_flag)
{
for (i=0;i<total_area;i++){
tmp = document.getElementById('scroll_area'+i).style;
tmp.top = parseInt(tmp.top)-scrollspeed;
if (parseInt(tmp.top) <= -scrollerheight){
tmp.top = scrollerheight*(total_area-1);
}
if (s_tmp++ > (s_amount-1)*scroll_content.length){
wait_flag=false;
window.setTimeout("wait_flag=true;s_tmp=0;",waitingtime);
}
}
}
window.setTimeout("scrolling()",1);
}
function insert_area(idx, n){ // area 삽입
html='<div style="left: 0px; width: 100%; position: absolute; top: '+(scrollerheight*n)+'px" id="scroll_area'+n+'">n';
html+=scroll_content[idx]+'n';
html+='</div>n';
document.write(html);
}
// 스크롤 내용
<?
$id = "news_news"; //불러낼 게시판 이름
$result = @mysql_query("select * from zetyx_board_$id where is_secret!='1' order by no desc limit 10"); // 최근에 게시된 게시물 중에서 10개만 뽑아와서 출력함
$i = 0;
$j = 0;
while($data=@mysql_fetch_array($result)) {
if($i==0) {
echo "scroll_content[".$j."]="";
}
echo "<li><a href='./bbs/view.php?id=$id&no=$data[no]'>".cut_str($data[subject], 30)."</a><br>"; //글자수 잘라서 표현
$i++;
if($i==5) { //불러낼 최근게시제목 수
echo "";nt";
$i = 0; $j++;
}
}
?>
</script>
<div style="width: 269px; height: 80px; position: absolute; overflow:hidden; top: 440px; visibility: visible;" onMouseOver="bMouseOver=0" onMouseOut="bMouseOver=1" id="scroll_image">
<script>startscroll();</script>
</div>
//Math.random()
var scrollerheight=100; // 스크롤러의 세로
var html,total_area=0,wait_flag=true;
var bMouseOver = 1;
var scrollspeed = 5; // Scrolling 속도
var waitingtime = 10000; // 멈추는 시간
var s_tmp = 0, s_amount = 20;
var scroll_content=new Array();
var startPanel=0, n_panel=0, i=0;
function startscroll()
{ // 스크롤 시작
i=0;
for (i in scroll_content)
n_panel++;
n_panel = n_panel -1 ;
startPanel = Math.round(Math.random()*n_panel);
if(startPanel == 0)
{
i=0;
for (i in scroll_content)
insert_area(total_area, total_area++); // area 삽입
}
else if(startPanel == n_panel)
{
insert_area(startPanel, total_area);
total_area++;
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area); // area 삽입
total_area++;
}
}
else if((startPanel > 0) || (startPanel < n_panel))
{
insert_area(startPanel, total_area);
total_area++;
for (i=startPanel+1; i<=n_panel; i++)
{
insert_area(i, total_area); // area 삽입
total_area++;
}
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area); // area 삽입
total_area++;
}
}
window.setTimeout("scrolling()",waitingtime);
}
function scrolling(){ // 실제로 스크롤 하는 부분
if (bMouseOver && wait_flag)
{
for (i=0;i<total_area;i++){
tmp = document.getElementById('scroll_area'+i).style;
tmp.top = parseInt(tmp.top)-scrollspeed;
if (parseInt(tmp.top) <= -scrollerheight){
tmp.top = scrollerheight*(total_area-1);
}
if (s_tmp++ > (s_amount-1)*scroll_content.length){
wait_flag=false;
window.setTimeout("wait_flag=true;s_tmp=0;",waitingtime);
}
}
}
window.setTimeout("scrolling()",1);
}
function insert_area(idx, n){ // area 삽입
html='<div style="left: 0px; width: 100%; position: absolute; top: '+(scrollerheight*n)+'px" id="scroll_area'+n+'">n';
html+=scroll_content[idx]+'n';
html+='</div>n';
document.write(html);
}
// 스크롤 내용
<?
$id = "news_news"; //불러낼 게시판 이름
$result = @mysql_query("select * from zetyx_board_$id where is_secret!='1' order by no desc limit 10"); // 최근에 게시된 게시물 중에서 10개만 뽑아와서 출력함
$i = 0;
$j = 0;
while($data=@mysql_fetch_array($result)) {
if($i==0) {
echo "scroll_content[".$j."]="";
}
echo "<li><a href='./bbs/view.php?id=$id&no=$data[no]'>".cut_str($data[subject], 30)."</a><br>"; //글자수 잘라서 표현
$i++;
if($i==5) { //불러낼 최근게시제목 수
echo "";nt";
$i = 0; $j++;
}
}
?>
</script>
<div style="width: 269px; height: 80px; position: absolute; overflow:hidden; top: 440px; visibility: visible;" onMouseOver="bMouseOver=0" onMouseOut="bMouseOver=1" id="scroll_image">
<script>startscroll();</script>
</div>