আপনার ওয়েব সাইটটা কত দ্রুত জনপ্রিয় হবে তা একদিকে যেমন সাইটের কন্টেন্ট এর উপর নির্ভর করে অন্যদিকে সাইটের ইন্টারফেসের ডিজাইনের উপরও নির্ভর করে। আমরা বিভিন্ন সাউটে পেজ ওপেন করার সাথে সাথেই বিশেষ কিছু লেখা এনিমেশন হতে দেখি, যা ভিজিটরদের জন্য কোন গুরুত্বপূর্ণ মেসেজ, কোন বিশেষ অফার বা কোন বিশেষ খবরের হেডলাইন হতে পারে। যদি ঐ খবরটি সাধারণভাবে ওয়েব পেজের কোন একটি অংশে সাধারণ ভাবে রাখা হয় তাহলে হয়তবা অনেকেরই দৃষ্টি এরিয়ে যেতে পারে।কিন্তু এতে যদি বিশেষ কোন টেক্সট ইফেক্ট ব্যবহার করা হয় তাহলে তা বেশ আকর্ষণীয় হবে এবং সহজেই সকলের নজরে আসবে।

আমরা দেখি কিভাবে এ ধরণের টেক্সট ইফেক্ট তৈরি করা যায়।

একবার দেখে নেয়া যাক আমরা কি তৈরি করতে যাচ্ছি

প্রয়োজনীয় JavaScript কোড

/*
An object-oriented Typing Text script, to allow for multiple instances.
A script that causes any text inside any text element to be "typed out", one letter at a time. Note that any HTML tags will not be included in the typed output, to prevent them from causing problems. Tested in Firefox v1.5.0.1, Opera v8.52, Konqueror v3.5.1, and IE v6.
Browsers that do not support this script will simply see the text fully displayed from the start, including any HTML tags.

Functions defined:
TypingText(element, [interval = 100,] [cursor = "",] [finishedCallback = function(){return}]):
Create a new TypingText object around the given element.  Optionally
specify a delay between characters of interval milliseconds.
cursor allows users to specify some HTML to be appended to the end of
the string whilst typing.  Optionally, can also be a function which
accepts the current text as an argument.  This allows the user to
create a "dynamic cursor" which changes depending on the latest character
or the current length of the string.
finishedCallback allows advanced scripters to supply a function
to be executed on finishing.  The function must accept no arguments.

TypingText.run():
Run the effect.

static TypingText.runAll():
Run all TypingText-enabled objects on the page.
*/

