Діалог
Навігація
- Методи діалогового додатка
-
Параметри діалогуПараметри кнопки
- Методи та властивості діалогового вікна
-
Події в діалоговому вікніПодії DOM
Події екземплярів застосунку та діалогового вікна
-
Комбінації клавіш для діалогового вікнаПараметри ярликів діалогового вікна
Попередження
Підтвердження
Підказка
Логін
Пароль
Попередній завантажувач
Прогрес
- Змінні CSS
- Приклади
Діалог
Методи діалогового додатка
app.dialog.create(parameters)
- створити екземпляр Dialog
● parameters - object.
- Об'єкт з параметрами діалогу
Метод повертає створений екземпляр Dialog
app.dialog.destroy(el)
- знищити екземпляр Dialog
● el - HTMLElement or string (за допомогою селектора CSS) або об’єкта
- Елемент діалогу або екземпляр діалогу для знищення.
app.dialog.get(el)
- отримати екземпляр Dialog за елементом HTML
● el - HTMLElement or string (за допомогою селектора CSS)
- Елемент діалогу.
Метод повертає екземпляр Dialog
app.dialog.open(el, animate)
- відкриває діалог
● el - HTMLElement or string (за допомогою селектора CSS).
- Елемент діалогу для відкриття.
● animate - boolean
- Відкрити діалогове вікно з анімацією.
Метод повертає екземпляр Dialog
app.dialog.close(el, animate)
- закриває діалог
● el - HTMLElement or string (за допомогою селектора CSS).
- Елемент діалогу для закриття.
● animate - boolean
- Закрити діалогове вікно з анімацією.
Метод повертає екземпляр Dialog
Параметри діалогу
Параметр | За замовчуванням | Опис | Тип |
---|---|---|---|
el | Елемент діалогу. Може бути корисним, якщо у вашому HTML вже є елемент Dialog і ви хочете створити новий екземпляр за допомогою цього елемента | HTMLElement string | |
containerEl | Дозволяє монтувати діалогове вікно до власного елемента, а не до кореневого елемента програми (app.el) | HTMLElement string | |
backdrop | true | Вмикає фон діалогу (темний напівпрозорий шар позаду) | boolean |
closeByBackdropClick | false | Якщо ввімкнено, діалогове вікно закриватиметься після натискання фону | boolean |
animate | true | Чи відкривати/закривати діалогове вікно з анімацією чи ні. Може бути перезаписано в методах .open() і .close() . | boolean |
title | Назва діалогу | string | |
text | Внутрішній текст діалогу | string | |
content | Спеціальний вміст діалогового вікна, який слідує за текстом діалогового вікна. Може приймати будь-який вміст HTML | string | |
buttons | [] | Масив із діалоговими кнопками, де кожна кнопка є об’єктом із параметрами кнопки | array |
verticalButtons | false | Вмикає вертикальне розташування кнопок | boolean |
destroyOnClose | false | Якщо ввімкнено, діалогове вікно буде автоматично знищено після закриття | boolean |
onClick | Функція зворотного виклику, яка буде виконана після натискання кнопки діалогу. Як аргументи він отримав екземпляр діалогу та номер індексу натиснутої кнопки, | function(dialog, index) | |
cssClass | Додавання додаткового класу css | string |
Параметр | Опис | Тип |
---|---|---|
on | Об'єкт з обробниками подій. Наприклад: | object |
var dialog = app.dialog.create({
text: 'Hello World',
on: {
opened: function () {
console.log('Dialog opened')
}
}
})
Параметри кнопки
Параметр | За замовчуванням | Опис | Тип |
---|---|---|---|
text | Рядок із текстом кнопки (може бути рядком HTML) | string | |
bold | false | Вмикає жирний текст кнопки | boolean |
color | Колір кнопки, один із кольорів за замовчуванням | string | |
close | true | Якщо ввімкнено, натискання кнопки закриє діалогове вікно | boolean |
cssClass | CSS клас додаткової кнопки | string | |
keyCodes | [] | Масив із кодами клавіш клавіатури, які використовуватимуться для ініціювання натискання кнопки. Наприклад, код клавіші 13 означає, що натискання кнопки буде активовано після натискання клавіші Enter | array |
onClick | Функція зворотного виклику, яка буде виконана після натискання цієї кнопки | function(dialog, e) |
Методи та властивості діалогового вікна
var dialog = app.dialog.create({ /* parameters */ })
dialog
змінна у прикладі вище) з корисними методами та властивостями::Властивість | Опис |
---|---|
dialog.app | Посилання на глобальний екземпляр застосунку |
dialog.el | HTML-елемент діалогового вікна |
dialog.$el | Екземпляр Dom7 з діалоговим елементом HTML |
dialog.backdropEl | Елемент HTML фону |
dialog.$backdropEl | Екземпляр Dom7 із фоновим елементом HTML |
dialog.params | Параметри діалогу |
dialog.opened | Логічне значення, що вказує, відкрито діалогове вікно чи ні |
Методи
Метод | Опис |
---|---|
dialog.open(animate) | Відкрити діалог. Де
● |
dialog.close(animate) | Закрити діалог. Де
● |
dialog.setProgress(progress, duration) | Встановлює перебіг діалогу, коли використовується ярлик перебігу діалогу, де
● ● |
dialog.setTitle(title) | Встановлює заголовок діалогу
● |
dialog.setText(text) | Встановлює текст діалогу
● |
dialog.destroy() | Знищити діалог |
dialog.on(event, handler) | Додати обробник подій |
dialog.once(event, handler) | Додати обробник подій, який буде видалено після запуску |
dialog.off(event, handler) | Видалити обробник подій |
dialog.off(event) | Видалити всі обробники для вказаної події |
dialog.emit(event, ...args) | запустити подію на примірнику |
Події в діалоговому вікні
Події DOM
Подія | Об'єкт | Опис |
---|---|---|
dialog:open | Dialog Element <div class="dialog"> | Подія буде ініційована, коли діалогове вікно розпочне свою початкову анімацію |
dialog:opened | Dialog Element <div class="dialog"> | Подію буде запущено після того, як діалог завершить свою початкову анімацію |
dialog:close | Dialog Element <div class="dialog"> | Подія буде ініційована, коли діалогове вікно почне завершувати анімацію |
dialog:closed | Dialog Element <div class="dialog"> | Подію буде запущено після того, як діалогове вікно завершить свою анімацію закриття |
dialog:beforedestroy | Dialog Element <div class="dialog"> | Подія буде запущена безпосередньо перед знищенням екземпляра Dialog |
Події екземплярів програми та діалогового вікна
dialog
Подія | Аргумент | Опис | Об'єкт |
---|---|---|---|
open | dialog | Подія буде ініційована, коли діалогове вікно розпочне свою початкову анімацію. Як аргумент обробник події отримує екземпляр діалогу | dialog |
dialogOpen | dialog | Подія буде ініційована, коли діалогове вікно розпочне свою початкову анімацію. Як аргумент обробник події отримує екземпляр діалогу | app |
opened | dialog | Подію буде запущено після того, як діалог завершить свою початкову анімацію. Як аргумент обробник події отримує екземпляр діалогу | dialog |
dialogOpened | dialog | Подію буде запущено після того, як діалог завершить свою початкову анімацію. Як аргумент обробник події отримує екземпляр діалогу | app |
close | dialog | Подія буде ініційована, коли діалогове вікно почне завершувати анімацію. Як аргумент обробник події отримує екземпляр діалогу | dialog |
dialogClose | dialog | Подія буде ініційована, коли діалогове вікно почне завершувати анімацію. Як аргумент обробник події отримує екземпляр діалогу | app |
closed | dialog | Подію буде запущено після того, як діалогове вікно завершить свою анімацію закриття. Як аргумент обробник події отримує екземпляр діалогу | dialog |
dialogClosed | dialog | Подію буде запущено після того, як діалогове вікно завершить свою анімацію закриття. Як аргумент обробник події отримує екземпляр діалогу | app |
beforeDestroy | dialog | Подія буде запущена безпосередньо перед знищенням екземпляра Dialog. Як аргумент обробник події отримує екземпляр діалогу | dialog |
dialogBeforeDestroy | dialog | Подія буде запущена безпосередньо перед знищенням екземпляра Dialog. Як аргумент обробник події отримує екземпляр діалогу | app |
Комбінації клавіш для діалогового вікна
Параметри ярликів діалогового вікна
var app = new Techno4({
dialog: {
// встановити назву за замовчуванням для всіх ярликів діалогових вікон
title: 'My App',
// змінити стандартний текст кнопки "ОК".
buttonOk: 'Done',
...
}
});
Параметр | За замовчуванням | Опис | Тип |
---|---|---|---|
title | Заголовок ярликів діалогових вікон за замовчуванням. Якщо не вказано, дорівнюватиме app.name | string | |
buttonOk | OK | Текст кнопки "ОК" за замовчуванням | string |
buttonCancel | Cancel | Текст кнопки "Cancel" за замовчуванням | string |
usernamePlaceholder | Username | Заповнювач поля імені користувача за замовчуванням у діалоговому вікні входу | string |
passwordPlaceholder | Password | Заповнювач поля пароля за замовчуванням у діалогових вікнах імені та пароля | string |
preloaderTitle | Loading... | Назва за замовчуванням для діалогового вікна попереднього завантажувача | string |
progressTitle | Loading... | Назва за замовчуванням для діалогового вікна прогресу | string |
destroyPredefinedDialogs | true | Після закриття автоматично знищить усі попередньо визначені діалогові вікна (сповіщення, підтвердження, запит тощо). | boolean |
keyboardActions | true | Вмикає комбінації клавіш (Enter і Esc) клавіші для попередньо визначених діалогових вікон (Сповіщення, Підтвердження, Запит, Логін, Пароль) Кнопки «OK» і «Скасувати» | boolean |
autoFocus | true | Якщо ввімкнено, діалогове вікно автофокусу вводиться під час відкриття діалогового вікна. Діє лише для попередньо визначених діалогових вікон із такими введеннями, як запит, ім’я користувача та пароль | boolean |
Попередження
app.dialog.alert(text, title, callback)
- створити діалогове вікно попередження і відкрити його
● text - string.
- Текст діалогу попередження
● title - string.
- Заголовок діалогового вікна попередження
● callback - function
- Додатково. Функція зворотного виклику, яка буде виконана після того, як користувач натисне на кнопку попередження
Метод повертає створений екземпляр Dialog
app.dialog.alert(text, callback)
- створити діалогове вікно попередження із назвою за замовчуванням і відкрити його
Метод повертає створений екземпляр Dialog
Підтвердження
app.dialog.confirm(text, title, callbackOk, callbackCancel)
- створити діалогове вікно підтвердження та відкрити його
● text - string.
- Текст діалогу підтвердження
● title - string.
- Заголовок діалогового вікна підтвердження
● callbackOk - function
- Додатково. Функція зворотного виклику, яка буде виконана, коли користувач натисне кнопку «Ok» у діалоговому вікні підтвердження (коли користувач підтвердить дію)
● callbackCancel - function
- Додатково. Функція зворотного виклику, яка буде виконана, коли користувач натискає кнопку «Скасувати» у діалоговому вікні підтвердження (коли користувач відхиляє дію)
Метод повертає створений екземпляр Dialog
app.dialog.confirm(text, callbackOk, callbackCancel)
- створити діалогове вікно підтвердження із назвою за замовчуванням і відкрити його
Метод повертає створений екземпляр Dialog
Запит
app.dialog.prompt(text, title, callbackOk, callbackCancel, defaultValue)
- створити діалогове вікно запиту та відкрити його
● text - string.
- Текст діалогу запиту
● title - string.
- Заголовок діалогового вікна запиту
● callbackOk - function(value).
- Додатково. Функція зворотного виклику, яка буде виконана, коли користувач натисне кнопку «Ok» у діалоговому вікні запиту. Як аргумент функція отримує значення текстового введення
● callbackCancel - function(value).
- Додатково. Функція зворотного виклику, яка буде виконана, коли користувач натисне кнопку «Скасувати» у діалоговому вікні запиту. Як аргумент функція отримує значення текстового введення
● defaultValue - string
Додатково. Запропонуйте ввести значення за замовчуванням
Метод повертає створений екземпляр Dialog
app.dialog.prompt(text, callbackOk, callbackCancel, defaultValue)
- створити діалогове вікно запиту із назвою за замовчуванням і відкрити його
Метод повертає створений екземпляр Dialog
Логін
app.dialog.login(text, title, callbackOk, callbackCancel)
- створити діалогове вікно логіну та відкрити його
● text - string.
- Текст діалогу логіну
● title - string.
- Заголовок діалогового вікна логіну
● callbackOk - function(username, password).
Додатково. Функція зворотного виклику, яка буде виконана, коли користувач натисне кнопку «Ok» у діалоговому вікні логіну. Як аргумент функція отримує значення імені користувача та пароля
● callbackCancel - (username, password).
-Додатково. Функція зворотного виклику, яка буде виконана, коли користувач натисне кнопку «Скасувати» у діалоговому вікні логіну. Як аргумент функція отримує значення імені користувача та пароля
app.dialog.login(text, callbackOk, callbackCancel)
- створити діалогове вікно логіну із назвою за замовчуванням і відкрити його
Метод повертає створений екземпляр Dialog
Пароль
app.dialog.password(text, title, callbackOk, callbackCancel)
- створити діалогове вікно пароля та відкрити його
● text - string.
- Текст діалогу пароля
● title - string.
- Заголовок діалогового вікна пароля
● callbackOk - function(password).
Додатково. Функція зворотного виклику, яка буде виконана, коли користувач натисне кнопку «Ok» у діалоговому вікні пароля. Як аргумент функція отримує значення пароля
● callbackCancel - (password).
- Додатково. Функція зворотного виклику, яка буде виконана, коли користувач натисне кнопку «Скасувати» у діалоговому вікні пароля. Як аргумент функція отримує значення пароля
app.dialog.password(text, callbackOk, callbackCancel)
- створити діалогове вікно пароля із назвою за замовчуванням і відкрити його
Метод повертає створений екземпляр Dialog
Попередній завантажувач
app.dialog.preloader(title, color)
- створити діалог попереднього завантажувача та відкрити його
● title - string.
- Додатково. Назва діалогового вікна попереднього завантажувача
● color - string.
Додатково. Колір попереднього завантажувача. Один із кольорів за замовчуванням
Метод повертає створений екземпляр Dialog
Прогрес
progressbar
замість попереднього завантажувача.app.dialog.progress(title, progress, color)
- створити діалогове вікно прогресу та відкрити його
● title - string.
- Додатково. Назва діалогового вікна прогресу
● progress - number
- Індикатор прогресу (від 0 до 100). Якщо число не пройдено, він матиме нескінченну панель прогресу
● color - string.
Додатково. Колір індикатора прогресу. Один із кольорів за замовчуванням
Метод повертає створений екземпляр Dialog
Змінні CSS
:root {
--t4-dialog-button-text-color: var(--t4-theme-color);
--t4-dialog-button-text-align: center;
--t4-dialog-input-bg-color: #fff;
}
:root .dark,
:root.dark {
--t4-dialog-text-color: #fff;
}
.ios {
--t4-dialog-box-shadow: none;
--t4-dialog-width: 270px;
--t4-dialog-inner-padding: 16px;
--t4-dialog-border-radius: 13px;
--t4-dialog-text-align: center;
--t4-dialog-font-size: 14px;
--t4-dialog-title-text-color: inherit;
--t4-dialog-title-font-size: 18px;
--t4-dialog-title-font-weight: 600;
--t4-dialog-title-line-height: inherit;
--t4-dialog-button-font-size: 17px;
--t4-dialog-button-height: 44px;
--t4-dialog-button-letter-spacing: 0;
--t4-dialog-button-font-weight: 400;
--t4-dialog-button-text-transform: none;
--t4-dialog-input-border-radius: 4px;
--t4-dialog-input-font-size: 14px;
--t4-dialog-input-height: 32px;
--t4-dialog-input-border-width: 1px;
--t4-dialog-input-placeholder-color: #a9a9a9;
--t4-dialog-preloader-size: 34px;
--t4-dialog-bg-color: rgba(255, 255, 255, 0.95);
--t4-dialog-bg-color-rgb: 255, 255, 255;
--t4-dialog-text-color: #000;
--t4-dialog-button-pressed-bg-color: rgba(0, 0, 0, 0.1);
--t4-dialog-input-border-color: rgba(0, 0, 0, 0.3);
--t4-dialog-border-divider-color: rgba(0, 0, 0, 0.2);
}
.ios .dark,
.ios.dark {
--t4-dialog-bg-color: rgba(45, 45, 45, 0.95);
--t4-dialog-bg-color-rgb: 45, 45, 45;
--t4-dialog-button-pressed-bg-color: rgba(0, 0, 0, 0.2);
--t4-dialog-border-divider-color: rgba(255, 255, 255, 0.15);
--t4-dialog-input-border-color: rgba(255, 255, 255, 0.15);
--t4-dialog-input-bg-color: rgba(0, 0, 0, 0.5);
}
.md {
--t4-dialog-box-shadow: var(--t4-elevation-24);
--t4-dialog-width: 280px;
--t4-dialog-inner-padding: 24px;
--t4-dialog-border-radius: 4px;
--t4-dialog-text-align: left;
--t4-dialog-font-size: 16px;
--t4-dialog-title-font-size: 20px;
--t4-dialog-title-font-weight: 500;
--t4-dialog-title-line-height: 1.3;
--t4-dialog-button-font-size: 14px;
--t4-dialog-button-height: 36px;
--t4-dialog-button-letter-spacing: 0.05em;
--t4-dialog-button-font-weight: 500;
--t4-dialog-button-text-transform: uppercase;
--t4-dialog-button-pressed-bg-color: rgba(var(--t4-theme-color-rgb), 0.15);
--t4-dialog-input-border-radius: 0px;
--t4-dialog-input-font-size: 16px;
--t4-dialog-input-height: 36px;
--t4-dialog-input-border-color: transparent;
--t4-dialog-input-border-width: 0px;
--t4-dialog-preloader-size: 32px;
--t4-dialog-bg-color: #fff;
--t4-dialog-text-color: rgba(0, 0, 0, 0.54);
--t4-dialog-title-text-color: #212121;
--t4-dialog-input-placeholder-color: rgba(0, 0, 0, 0.35);
}
.md .dark,
.md.dark {
--t4-dialog-bg-color: #1c1c1d;
--t4-dialog-title-text-color: #fff;
--t4-dialog-input-bg-color: transparent;
--t4-dialog-input-placeholder-color: rgba(255, 255, 255, 0.54);
}
.aurora {
--t4-dialog-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15), 0 25px 30px 0 rgba(0,0,0,0.35);
--t4-dialog-width: 300px;
--t4-dialog-inner-padding: 20px;
--t4-dialog-border-radius: 8px;
--t4-dialog-text-align: left;
--t4-dialog-font-size: 14px;
--t4-dialog-title-font-size: 18px;
--t4-dialog-title-font-weight: 700;
--t4-dialog-title-line-height: inherit;
--t4-dialog-button-font-size: 14px;
--t4-dialog-button-height: 36px;
--t4-dialog-button-letter-spacing: 0;
--t4-dialog-button-font-weight: 600;
--t4-dialog-button-text-transform: uppercase;
/*
--t4-dialog-button-pressed-bg-color: var(--t4-theme-color-shade);
--t4-dialog-button-hover-bg-color: var(--t4-theme-color-tint);
*/
--t4-dialog-input-border-radius: 8px;
--t4-dialog-input-font-size: 16px;
--t4-dialog-input-height: 32px;
--t4-dialog-input-border-width: 1px;
--t4-dialog-preloader-size: 24px;
--t4-dialog-bg-color: #fff;
--t4-dialog-title-text-color: inherit;
--t4-dialog-text-color: #000;
--t4-dialog-button-text-color: #fff;
--t4-dialog-input-border-color: rgba(0, 0, 0, 0.2);
--t4-dialog-input-placeholder-color: rgba(0, 0, 0, 0.32);
}
.aurora .dark,
.aurora.dark {
--t4-dialog-bg-color: #1c1c1d;
--t4-dialog-title-text-color: #fff;
--t4-dialog-input-bg-color: rgba(0, 0, 0, 0.25);
--t4-dialog-input-placeholder-color: rgba(255, 255, 255, 0.54);
--t4-dialog-input-border-color: rgba(255, 255, 255, 0.15);
}
Приклади
<template>
<div class="page">
<div class="navbar">
<div class="navbar-bg"></div>
<div class="navbar-inner">
<div class="title">Dialog</div>
</div>
</div>
<div class="page-content">
<div class="block block-strong">
<p class="row">
<button class="col button button-fill open-alert">Alert</button>
<button class="col button button-fill open-confirm">Confirm</button>
<button class="col button button-fill open-prompt">Prompt</button>
</p>
<p class="row">
<button class="col button button-fill open-login">Login</button>
<button class="col button button-fill open-password">Password</button>
</p>
</div>
<div class="block-title">Vertical Buttons</div>
<div class="block block-strong">
<p>
<button class="button button-fill open-vertical">Vertical Buttons</button>
</p>
</div>
<div class="block-title">Preloader Dialog</div>
<div class="block block-strong">
<p class="row">
<button class="col button button-fill open-preloader">Preloader</button>
<button class="col button button-fill open-preloader-custom">Custom Title</button>
</p>
</div>
<div class="block-title">Progress Dialog</div>
<div class="block block-strong">
<p class="row">
<button class="col button button-fill open-progress">Determined</button>
<button class="col button button-fill open-progress-infinite">Infinite</button>
</p>
</div>
</div>
</div>
</template>
<script>
export default (props, { $, $t4, $on }) => {
$on('pageInit', () => {
// Alert
$('.open-alert').on('click', function () {
$t4.dialog.alert('Hello');
});
// Confirm
$('.open-confirm').on('click', function () {
$t4.dialog.confirm('Are you feel good today?', function () {
$t4.dialog.alert('Great!');
});
});
// Prompt
$('.open-prompt').on('click', function () {
$t4.dialog.prompt('What is your name?', function (name) {
$t4.dialog.confirm('Are you sure that your name is ' + name + '?', function () {
$t4.dialog.alert('Ok, your name is ' + name);
});
});
});
// Login
$('.open-login').on('click', function () {
$t4.dialog.login('Enter your username and password', function (username, password) {
$t4.dialog.alert('Thank you!<br>Username:' + username + '<br>Password:' + password);
});
});
// Password
$('.open-password').on('click', function () {
$t4.dialog.password('Enter your password', function (password) {
$t4.dialog.alert('Thank you!<br>Password:' + password);
});
});
// Vertical Buttons
$('.open-vertical').on('click', function () {
$t4.dialog.create({
title: 'Vertical Buttons',
text: 'Dialog with vertical buttons',
buttons: [
{
text: 'Button 1',
},
{
text: 'Button 2',
},
{
text: 'Button 3',
},
],
verticalButtons: true,
}).open();
});
// Preloader
$('.open-preloader').on('click', function () {
$t4.dialog.preloader();
setTimeout(function () {
$t4.dialog.close();
}, 3000);
});
// Preloader with custom text
$('.open-preloader-custom').on('click', function () {
$t4.dialog.preloader('My text...');
setTimeout(function () {
$t4.dialog.close();
}, 3000);
});
// Progress
$('.open-progress').on('click', function () {
var progress = 0;
var dialog = $t4.dialog.progress('Loading assets', progress);
dialog.setText('Image 1 of 10');
var interval = setInterval(function () {
progress += 10;
dialog.setProgress(progress);
dialog.setText('Image ' + ((progress) / 10) + ' of 10');
if (progress === 100) {
clearInterval(interval);
dialog.close();
}
}, 300)
});
// Progress Infinite
$('.open-progress-infinite').on('click', function () {
$t4.dialog.progress();
setTimeout(function () {
$t4.dialog.close();
}, 3000);
});
})
return $render;
}
</script>
Techno4 Framework
- Get Started
- Introduction
- Kitchen Sink
- Installation
- Package Structure
- App HTML Layout
- RTL Layout
- Initialize App
- Events
- Router Component
- Routes
- Store
- App/Core
- Accordion/Collapsible
- Action Sheet
- Area chart
- Autocomplete
- Badge
- Block/Content Block
- Breadcrumbs
- Button
- Calendar/Date Picker
- Cards
- Checkbox
- Chips
- Color Picker
- Contact List
- Data Table
- Dialog
- Floating action button
- Form
- Gauge
- Icons
- Inputs / Form Inputs
- Grid /Layout Grid
- Link
- List Button
- List View
- List Index
- Login Screen
- Menu List
- Messagebar
- Navbar
- Messages
- Notification
- Panel/Side Panels
- Photo Browser
- Picker
- Pie Chart
- Popover
- Popup
- Preloader
- Progressbar
- Pull to Refresh
- Radio
- Range Slider
- Searchbar