Progress
نوار پیشرفت برای نشاندادن پیشرفت کار، با دستگیرهٔ کشیدنی اختیاری.
کجا به کارش ببرید: وقتی نواری میخواهید که پیشرفت کاری را نشان دهد. برای پیشرفت فقطخواندنی
<r-progress>را همانطور به کار ببرید و اگر کاربر باید مقدار را با دستگیرهٔ کشیدنی تعیین کند ازtype="drag"استفاده کنید.
شروع سریع
<r-progress percent="40%"></r-progress>💡 نکته:
r-progressعنصری بلوکی و بدون عرض ذاتی است. داخل یک ردیف flex ممکن است تا عرض صفر جمع شود؛ عرض صریح بدهید (مثلاًstyle="width:100%") یا آن را در بافتار بلوکی بگذارید.
مرجع API
خصیصهها
| خصیصه | نوع | پیشفرض | توضیح |
|---|---|---|---|
percent | string | '0' | پیشرفت کنونی؛ عدد یا درصد میپذیرد. سقف آن total است. |
total | string | '100' | کل پیشرفت؛ عدد یا درصد میپذیرد. |
type | string | 'primary' | نوع نوار: primary (ایستا) یا drag (کلیکشدنی / کشیدنی). |
dot | string | 'true' | اینکه دستگیرهٔ کشیدن نشان داده شود: true یا false. |
sheet | string | '' | CSS تزریقشده به shadow DOM کامپوننت. |
مقدار پیشرفت percent
پیشرفت کنونی را تعیین میکند. عدد یا رشتهٔ درصد میپذیرد و نمیتواند از total بگذرد. اگر total تعیین نشده باشد پیشفرض آن 100 است، یعنی percent بهعنوان درصدی از ۱۰۰ خوانده میشود.
<r-progress percent="30%"></r-progress>
<r-progress percent="70%"></r-progress>
<r-progress percent="100%"></r-progress>کل پیشرفت total
مخرج percent را تعیین میکند. هم عدد و هم درصد مجاز است، پس percent="30" total="1000" نوار را ۳٪ پر میکند.
<r-progress percent="30" total="1000"></r-progress>
<r-progress percent="70" total="100"></r-progress>
<r-progress percent="10%" total="100%"></r-progress>نوع نوار type
primary: نوار پیشرفت ایستا. وقتیtypeتعیین نشده باشد همین پیشفرض است.drag: نوار کلیکشدنی و کشیدنی. کلیک روی ریل یا کشیدن دستگیرهpercentرا بهروز میکند و رویدادchangeمیفرستد. کشیدن دستگیره بهdot="true"نیاز دارد.
<r-progress type="drag" percent="30%"></r-progress> <r-progress type="primary" percent="40%"></r-progress>دستگیرهٔ کشیدن dot
نمایش دستگیره را روشن و خاموش میکند. دستگیره تنها وقتی ترسیم میشود که dot="true" و type="drag" باشد؛ روی نوار ایستای primary عمداً حذف میشود، پس آنجا dot اثر دیدنی ندارد.
<r-progress type="drag" percent="30%" dot="true"></r-progress>
<r-progress type="drag" percent="30%" dot="false"></r-progress>رویدادها
change
در نوع drag، هر بار که کاربر روی ریل کلیک کند یا دستگیره را بکشد و percent عوض شود ارسال میشود. شیء detail اینها را حمل میکند:
| فیلد | نوع | توضیح |
|---|---|---|
value | string | پیشرفت کنونی |
percent | string | پیشرفت کنونی |
total | string | کل پیشرفت |
<r-progress type="drag" percent="30%"></r-progress>
<script>
const progress = document.createElement('r-progress');
progress.type = 'drag';
progress.percent = '30%';
progress.addEventListener('change', (e) => {
console.log(e.detail.value, e.detail.percent, e.detail.total);
});
container.append(progress);
</script>Partهای CSS
| Part | توضیح |
|---|---|
track | ریل پیشرفت (زمینه). |
fill | بخش پرشدهٔ ریل. |
dot | دستگیرهٔ کشیدن. |
r-progress::part(fill) {
background: var(--ran-color-primary);
}بهترین شیوهها
- نوارهای ایستا: برای نمایش پیشرفت فقطخواندنی از پیشفرض
type="primary"استفاده کنید. - نوارهای تعاملی: اگر کاربر باید مقدار را تعیین کند از
type="drag"استفاده کنید و به رویدادchangeگوش بدهید. - درصد یا عدد:
percentوtotalرا آزادانه ترکیب کنید؛ وقتی به یک کل مشخص نگاشت میشوند عدد خام بدهید و برای مهار مستقیم، درصد. - عرض در چیدمان: نوار را در نگهدارندهای بلوکی بپیچید یا عرض صریح بدهید تا در چیدمانهای flex جمع نشود.