در این مقاله، نحوه ایجاد یک دکمه جذاب با افکت اسلاید متن را به شما آموزش میدهم. این افکت بدون استفاده از جاوااسکریپت و تنها با HTML و CSS خالص پیادهسازی شده است.
موارد استفاده
-
دکمههای دانلود
-
دکمههای Call-to-Action
-
تغییر وضعیت دکمهها
-
المانهای تعاملی در رابط کاربری
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>دکمه با افکت تعویض متن</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
/* استایلهای پایه */
body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
margin: 0;
background: #f8f9fa;
font-family: 'Segoe UI', Tahoma, sans-serif;
}
/* استایل دکمه */
.btn {
position: relative;
width: 200px;
height: 50px;
background: #4CAF50;
color: white;
border: none;
border-radius: 6px;
font-size: 16px;
cursor: pointer;
overflow: hidden;
transition: all 0.4s;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
/* استایل متنهای دکمه */
.btn span {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
white-space: nowrap;
display: flex;
align-items: center;
gap: 8px;
}
/* متن اولیه */
.btn .initial {
opacity: 1;
}
/* متن جایگزین */
.btn .hidden {
opacity: 0;
}
/* افکت هنگام هاور */
.btn:hover {
background: #45a049;
box-shadow: 0 6px 12px rgba(0,0,0,0.15);
}
.btn:hover .initial {
opacity: 0;
transform: translate(-150%, -50%);
}
.btn:hover .hidden {
opacity: 1;
transform: translate(-50%, -50%);
}
</style>
</head>
<body>
<button class="btn">
<span class="initial">همین حالا شروع کنید</span>
<span class="hidden">دانلود <i class="fas fa-download"></i></span>
</button>
</body>
</html>
توضیح گام به گام
1. ساختار HTML
-
از یک تگ
<button>به عنوان پایه استفاده میکنیم -
داخل دکمه دو
<span>قرار میدهیم:-
متن اولیه (
initial) -
متن جایگزین (
hidden)
-
2. استایلدهی پایه
-
دکمه را با
position: relativeآماده میکنیم -
متنها را با
position: absoluteدر وسط دکمه قرار میدهیم -
از
transform: translate(-50%, -50%)برای تراز دقیق مرکز استفاده میکنیم
3. افکت انتقال
-
برای هر دو متن
transitionتعریف میکنیم -
از
opacityبرای محو کردن/ظاهر کردن استفاده میکنیم -
با
transformموقعیت متنها را تغییر میدهیم
4. بهبود ظاهری
-
اضافه کردن سایه با
box-shadow -
تغییر رنگ پسزمینه هنگام هاور
-
استفاده از منحنی انتقال (
cubic-bezier) برای حرکت نرمتر
نکات پیشرفته
1. تغییر جهت افکت
برای تغییر جهت حرکت متنها، مقادیر transform را میتوانید تغییر دهید.
2. اضافه کردن تاخیر
میتوانید با transition-delay بین افکتها تاخیر ایجاد کنید.
3. استفاده از آیکونهای مختلف
به راحتی میتوانید کلاس آیکون Font Awesome را تغییر دهید.
جمعبندی
این روش یک راه حل سبک، کارآمد و زیبا برای ایجاد افکت تعویض متن در دکمهها ارائه میدهد. شما میتوانید این کد را با نیازهای خود تطبیق داده و از آن در پروژههای مختلف استفاده کنید.
امیدوارم این آموزش برای شما مفید بوده باشد! نظرات خود را در کامنت ها با ما به اشتراک بگذارید.

آخرین دیدگاه ها