본문 바로가기

javascript

배너로 사용할 수 있는 다이나믹 자바 버튼

[스크립트]

<body OnLoad="StartHeadliner()">
<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available online from -->
<!-- The JavaScript Source!! http://javascriptsource.com -->

<!-- Original:  Jan Pijnacker <Jan_P@dds.nl> -->
<!-- Website :  http://www.piaster.nl/perspicacity/js/headliner -->

<!-- Begin
typeWriterWait=120                // Typewriter delay
blinkTextWait=1000           // Blinking delay
blinkSpacesWait=300         // Blinking 'blank-spaces' delay
blinkMax=3                         // how many times to blink
expandWait=100                  // expanding headliner delay
scrollWait=90                // scrolling headliner delay
scrollWidth=34                 // characters in scroll display
randomLines=false                // randomly choose lines?  (true or false)
lineMax=8                        // how many lines you have
lines=new Array(lineMax)

// Use this format for all the lines below:
// (display text, url or mailto, frame name, effect, delay time)

lines[1]=new Line("The JavaScript Headliner!", "http://www.piaster.nl/perspicacity/js/headliner", "", Blink, 500)
lines[2]=new Line("This is a great JavaScript example - appropriately named ' The JavaScript Headliner ' !", "", "", Scroll, 100)
lines[3]=new Line("Wouldn't this be good on your site?", "http://www.howpc.com/", "", Static, 3500)
lines[4]=new Line("Many ways to present information....", "", "", Expand, 2000)
lines[5]=new Line("Each message can even take the visitor to different a URL when clicked !", "", "", Scroll, 3000)
lines[6]=new Line("Click now to email the author", "mailto:Jan_P@dds.nl?subject=The Headliner", "", TypeWriter, 1500)
lines[7]=new Line("Or click now to visit her website", "http://www.piaster.nl/perspicacity/js/headliner", "", TypeWriter, 2500)
lines[8]=new Line("Or here to go back to Messages", "http://messages.javascriptsource.com", "", Static, 3500)

// Don't change these variables below  :-)
lineText=""
timerID=null
timerRunning=false
spaces=""
charNo=0
charMax=0
charMiddle=0
lineNo=0
lineWait=0

// ************************************************************
// The functions to get things going
// ************************************************************

// Define a line object
function Line(text, url, frame, type, wait) {
        this.text=text
        this.url=url
        this.frame=frame
        this.Display=type
        this.wait=wait
}

// Fill a string with n chars c
function StringFill(c, n) {
        var s=""
        while (--n >= 0) {
                s+=c
        }
        return s
}

// Returns a integer number between 1 and max that differs from the old one
function getNewRandomInteger(oldnumber, max)
{
        var n=Math.floor(Math.random() * (max - 1) + 1)
        if (n >= oldnumber) {
                n++
        }
        return n
}

// Returns a integer number between 1 and max
function getRandomInteger(max)
{
        var n=Math.floor(Math.random() * max + 1)
        return n
}

// Jump to the specified url in the specified frame
function GotoUrl(url, frame) {
        if (frame != '') {
                if (frame == 'self') self.location.href=url
                else if (frame == 'parent') parent.location.href=url
                else if (frame == 'top') top.location.href=url
                else {
                        s=eval(top.frames[frame])
                        if (s != null) top.eval(frame).location.href=url
                        else window.open(url, frame, "toolbar=yes,status=yes,scrollbars=yes")
                }
        }
        else window.location.href=url
}

function Static() {
        document.formDisplay.buttonFace.value=this.text
        timerID=setTimeout("ShowNextLine()", this.wait)
}

function TypeWriter() {
        lineText=this.text
        lineWait=this.wait
        charMax=lineText.length
        spaces=StringFill(" ", charMax)
        TextTypeWriter()
}

function TextTypeWriter() {
        if (charNo <= charMax) {
                document.formDisplay.buttonFace.value=lineText.substring(0, charNo)+spaces.substring(0, charMax-charNo)
                charNo++
                timerID=setTimeout("TextTypeWriter()", typeWriterWait)
        }
        else {
                charNo=0
                timerID=setTimeout("ShowNextLine()", lineWait)
        }
}

function Blink() {
        lineText=this.text
        charMax=lineText.length
        spaces=StringFill(" ", charMax)
        lineWait=this.wait
        TextBlink()
}

function TextBlink() {
        if (charNo <= blinkMax * 2) {
                if ((charNo % 2) == 1) {
                        document.formDisplay.buttonFace.value=lineText
                        blinkWait=blinkTextWait
                }
                else {
                        document.formDisplay.buttonFace.value=spaces
                        blinkWait=blinkSpacesWait
                }
                charNo++
                timerID=setTimeout("TextBlink()", blinkWait)
        }
        else {
                charNo=0
                timerID=setTimeout("ShowNextLine()", lineWait)
        }
}

function Expand() {
        lineText=this.text
        charMax=lineText.length
        charMiddle=Math.round(charMax / 2)
        lineWait=this.wait
        TextExpand()
}

function TextExpand() {
        if (charNo <= charMiddle) {
                document.formDisplay.buttonFace.value=lineText.substring(charMiddle - charNo, charMiddle + charNo)
                charNo++
                timerID=setTimeout("TextExpand()", expandWait)
        }
        else {
                charNo=0
                timerID=setTimeout("ShowNextLine()", lineWait)
        }
}

function Scroll() {
        spaces=StringFill(" ", scrollWidth)
        lineText=spaces+this.text
        charMax=lineText.length
        lineText+=spaces
        lineWait=this.wait
        TextScroll()
}

function TextScroll() {
        if (charNo <= charMax) {
                document.formDisplay.buttonFace.value=lineText.substring(charNo, scrollWidth+charNo)
                charNo++
                timerID=setTimeout("TextScroll()", scrollWait)
        }
        else {
                charNo=0
                timerID=setTimeout("ShowNextLine()", lineWait)
        }
}

function StartHeadliner() {
        StopHeadliner()
        timerID=setTimeout("ShowNextLine()", 2000)
        timerRunning=true
}

function StopHeadliner() {
        if (timerRunning) {
                clearTimeout(timerID)
                timerRunning=false
        }
}

function ShowNextLine() {
        if (randomLines) lineNo=getNewRandomInteger(lineNo, lineMax)
        else (lineNo < lineMax) ? lineNo++ : lineNo=1
        lines[lineNo].Display()
}

function LineClick(lineNo) {
        document.formDisplay.buttonFace.blur()
        if (lineNo > 0) GotoUrl(lines[lineNo].url, lines[lineNo].frame)
}

// Do not change the name of the form or the button!
with (document) {
        write('<center><form name="formDisplay"><input class="stHeadliner" type="button"')
        write('name="buttonFace" value="The Perspicacity Headliner"')
        write('onClick="LineClick(lineNo)"></input></form></center>')
}

// End -->
</SCRIPT>