웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
3D 효과의 원형 거울을 띄우자.
2003.11.21 15:05
제목이 마땅치 않아서리...쩝.
큰 원형 거울안에 사진이 보이는데 그 원형 거울이 화면 중앙을 중심으로 움직여요.
3차원으로....설명이 제대로 된건가?
암튼 맨 아래 샘플 주소 놓았으니 보시던지...
아래의 소스중에 한글로 되어있는 부분을 꼭 읽으세요.
★ 설명시작★
일단 헤더부분은 아래처럼 하세요.
사실 메타는 필요 없을 수도 있지만..
<head>
<meta NAME="keywords" CONTENT="DHTML, JavaScript, VML, 3d, slideshow, animation,gif, image, fade, fade, tile download, free, script, applet">
<meta NAME="description" CONTENT="This is a very spectacular slideshow. The script makes your images float and rotate through your webpage. Each image can be linked. Selectable form (circle or rectangle). Full effect with Internet Explorer 5x/6x or higher. Floating effect with Netscape Navigator 6x/7x.">
<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
<style>
v:* { behavior: url(#default#VML); }
</style>
</head>
아래는 바디부분입니다.
<body>
<SCRIPT>
// 그림 주소는 여러분걸로 하세요. 그림갯수는 여러분 맘대로..
var slideurl=new Array()
slideurl[0]="http://그림주소/그림파일1.jpg"
slideurl[1]="http://그림주소/그림파일2.jpg"
slideurl[2]="http://그림주소/그림파일3.jpg"
// 각 이미지를 누르면 볼 수 있는 링크를 걸수도 있죠.
// 링크걸기 싫으면 걍 "#"로 표시하세요.
var slidelink=new Array()
slidelink[0]="http://julian.gana4u.co.kr"
slidelink[1]="#"
slidelink[2]="http://www.google.com"
// 링크를 걸었을때 새창으로 하려면 blank 알죠?
// "_blank" or "_top" or "_parent" or "_self" 등등.
var slidetarget=new Array()
slidetarget[0]="_blank"
slidetarget[1]="_self"
slidetarget[2]="_top"
// 3D-두께 (pixels)
var backdepth=6
// 테두리 색깔
var fillcolor="#666666"
// Netscape Navigator 사용자를 위한거, 그냥 두셈.
var standstill=3
// 이미지 형태
// 원형은 "oval" 사각형은 "rect"
var imageform="oval"
// 아래는 절대 건들지 마세요.
var slidewidth=1
var slideheight=1
var ns6=document.getElementById&&!document.all?1:0
var opera=navigator.userAgent.match(/Opera/)
var ie5=document.getElementById&&document.all&&!opera?1:0
standstill*=1000
var floatingspeed=1
var tempo=20
var numberofimages=slideurl.length-1
var stepx=new Array()
var stepy=new Array()
for (i=0;i<=numberofimages;i++) {
stepx[i]=randommakerNS(floatingspeed)
stepy[i]=randommakerNS(floatingspeed)
}
var imgwidth=new Array()
var imgheight=new Array()
for (i=0;i<=numberofimages;i++) {
imgwidth[i]=10
imgheight[i]=10
}
var x,y
var marginbottom
var marginleft=0
var margintop=0
var marginright
var timer
var i_fadestrength=new Array()
var i_fadestep=new Array()
var i_fadenow=new Array()
var i_fadenowmax=new Array()
for (i=0;i<=slideurl.length;i++) {
i_fadenowmax[i]=2
i_fadestrength[i]=randommakerNS(99)
i_fadestep[i]=1
i_fadenow[i]=0
}
var spancontent=new Array()
var i_spancontent=0
var imgpreload=new Array()
for (i=0;i<=slideurl.length;i++) {
imgpreload[i]=new Image()
imgpreload[i].src=slideurl[i]
}
for (i=0;i<=numberofimages;i++) {
spancontent[i]="<a href='"+slidelink[i]+"' target='"+slidetarget[i]+"'><img src='"+slideurl[i]+"' border='0'></a>"
}
var i_angle1=0
var i_size=1
var i_pic=0
var posleft=0
var postop=0
var x_extrusionangle=0
var y_extrusionangle=0
var x_rotationcenter=0
var y_rotationcenter=0
var pagewidth
var pageheight
function initNS() {
marginbottom=window.innerHeight-11
marginright=window.innerWidth-11
var thisspan=document.getElementById('span0')
thisspan.innerHTML=spancontent[0]
var thisspan=document.getElementById('span0')
imgwidth[0]=parseInt(thisspan.offsetWidth)
imgheight[0]=parseInt(thisspan.offsetHeight)
var maxleftstart=marginright-imgwidth[0]
var maxtopstart=marginbottom-imgheight[0]
var thisspan=document.getElementById('span0').style
thisspan.left=parseInt(thisspan.left)+randommakerNS(maxleftstart)
thisspan.top=parseInt(thisspan.top)+randommakerNS(maxtopstart)
thisspan.visibility="visible"
checkmovementNS()
}
function randommakerNS(range) {
rand=Math.floor(range*Math.random())
if (rand==0) {rand=Math.ceil(range/2)}
return rand
}
function checkmovementNS() {
checkpositionNS()
movepicturesNS()
timer=setTimeout("checkmovementNS()",tempo)
}
function movepicturesNS() {
var thisspan=document.getElementById('span0').style
thisspan.left=parseInt(thisspan.left)+stepx[0]
thisspan.top=parseInt(thisspan.top)+stepy[0]
i_fadenow[0]++
if (i_fadenow[0]>=i_fadenowmax[0]) {
i_fadenow[0]=0
if (i_fadestrength[0]>=100) {i_fadestep[0]=i_fadestep[0]*-1}
else if (i_fadestrength[0]<=0) {
i_fadestep[0]=i_fadestep[0]*-1
i_spancontent++
if (i_spancontent>=spancontent.length) {i_spancontent=0}
document.getElementById('span0').innerHTML=spancontent[i_spancontent]
}
}
i_fadestrength[0]+=i_fadestep[0]
document.getElementById('span0').style.MozOpacity=Math.round(i_fadestrength[0])/100
}
function checkpositionNS() {
imgwidth[0]=parseInt(document.getElementById('span0').offsetWidth)
imgheight[0]=parseInt(document.getElementById('span0').offsetHeight)
var thisspan=document.getElementById('span0').style
var leftx=parseInt(thisspan.left)
var topy=parseInt(thisspan.top)
if (leftx>marginright-imgwidth[0]-floatingspeed) {
thisspan.left=leftx-Math.abs(stepx[0]+1)
stepx[0]=randommakerNS(floatingspeed)*-1
}
if (leftx<marginleft) {
thisspan.left=leftx+Math.abs(stepx[0])
stepx[0]=randommakerNS(floatingspeed)
}
if (topy>marginbottom-imgheight[0]-floatingspeed) {
thisspan.top=topy-Math.abs(stepy[0])
stepy[0]=randommakerNS(floatingspeed)*-1
}
if (topy<margintop) {
thisspan.top=topy+Math.abs(stepy[0])
stepy[0]=randommakerNS(floatingspeed)
}
}
function initIE() {
var i_preload=0
for (i=0;i<=slideurl.length-1;i++) {
var imgref=eval("document.n"+i)
if (imgref.complete) {i_preload++}
}
if (i_preload>=slideurl.length-1) {
slidewidth=document.getElementById('spn1').offsetWidth
slideheight=document.getElementById('spn1').offsetHeight
pagewidth=document.body.clientWidth
pageheight=document.body.clientHeight
document.getElementById('rectid').style.width=slidewidth
document.getElementById('rectid').style.height=slideheight
posleft=(pagewidth-slidewidth)/2
postop=(pageheight-slideheight)/2
x_rotationcenter=(posleft/slidewidth)/2
y_rotationcenter=(postop/slideheight)/2
var rotationcenter=0+","+y_rotationcenter+","+x_rotationcenter
document.getElementById('rectid').style.left=posleft
document.getElementById('rectid').style.top=postop
document.getElementById('extrusionid').rotationcenter=rotationcenter
rotateIE()
}
else {
var timer=setTimeout("initIE()",200)
}
}
function rotateIE() {
i_angle1+=1
if (i_angle1>=360) {
i_angle1=0
}
if (i_angle1==127) {
i_pic++
if (i_pic>=slideurl.length) {i_pic=0}
document.getElementById('fillid').src=slideurl[i_pic]
}
document.getElementById('rectid').style.rotation=i_angle1
document.getElementById('extrusionid').rotationangle=i_angle1+","+i_angle1
var timer=setTimeout("rotateIE()",30)
}
function openpageIE() {
if (slidetarget[i_pic]=="_blank") {
window.open(slidelink[i_pic])
}
else if (slidetarget[i_pic]=="_self") {
document.location.href(slidelink[i_pic])
}
else if (slidetarget[i_pic]=="_top" || slidetarget[i_pic]=="_parent") {
top.location.href(slidelink[i_pic])
}
}
if (ns6) {
document.write("<span id='span0' style='position:absolute;top:0px;left:0px;filter:alpha(opacity=0);-moz-opacity:0'></span>")
document.close()
window.onload=initNS
}
if (ie5) {
document.write('<div id="preloadimages" style="position:absolute;left:0px;top:-5px;visibility:hidden">')
for (i=0;i<=slideurl.length-1;i++) {
document.write('<span id="spn'+i+'" style="position:absolute;width:2px;left:0px;top:0px;">')
document.write('<img src="'+slideurl[i]+'" name="n'+i+'">')
document.write('</span>')
}
document.write('</div>')
document.write('<v:'+imageform+' id="rectid" style="position:absolute;top:0;left:0;width:'+slidewidth+';height:'+slideheight+'" onClick="openpageIE()">')
document.write('<v:extrusion id="extrusionid" on="true" type="perspective" color="'+fillcolor+'" rotationcenter="0,0,0" backdepth="'+backdepth+'" diffusity="2.5" metal="true">'+ ')
document.write('</v:extrusion>')
document.write('<v:fill id="fillid" opacity="100%" color="'+fillcolor+'" type="frame" src="'+slideurl[0]+'"/>')
document.write('</v:'+imageform+'>')
window.onload=initIE
}
</script>
</body>
★설명 끝★
2003년 11월 21일 줄리앙 씀.
샘플은 여기 가보세요.(주소 복사하실때 연결해서 놓으셔야 해요 부득이 두줄로 표시합니다만....)
http://free2.ttboard.com/lovemeet/ttboard/ttboard.cgi?
category=&search_method=&search_mode=&search_word=&act=view&code=40&bname=WEBSTUDY&page=1&SearchBlock=1"
큰 원형 거울안에 사진이 보이는데 그 원형 거울이 화면 중앙을 중심으로 움직여요.
3차원으로....설명이 제대로 된건가?
암튼 맨 아래 샘플 주소 놓았으니 보시던지...
아래의 소스중에 한글로 되어있는 부분을 꼭 읽으세요.
★ 설명시작★
일단 헤더부분은 아래처럼 하세요.
사실 메타는 필요 없을 수도 있지만..
<head>
<meta NAME="keywords" CONTENT="DHTML, JavaScript, VML, 3d, slideshow, animation,gif, image, fade, fade, tile download, free, script, applet">
<meta NAME="description" CONTENT="This is a very spectacular slideshow. The script makes your images float and rotate through your webpage. Each image can be linked. Selectable form (circle or rectangle). Full effect with Internet Explorer 5x/6x or higher. Floating effect with Netscape Navigator 6x/7x.">
<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
<style>
v:* { behavior: url(#default#VML); }
</style>
</head>
아래는 바디부분입니다.
<body>
<SCRIPT>
// 그림 주소는 여러분걸로 하세요. 그림갯수는 여러분 맘대로..
var slideurl=new Array()
slideurl[0]="http://그림주소/그림파일1.jpg"
slideurl[1]="http://그림주소/그림파일2.jpg"
slideurl[2]="http://그림주소/그림파일3.jpg"
// 각 이미지를 누르면 볼 수 있는 링크를 걸수도 있죠.
// 링크걸기 싫으면 걍 "#"로 표시하세요.
var slidelink=new Array()
slidelink[0]="http://julian.gana4u.co.kr"
slidelink[1]="#"
slidelink[2]="http://www.google.com"
// 링크를 걸었을때 새창으로 하려면 blank 알죠?
// "_blank" or "_top" or "_parent" or "_self" 등등.
var slidetarget=new Array()
slidetarget[0]="_blank"
slidetarget[1]="_self"
slidetarget[2]="_top"
// 3D-두께 (pixels)
var backdepth=6
// 테두리 색깔
var fillcolor="#666666"
// Netscape Navigator 사용자를 위한거, 그냥 두셈.
var standstill=3
// 이미지 형태
// 원형은 "oval" 사각형은 "rect"
var imageform="oval"
// 아래는 절대 건들지 마세요.
var slidewidth=1
var slideheight=1
var ns6=document.getElementById&&!document.all?1:0
var opera=navigator.userAgent.match(/Opera/)
var ie5=document.getElementById&&document.all&&!opera?1:0
standstill*=1000
var floatingspeed=1
var tempo=20
var numberofimages=slideurl.length-1
var stepx=new Array()
var stepy=new Array()
for (i=0;i<=numberofimages;i++) {
stepx[i]=randommakerNS(floatingspeed)
stepy[i]=randommakerNS(floatingspeed)
}
var imgwidth=new Array()
var imgheight=new Array()
for (i=0;i<=numberofimages;i++) {
imgwidth[i]=10
imgheight[i]=10
}
var x,y
var marginbottom
var marginleft=0
var margintop=0
var marginright
var timer
var i_fadestrength=new Array()
var i_fadestep=new Array()
var i_fadenow=new Array()
var i_fadenowmax=new Array()
for (i=0;i<=slideurl.length;i++) {
i_fadenowmax[i]=2
i_fadestrength[i]=randommakerNS(99)
i_fadestep[i]=1
i_fadenow[i]=0
}
var spancontent=new Array()
var i_spancontent=0
var imgpreload=new Array()
for (i=0;i<=slideurl.length;i++) {
imgpreload[i]=new Image()
imgpreload[i].src=slideurl[i]
}
for (i=0;i<=numberofimages;i++) {
spancontent[i]="<a href='"+slidelink[i]+"' target='"+slidetarget[i]+"'><img src='"+slideurl[i]+"' border='0'></a>"
}
var i_angle1=0
var i_size=1
var i_pic=0
var posleft=0
var postop=0
var x_extrusionangle=0
var y_extrusionangle=0
var x_rotationcenter=0
var y_rotationcenter=0
var pagewidth
var pageheight
function initNS() {
marginbottom=window.innerHeight-11
marginright=window.innerWidth-11
var thisspan=document.getElementById('span0')
thisspan.innerHTML=spancontent[0]
var thisspan=document.getElementById('span0')
imgwidth[0]=parseInt(thisspan.offsetWidth)
imgheight[0]=parseInt(thisspan.offsetHeight)
var maxleftstart=marginright-imgwidth[0]
var maxtopstart=marginbottom-imgheight[0]
var thisspan=document.getElementById('span0').style
thisspan.left=parseInt(thisspan.left)+randommakerNS(maxleftstart)
thisspan.top=parseInt(thisspan.top)+randommakerNS(maxtopstart)
thisspan.visibility="visible"
checkmovementNS()
}
function randommakerNS(range) {
rand=Math.floor(range*Math.random())
if (rand==0) {rand=Math.ceil(range/2)}
return rand
}
function checkmovementNS() {
checkpositionNS()
movepicturesNS()
timer=setTimeout("checkmovementNS()",tempo)
}
function movepicturesNS() {
var thisspan=document.getElementById('span0').style
thisspan.left=parseInt(thisspan.left)+stepx[0]
thisspan.top=parseInt(thisspan.top)+stepy[0]
i_fadenow[0]++
if (i_fadenow[0]>=i_fadenowmax[0]) {
i_fadenow[0]=0
if (i_fadestrength[0]>=100) {i_fadestep[0]=i_fadestep[0]*-1}
else if (i_fadestrength[0]<=0) {
i_fadestep[0]=i_fadestep[0]*-1
i_spancontent++
if (i_spancontent>=spancontent.length) {i_spancontent=0}
document.getElementById('span0').innerHTML=spancontent[i_spancontent]
}
}
i_fadestrength[0]+=i_fadestep[0]
document.getElementById('span0').style.MozOpacity=Math.round(i_fadestrength[0])/100
}
function checkpositionNS() {
imgwidth[0]=parseInt(document.getElementById('span0').offsetWidth)
imgheight[0]=parseInt(document.getElementById('span0').offsetHeight)
var thisspan=document.getElementById('span0').style
var leftx=parseInt(thisspan.left)
var topy=parseInt(thisspan.top)
if (leftx>marginright-imgwidth[0]-floatingspeed) {
thisspan.left=leftx-Math.abs(stepx[0]+1)
stepx[0]=randommakerNS(floatingspeed)*-1
}
if (leftx<marginleft) {
thisspan.left=leftx+Math.abs(stepx[0])
stepx[0]=randommakerNS(floatingspeed)
}
if (topy>marginbottom-imgheight[0]-floatingspeed) {
thisspan.top=topy-Math.abs(stepy[0])
stepy[0]=randommakerNS(floatingspeed)*-1
}
if (topy<margintop) {
thisspan.top=topy+Math.abs(stepy[0])
stepy[0]=randommakerNS(floatingspeed)
}
}
function initIE() {
var i_preload=0
for (i=0;i<=slideurl.length-1;i++) {
var imgref=eval("document.n"+i)
if (imgref.complete) {i_preload++}
}
if (i_preload>=slideurl.length-1) {
slidewidth=document.getElementById('spn1').offsetWidth
slideheight=document.getElementById('spn1').offsetHeight
pagewidth=document.body.clientWidth
pageheight=document.body.clientHeight
document.getElementById('rectid').style.width=slidewidth
document.getElementById('rectid').style.height=slideheight
posleft=(pagewidth-slidewidth)/2
postop=(pageheight-slideheight)/2
x_rotationcenter=(posleft/slidewidth)/2
y_rotationcenter=(postop/slideheight)/2
var rotationcenter=0+","+y_rotationcenter+","+x_rotationcenter
document.getElementById('rectid').style.left=posleft
document.getElementById('rectid').style.top=postop
document.getElementById('extrusionid').rotationcenter=rotationcenter
rotateIE()
}
else {
var timer=setTimeout("initIE()",200)
}
}
function rotateIE() {
i_angle1+=1
if (i_angle1>=360) {
i_angle1=0
}
if (i_angle1==127) {
i_pic++
if (i_pic>=slideurl.length) {i_pic=0}
document.getElementById('fillid').src=slideurl[i_pic]
}
document.getElementById('rectid').style.rotation=i_angle1
document.getElementById('extrusionid').rotationangle=i_angle1+","+i_angle1
var timer=setTimeout("rotateIE()",30)
}
function openpageIE() {
if (slidetarget[i_pic]=="_blank") {
window.open(slidelink[i_pic])
}
else if (slidetarget[i_pic]=="_self") {
document.location.href(slidelink[i_pic])
}
else if (slidetarget[i_pic]=="_top" || slidetarget[i_pic]=="_parent") {
top.location.href(slidelink[i_pic])
}
}
if (ns6) {
document.write("<span id='span0' style='position:absolute;top:0px;left:0px;filter:alpha(opacity=0);-moz-opacity:0'></span>")
document.close()
window.onload=initNS
}
if (ie5) {
document.write('<div id="preloadimages" style="position:absolute;left:0px;top:-5px;visibility:hidden">')
for (i=0;i<=slideurl.length-1;i++) {
document.write('<span id="spn'+i+'" style="position:absolute;width:2px;left:0px;top:0px;">')
document.write('<img src="'+slideurl[i]+'" name="n'+i+'">')
document.write('</span>')
}
document.write('</div>')
document.write('<v:'+imageform+' id="rectid" style="position:absolute;top:0;left:0;width:'+slidewidth+';height:'+slideheight+'" onClick="openpageIE()">')
document.write('<v:extrusion id="extrusionid" on="true" type="perspective" color="'+fillcolor+'" rotationcenter="0,0,0" backdepth="'+backdepth+'" diffusity="2.5" metal="true">'+ ')
document.write('</v:extrusion>')
document.write('<v:fill id="fillid" opacity="100%" color="'+fillcolor+'" type="frame" src="'+slideurl[0]+'"/>')
document.write('</v:'+imageform+'>')
window.onload=initIE
}
</script>
</body>
★설명 끝★
2003년 11월 21일 줄리앙 씀.
샘플은 여기 가보세요.(주소 복사하실때 연결해서 놓으셔야 해요 부득이 두줄로 표시합니다만....)
http://free2.ttboard.com/lovemeet/ttboard/ttboard.cgi?
category=&search_method=&search_mode=&search_word=&act=view&code=40&bname=WEBSTUDY&page=1&SearchBlock=1"
댓글 6
-
Zective
2003.11.21 18:29
마우스가 도큐멘트 안에 있을 때 디버그 창이 무한으로 뜨는 군요...-_- -
줄리앙
2003.11.22 21:27
글쎄요..제가 올린 샘플을 보시면 아시겠지만 전혀 그런 현상이 없는데요..
디버그 창이 뜨는 현상을 직접 겪지못해서 시원한 답을 드리지 못하네요. ^^. -
시주니빠
2003.11.23 14:55
동그라미 사이즈 줄이려면 어케 해요?
그리고 회전 스피드를 조금 높이고 싶은데...그것도 좀 가르쳐 주세요 -
줄리앙
2003.11.24 14:21
동그라미 사이즈를 줄이려면 그림 자체를 작은 걸 쓰세요.
회전 스피드는 바꿀 수는 있지만 피부적으로 크게 와 닿지를 않아서리.. -
김도진
2003.11.29 15:38
본문 소스중 141 번 째 라인에 저 부분 수정 해보세요...
뭐 줄리앙님이 격지 못했다는건 그쪽 피씨에 비주얼 같은 뭐 디버그 프로그램이 안깔려 있어서
안뜨는듯 싶네요.
<BODY onMouseMove="scrolldir()"><CENTER> -
남상규
2003.12.31 18:09
저희 집도 비베가 깔렸는데 왜 안그럴까요?-_-;;
제목 | 글쓴이 | 날짜 |
---|---|---|
들어갈때 시작페이지 설정하는거... [2] | 쉿!비밀 | 2003.12.17 |
소스보기를 일부 차단하는 방법입니다. [12] | Juny. | 2003.12.12 |
오른버튼 누를때 메뉴 뜨게하기(깔끔버전) [5] | 럽 | 2003.12.09 |
소스연구1 테이블 자동으로 늘었다 커지기 태클환영 [9] | 박한웅 | 2003.12.04 |
크리스마스 날짜 카운터 [1] | keymove | 2003.12.04 |
익스플로러에서 인쇄 누르면 페이지 이동.... [3] | 조한웅 | 2003.11.28 |
3D 효과의 원형 거울을 띄우자. [6] | 줄리앙 | 2003.11.21 |
팝업공지창 다시 안뜨게 하는 소스[날짜지정가능] [17] | lemin | 2003.11.20 |
자바로 만들어진 계산기 [1] | 현규웅 | 2003.11.20 |
동영상 오른쪽 버튼 방지 소스 입니다... [9] | 김성목 | 2003.11.15 |
플래시느낌의 유동적인 메뉴 [9] | jabusim | 2003.11.13 |
심플한 원단위를 콤마로 나타내주기 [2] | zentoo.com | 2003.11.11 |
날짜카운터 숫자로만 입력하자. [3] | TechnoKevin™ | 2003.11.08 |
정말 멋있는 글자 변환 스크립트 [12] | sythesis | 2003.11.07 |
자바스크립트로 작성한 그림맞추기 퍼즐게임 [2] | 김별 | 2003.11.05 |
자바스크립트로 윈도우 흉내내기 (?) [15] | 뒹굴리스트 | 2003.11.03 |
마우스 이벤트 발생시 문서 상,하단으로 이동 [3] | RedEye(kaist) | 2003.10.30 |
클릭하면 홈페이지를 시작페이지로 하는 소스... [7] | 젤군 | 2003.10.28 |
식대 계산기... ^^ [3] | 김주형 | 2003.10.27 |
더 이상의 필터링은 없다!!! [10] | 미친개 | 2003.10.26 |