
آموزش برنامه نویسی جاوااسکریپت-جلسه سی و سوم
گاهی نیاز داریم style یک تگ رو عوض کنیم .
DOM CSS
گاهی نیاز داریم style یک تگ رو عوض کنیم .
<p id=”p2″>Hello World!</p>
<script>
document.getElementById(“p2”).style.color = “blue”;
document.getElementById(“p2″).style. fontFamily = ” Arial”;
document.getElementById(“p2″).style. fontSize = ” larger”;
</script>در اینجا می توان با استفاده ازstyle تغییرات زیادی را بر p اعمال کرد.نکته ای که در اینجا وجود دارد این هست که Cssهایی که با خط تیره نوشته می شوندمثل font-family ، خط تیره حذف می شود و به هم چسبیده نوشته می شوند منتهی حرف اول بخش دوم باحرف بزرگ نوشته می شود fontFamily.
پیشنهاد مطالعه: آموزش رایگان جاوااسکریپت
ساختن انیمشن
<style>
#container {
width: 400px;
height: 400px;
position: relative;
background: yellow;
}
#animate {
width: 50px;
height: 50px;
position: absolute;
background: red;
}
</style>
<p><button onclick=”myMove()”>Click Me</button></p>
<div id =”container”>
<div id =”animate”>My animation will go here</div>
</div>
Script>>
function myMove() {
let id = null;
const elem = document.getElementById(“animate”);
let pos = 0;
clearInterval(id);
id = setInterval(frame, 5);
function frame() {
if (pos == 350) {
clearInterval(id);
} else {
pos++;
elem.style.top = pos + ‘px’;
elem.style.left = pos + ‘px’;
}
}
}
</script>دراین مثال ما با کمک جاوااسکریپت یک مستطیل کوچک را داخل مستطیل بزرگ تر به حرکت در می آوریم . برای اینکار یک فانکشن تعریف میکنیم و مقدار مستطیل کوچک را در یک متغیر می ریزیم . موقعیت را در حالت شروع 0 تعریف میکنیم و از دوتابع clearInterval و setInterval برای ادامه کار استفاده می کنیم. setInterva یک تابع را فراخوانی میکند که توسط آن زمان بندی را برای حرکت شی انجام می دهد. اگر موقعیت شی برابر با 350 شد clearInterval کار تابع setinterval را پاک می کند و دوباره شی از اول حرکت میکند اگر برابر نبود به موقعیت اضافه می کند .
DOM Event
رویدادها در هر تگی استفاده می شوند و تعدادشان زیاد است. مثلا با کلیک کردن روی دکمه یک تغییراتی را اعمال کرد روی المان مد نظر
<h1 onclick=”this.innerHTML = ‘Ooops!'”>Click on this text!</h1>کلمه this به خود تک اشاره می کنه .
<h1 onclick=”changeText(this)”>Click on this text!</h1>
<script>
function changeText(id) {
id.innerHTML = “Ooops!”;
}
</script>وقتی this می نویسیم نیازی به نوشتن دوباره id نداریم .
onchange Eventرویداد onchange برای اینپوت هایی که ورودی می گیرند استفاده می شود. و بعد از اینکه ورودی را گرفت تغییرات اعمال می شود.
<input type=”text” id=”fname” onchange=”upperCase()”>
<script>
Function uppercase(){
const x = document.getElementById(“fname”);
x.value = x.value.toUpperCase();
}
</script>
onmouseover and onmouseout Eventsاین دو رویداد را می توان روی یک تگ مثلا یک div نوشت و دو رویداد تعریف کرد که وقتی روی دیو موس را حرکت می دهیم یه اتفاقی بیوفته و زمانی که از دیو خارج شدیم یک رویداد دیگر فراخوانی بشه .
<div onmouseover=”mOver(this)” onmouseout=”mOut(this) “>
<script>
function mOver(obj) {
obj.innerHTML = “Thank You”
}
function mOut(obj) {
obj.innerHTML = “Mouse Over Me”
}
</script>
onmousedown, onmouseupاین دو رویداد زمانی استفاده می شود که کلیک کنیم و بعد بلافاصله بعد ازرها شدن کلیک رویداد دوم عمل می کند.
<div onmousedown=”mDown(this)” onmouseup=”mUp(this)”< 
مریم گوهرزاد
مدرس و بنیانگذار هلدینگ آرتا رسانه. برنامه نویس و محقق حوزه بلاکچین و توسعهدهنده بلاکچین | متخصص Solidity | توسعهدهنده وب Full-Stackمن یک توسعهدهنده علاقهمند به فناوریهای بلاکچین و وب ۳ هستم و در زمینه Solidity، توسعه قراردادهای هوشمند و ساخت برنامههای غیرمتمرکز (DApps) فعالیت میکنم. تمرکز من بر طراحی و پیادهسازی راهکارهایی است که در کنار بهرهگیری از فناوریهای نوین، عملکرد مناسب، امنیت و تجربه کاربری مطلوبی ارائه دهند.در مسیر حرفهای خود، تجربه کار با قراردادهای هوشمند و معماری راهکارهای مبتنی بر بلاکچین را به دست آوردهام و همواره تلاش میکنم دانش خود را با آخرین تغییرات و پیشرفتهای این حوزه بهروز نگه دارم. برای من، بلاکچین تنها یک فناوری جدید نیست؛ بلکه بستری برای ایجاد راهکارهای متفاوت و کاربردی در دنیای واقعی است.در کنار تخصص در حوزه بلاکچین، به عنوان یک توسعهدهنده وب Full-Stack نیز در طراحی و توسعه وبسایتها و برنامههای تحت وب فعالیت میکنم. تجربه کار در بخشهای Front-End و Back-End به من این امکان را داده است که پروژهها را از مرحله ایده و طراحی تا توسعه و اجرا، با دیدی جامع دنبال کنم. در فرآیند توسعه، توجه ویژهای به کدنویسی تمیز، معماری مناسب، طراحی واکنشگرا، عملکرد مطلوب و تجربه کاربری روان دارم.همیشه به دنبال یادگیری، تجربه فناوریهای جدید و پیدا کردن راههای بهتر برای حل مسائل فنی هستم. از مواجهه با چالشهای پیچیده استقبال میکنم و معتقدم بهترین نتایج زمانی شکل میگیرند که دانش فنی، خلاقیت و همکاری مؤثر در کنار یکدیگر قرار بگیرند.اگر به دنبال همکاری در یک پروژه بلاکچینی، Web3 یا توسعه وب هستید، خوشحال میشوم با یکدیگر در ارتباط باشیم و ایدهها را به راهکارهای واقعی و قابل اجرا تبدیل کنیم.



