Екран входу
Макет екрана входу
<div class="login-screen">
<!-- Типовий макет перегляду сторінки-->
<div class="view">
<div class="page login-screen-page">
<!-- page-content має додатковий вміст екрана входу -->
<div class="page-content login-screen-content">
<div class="login-screen-title">My App</div>
<!-- Форма входу-->
<form>
<div class="list">
<ul>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">Username</div>
<div class="item-input-wrap">
<input type="text" name="username" placeholder="Username" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">Password</div>
<div class="item-input-wrap">
<input type="password" name="password" placeholder="Password" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
</ul>
</div>
<div class="list">
<ul>
<li>
<a href="#" class="list-button">Sign In</a>
</li>
</ul>
<div class="block-footer">Some text with login information.</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="login-screen">
, є необов’язковими, але ви можете використовувати їх як шаблонний макет для своєї форми входуМетоди застосунку екрана входу
app.loginScreen.create(parameters)
- створити екземпляр екрана входу в систему
● parameters - object.
- Об'єкт з параметрами екрана входу
Метод повертає створений екземпляр екрана входу в систему
aapp.loginScreen.destroy(el)
- знищити екземпляр екрана входу в систему
● el - HTMLElement or string (with CSS Selector) or object
-Елемент екрана входу або екземпляр екрана входу для знищення.
app.loginScreen.get(el)
- отримати екземпляр екрана входу за допомогою елемента HTML
● el - HTMLElement or string (with CSS Selector).
- Елемент екрана входу.
Метод повертає екземпляр екрана входу в систему
app.loginScreen.open(el, animate)
- відкриває екран входу
● el - HTMLElement or string (with CSS Selector).
- Елемент екрана входу, який потрібно відкрити.
● animate - boolean.
- Відкрити екран входу з анімацією
Метод повертає екземпляр екрана входу в систему
app.loginScreen.close(el, animate)
- закриває екран входу
● el - HTMLElement or string (with CSS Selector).
- Елемент екрана входу, який потрібно закрити.
● animate - boolean.
- Закрити екран входу з анімацією
Метод повертає екземпляр екрана входу в систему
Параметри екрана входу
Параметр | За замовчуванням | Опис | Тип |
---|---|---|---|
el | Елемент екрана входу. Може бути корисним, якщо у вашому HTML-коді вже є елемент екрана входу в систему та ви хочете створити новий екземпляр за допомогою цього елемента | HTMLElement string | |
content | Рядок макета HTML повного екрана входу. Може бути корисним, якщо ви хочете динамічно створити елемент екрана входу | string | |
animate | true | Чи відкривати/закривати екран входу з анімацією чи ні. Може бути перезаписано в методах .open() і .close() . | boolean |
containerEl | Елемент для модального монтування (за замовчуванням кореневий елемент застосунку) | HTMLElement string |
Параметр | Опис | Тип |
---|---|---|
on | Об'єкт з обробниками подій. Наприклад: | object |
var loginScreen = app.loginScreen.create({
content: '<div class="login-screen">...</div>',
on: {
opened: function () {
console.log('Login Screen opened')
}
}
})
Методи та властивості екрана входу
var loginScreen = app.loginScreen.create({ /* parameters */ })
loginScreen
у прикладі вище) з корисними методами та властивостями:Властивості
Властивість | Опис |
---|---|
loginScreen.app | Посилання на глобальний екземпляр застосунку |
loginScreen.el | Елемент HTML екрана входу |
loginScreen.$el | Екземпляр Dom7 з HTML-елементом екрана входу |
loginScreen.params | Параметри екрана входу |
loginScreen.opened | Логічне значення, яке вказує, чи відкрито екран входу чи ні |
Методи
Метод | Опис |
---|---|
loginScreen.open(animate) | Відкрити екран входу. Де
● |
loginScreen.close(animate) | Закрити екран входу. Де
● |
loginScreen.destroy() | Знищити екран входу |
loginScreen.on(event, handler) | Додати обробник подій |
loginScreen.once(event, handler) | Додати обробник подій, який буде видалено після запуску |
loginScreen.off(event, handler) | Видалити обробник подій |
loginScreen.off(event) | Видалити всі обробники для вказаної події |
loginScreen.emit(event, ...args) | Запустити подію на примірнику |
Керуйте екраном входу за допомогою посилань
● Щоб відкрити екран входу, нам потрібно додати клас «login-screen-open»
до будь-якого елемента HTML (бажано для посилання)
● Щоб закрити екран входу, нам потрібно додати клас "login-screen-close"
до будь-якого елемента HTML (бажано для посилання)
● Якщо у вас більше одного екрана входу в DOM, вам потрібно вказати відповідний екран входу за допомогою додаткового атрибута data-login-screen=".my-login-screen"
у цьому елементі HTML
Відповідно до примітки вище:
<!-- В атрибуті data-login-screen ми вказуємо CSS-селектор екрана входу, який нам потрібно відкрити -->
<p><a href="#" data-login-screen=".my-login-screen" class="login-screen-open">Open Login Screen</a></p>
<!-- І десь у DOM-->
<div class="login-screen my-login-screen">
<div class="view">
<div class="page">
<div class="navbar">
<div class="navbar-bg"></div>
<div class="navbar-inner">
<div class="title">Login Screen</div>
<div class="right">
<!-- Посилання для закриття екрана входу-->
<a class="link login-screen-close">Close</a>
</div>
</div>
</div>
</div>
<div class="page-content">
...
</div>
</div>
...
</div>
Події екрана входу
Події DOM
Подія | Об'єкт | Опис |
---|---|---|
loginscreen:open | Елемент екрана входу
| Подія буде запущена, коли на екрані входу почнеться початкова анімація |
loginscreen:opened | Елемент екрана входу
| Подію буде запущено після завершення анімації відкриття екрана входу |
loginscreen:close | Елемент екрана входу
| Подія буде ініційована, коли на екрані входу почнеться анімація закриття |
loginscreen:closed | Елемент екрана входу
| Подію буде запущено після завершення анімації на екрані входу |
Події екземплярів застосунку та екрана входу
Подія | Аргумент | Опис | Об'єкт |
---|---|---|---|
open | loginScreen | Подія буде запущена, коли на екрані входу почнеться початкова анімація. Як аргумент обробник події отримує екземпляр екрана входу | loginScreen |
loginScreenOpen | loginScreen | Подія буде запущена, коли на екрані входу почнеться початкова анімація. Як аргумент обробник події отримує екземпляр екрана входу | app |
opened | loginScreen | Подію буде запущено після завершення анімації відкриття екрана входу. Як аргумент обробник події отримує екземпляр екрана входу | loginScreen |
loginScreenOpened | loginScreen | Подію буде запущено після завершення анімації відкриття екрана входу. Як аргумент обробник події отримує екземпляр екрана входу | app |
close | loginScreen | Подія буде ініційована, коли на екрані входу почнеться анімація закриття. Як аргумент обробник події отримує екземпляр екрана входу | loginScreen |
loginScreenClose | loginScreen | Подія буде ініційована, коли на екрані входу почнеться анімація закриття. Як аргумент обробник події отримує екземпляр екрана входу | app |
closed | loginScreen | Подію буде запущено після завершення анімації на екрані входу. Як аргумент обробник події отримує екземпляр екрана входу | loginScreen |
loginScreenClosed | loginScreen | Подію буде запущено після завершення анімації на екрані входу. Як аргумент обробник події отримує екземпляр екрана входу | app |
beforeDestroy | loginScreen | Подію буде запущено безпосередньо перед тим, як екземпляр екрана входу буде знищено. Як аргумент обробник події отримує екземпляр екрана входу | loginScreen |
loginScreenBeforeDestroy | loginScreen | Подію буде запущено безпосередньо перед тим, як екземпляр екрана входу буде знищено. Як аргумент обробник події отримує екземпляр екрана входу | app |
Вбудований екран входу
<div class="page no-navbar no-toolbar no-swipeback login-screen-page">
<div class="page-content login-screen-content">
<div class="login-screen-title">My App</div>
<form>
<div class="list">
<ul>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">Username</div>
<div class="item-input">
<input type="text" name="username" placeholder="Your username" />
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">Password</div>
<div class="item-input">
<input type="password" name="password" placeholder="Your password" />
</div>
</div>
</li>
</ul>
</div>
<div class="list">
<ul>
<li><a href="#" class="list-button">Sign In</a></li>
</ul>
<div class="block-footer">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p><a href="#" class="close-login-screen">Close Login Screen</a></p>
</div>
</div>
</form>
</div>
</div>
«no-navbar»
, «no-toolbar»
і «no-swipeback»
, щоб приховати елемент навігації від користувачаЗмінні CSS
:root {
--t4-login-screen-blocks-max-width: 480px;
/*
--t4-login-screen-list-button-text-color: var(--t4-theme-color);
*/
--t4-login-screen-title-text-align: center;
--t4-login-screen-title-text-color: inherit;
--t4-login-screen-title-letter-spacing: 0;
--t4-login-screen-title-font-weight: 600;
--t4-login-screen-title-font-size: 28px;
--t4-login-screen-content-bg-color: #fff;
--t4-login-screen-bg-color: #fff;
}
:root .dark,
:root.dark {
--t4-login-screen-bg-color: #121212;
--t4-login-screen-content-bg-color: #121212;
}
.ios {
--t4-login-screen-blocks-margin-vertical: 25px;
}
.ios .dark,
.ios.dark {
--t4-login-screen-bg-color: #000;
--t4-login-screen-content-bg-color: #000;
}
.md {
--t4-login-screen-blocks-margin-vertical: 24px;
}
.aurora {
--t4-login-screen-blocks-margin-vertical: 16px;
}
Приклади
<template>
<div class="page">
<div class="navbar">
<div class="navbar-bg"></div>
<div class="navbar-inner">
<div class="title">Login Screen</div>
</div>
</div>
<div class="page-content">
<div class="block block-strong">
<p>
<!-- Відкрийте на екрані входу, який уже є в DOM-->
<a href="#" class="button button-fill login-screen-open" data-login-screen=".login-screen">Open As
Modal</a>
</p>
<p>
<!-- Завантажити сторінку з екраном входу (login-screen-page.t4.html)-->
<a href="/login-screen/" class="button button-fill">Open As Page</a>
</p>
</div>
</div>
</div>
<div class="login-screen">
<div class="view">
<div class="page">
<div class="page-content login-screen-content">
<div class="login-screen-title">My App</div>
<form>
<div class="list">
<ul>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">Username</div>
<div class="item-input-wrap">
<input type="text" name="username" placeholder="Your username" />
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">Password</div>
<div class="item-input-wrap">
<input type="password" name="password" placeholder="Your password" />
</div>
</div>
</li>
</ul>
</div>
<div class="list">
<ul>
<li><a class="list-button" href="#">Sign In</a></li>
</ul>
<div class="block-footer">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p><a class="link login-screen-close" href="#">Close Login Screen</a></p>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</template>
<script>
export default (props, ctx) => {
const { $ } = ctx;
// Екран входу в модальні події DOM
$('.login-screen').on('loginscreen:open', function (e) {
console.log('Login screen open')
});
$('.login-screen').on('loginscreen:opened', function (e) {
console.log('Login screen opened')
});
$('.login-screen').on('loginscreen:close', function (e) {
console.log('Login screen close')
});
$('.login-screen').on('loginscreen:closed', function (e) {
console.log('Login screen closed')
});
return $render;
}
</script>
Сторінка екрана входу
<template>
<div class="page no-navbar no-toolbar no-swipeback">
<div class="page-content login-screen-content">
<div class="login-screen-title">My App</div>
<form>
<div class="list">
<ul>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">Username</div>
<div class="item-input-wrap">
<input type="text" name="username" placeholder="Your username" />
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">Password</div>
<div class="item-input-wrap">
<input type="password" name="password" placeholder="Your password" />
</div>
</div>
</li>
</ul>
</div>
<div class="list">
<ul>
<li><a href="#" class="list-button">Sign In</a></li>
</ul>
<div class="block-footer">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p><a href="#" class="link back">Close Login Screen</a></p>
</div>
</div>
</form>
</div>
</div>
</template>
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