TypingText = function(element, interval, cursor, finishedCallback) {
if((typeof document.getElementById == "undefined") || (typeof element.innerHTML == "undefined")) {
this.running = true;    // Never run.
return;
}
this.element = element;
this.finishedCallback = (finishedCallback ? finishedCallback : function() { return; });
this.interval = (typeof interval == "undefined" ? 100 : interval);
this.origText = this.element.innerHTML;
this.unparsedOrigText = this.origText;
this.cursor = (cursor ? cursor : "");
this.currentText = "";
this.currentChar = 0;
this.element.typingText = this;
if(this.element.id == "") this.element.id = "typingtext" + TypingText.currentIndex++;
TypingText.all.push(this);
this.running = false;
this.inTag = false;
this.tagBuffer = "";
this.inHTMLEntity = false;
this.HTMLEntityBuffer = "";
}
TypingText.all = new Array();
TypingText.currentIndex = 0;
TypingText.runAll = function() {
for(var i = 0; i < TypingText.all.length; i++) TypingText.all[i].run();
}
TypingText.prototype.run = function() {
if(this.running) return;
if(typeof this.origText == "undefined") {
setTimeout("document.getElementById('" + this.element.id + "').typingText.run()", this.interval);    // We haven't finished loading yet.  Have patience.
return;
}
if(this.currentText == "") this.element.innerHTML = "";
//  this.origText = this.origText.replace(/<([^<])*>/, "");     // Strip HTML from text.
if(this.currentChar < this.origText.length) {
if(this.origText.charAt(this.currentChar) == "<" && !this.inTag) {
this.tagBuffer = "<";
this.inTag = true;
this.currentChar++;
this.run();
return;
} else if(this.origText.charAt(this.currentChar) == ">" && this.inTag) {
this.tagBuffer += ">";
this.inTag = false;
this.currentText += this.tagBuffer;
this.currentChar++;
this.run();
return;
} else if(this.inTag) {
this.tagBuffer += this.origText.charAt(this.currentChar);
this.currentChar++;
this.run();
return;
} else if(this.origText.charAt(this.currentChar) == "&" && !this.inHTMLEntity) {
this.HTMLEntityBuffer = "&";
this.inHTMLEntity = true;
this.currentChar++;
this.run();
return;
} else if(this.origText.charAt(this.currentChar) == ";" && this.inHTMLEntity) {
this.HTMLEntityBuffer += ";";
this.inHTMLEntity = false;
this.currentText += this.HTMLEntityBuffer;
this.currentChar++;
this.run();
return;
} else if(this.inHTMLEntity) {
this.HTMLEntityBuffer += this.origText.charAt(this.currentChar);
this.currentChar++;
this.run();
return;
} else {
this.currentText += this.origText.charAt(this.currentChar);
}
this.element.innerHTML = this.currentText;
this.element.innerHTML += (this.currentChar < this.origText.length - 1 ? (typeof this.cursor == "function" ? this.cursor(this.currentText) : this.cursor) : "");
this.currentChar++;
setTimeout("document.getElementById('" + this.element.id + "').typingText.run()", this.interval);
} else {
this.currentText = "";
this.currentChar = 0;
this.running = false;
this.finishedCallback();
}
}

একটা Notepad Open করে উপরের Code টুকু লিখুন । File মেনু থেকে Save as এ ক্লিক করে File name হিসেবে TypingText. js নাম দিয়ে, Save as type হিসেবে All files সিলেক্ট করে এরপর Save বাটনে ক্লিক করে Save করুন।

প্রয়োজনীয় HTML কোড

<html>
<head>

<script type="text/javascript" src="TypingText.js">

</script>

<style>
body{background:black;
text-align:center;}
h1{color:red;}
#example2{font-size:18px;
color:#0f0;}
</style>

</head>
<body>

<div id="example1"><h1>Welcome to Bangladesh.</h1> </div>
<p id="example2">Bangladesh is a South-Asian country bounded by <br /> India from north,
east and west and by the Bay of Bengal and Mayanmer from <br /> the  south and south-east.
It is a very beautiful country. </p>

<script type="text/javascript">
//Define first typing example:
new TypingText(document.getElementById("example1"));

//Define second typing example (use "slashing" cursor at the end):
new TypingText(document.getElementById("example2"), 100, function(i){ var ar = new Array("\\", "|", "/", "-"); return " " + ar[i.length % ar.length]; });

//Type out examples:
TypingText.runAll();
</script>

</body>
</html>


প্রথমে একটা Notepad Open করে উপরের Code টুকু লিখুন । File মেনু থেকে Save as এ ক্লিক করে File name হিসেবে index.html বা home.html অথবা যেকোন নাম.html  দিয়ে, Save as type হিসেবে All files সিলেক্ট করে এরপর Save বাটনে ক্লিক করে Save করুন। এখন একটা নতুন folder তৈরি করে TypingText.Js এবং index. html ফাইল দুইটা রেখে   Mozila দিয়ে index.html open করলে আকর্ষণীয় এনিমেটেড টেক্সট ইফেক্টটি দেখতে পাবেন।

………………………………………………………………………………..

আজ এখানেই শেষ করছি। সবার জন্য শুভকামনা রইল ।

comments

5 কমেন্টস

  1. আচ্ছা আমি একটি আনলিমিটেড ওয়াপ সাইট খুলতে চাই কিভাবে খুলব ? এটি কি আমি নিজেই খুলতে পারব । যা কম্পিউটারে ও মোবাইলে চলবে । সাহায্য করুন

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Time limit is exhausted. Please reload the CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.