tobento/css-modal
Composer 安装命令:
composer require tobento/css-modal
包简介
A classic modal, in which you can include any content you want
README 文档
README
The modals.css provides a classic modal, in which you can include any content you want. In addition, the modals.js provides logic to open and close modals.
Table of Contents
Getting started
Browser support
Modern browser only.
Import Files
<link href="modals.css" rel="stylesheet" type="text/css"> <script src="modals.js" type="module"></script>
Documentation
You may visit the docs.tobento.ch/css-modal page for documentation with demo.
Css
Basic Usage
The basic modal structure is:
<div class="modal"> <div class="modal-background"></div> <div class="modal-content"> <div class="modal-head">Head</div> <div class="modal-body">Body</div> <div class="modal-foot">Foot</div> </div> </div>
The minimal modal structure is:
<div class="modal"> <div class="modal-content"> <div class="modal-body">Body</div> </div> </div>
To activate the modal, just add the .active class on the .modal container. The provided modal.js file implements the logic to open, close and animate the modals.
<div class="modal active"> <div class="modal-content"> <div class="modal-body">Body</div> </div> </div>
Sizing
By default, the modal has full width size. You may apply one of the following sizes:
modal-sis of width16remmodal-mis of width32remmodal-lis of width64remmodal-fullis full width and heightmodal-tablet-fullis full width and height on tablets and mobilemodal-mobile-fullis full width and height on mobile
<div class="modal"> <div class="modal-content modal-m"> <div class="modal-body">Body</div> </div> </div>
You may combine the following sizes:
<div class="modal"> <div class="modal-content modal-m modal-tablet-full"> <div class="modal-body">Body</div> </div> </div>
If you are using the basis.css - Sizing you may use it too.
Positions
By default, the modal is horizontal and vertical centered. You may combine the horizontal and vertical classes.
Modal Horizontal Alignment:
leftright
Modal Vertical Alignment:
topbottom
Example bottom right aligned:
<div class="modal bottom right"> <div class="modal-content"> <div class="modal-body">Body</div> </div> </div>
Example top centered aligned:
<div class="modal top"> <div class="modal-content"> <div class="modal-body">Body</div> </div> </div>
Animations
Available Animations:
modal-fademodal-scalemodal-swing
Example:
<div class="modal modal-fade"> <div class="modal-content"> <div class="modal-body">Body</div> </div> </div>
Javascript
Register
The Html markup for registering a modal is:
<!-- trigger button --> <span class="button" data-modal-trigger="foo">Open modal</span> <!-- related modal --> <div class="modal" data-modal='{"id": "foo"}'> <div class="modal-content"> <div class="modal-body">Body</div> </div> </div>
You may add the modal-close class to any tag for closing the modal:
<div class="modal" data-modal='{"id": "foo"}'> <div class="modal-background"></div> <div class="modal-content"> <div class="modal-head"><span class="button modal-close">close</span></div> <div class="modal-body">Body</div> <div class="modal-foot"><span class="button modal-close">close</span></div> </div> </div>
Options:
<div class="modal" data-modal='{"id": "foo", "scroll": "hidden", "closeTriggers": ".modal-close"}'> <div class="modal-content"> <div class="modal-body">Body</div> </div> </div>
| Option | Value | Description |
|---|---|---|
"scroll" |
"hidden", default |
Disables scroll, keeping scrollbar hidden. |
"scroll" |
"visible" |
Disables scroll, keeping scrollbar visible. |
"scroll" |
null |
Without disable scroll. |
"closeTriggers" |
".modal-background, .modal-close", default |
The trigger classes to close the modal. |
Methods
You may import the modals module and use its methods:
<script type="module"> import modals from "modals.js"; document.addEventListener('DOMContentLoaded', (e) => { // get a modal by id: const modal = modals.get('ID'); // open modal: modal.open(); // close modal: modal.close(); // you may check if a modal exists: if (modals.has('ID')) { modals.get('ID').open(); } }); </script>
Events
| Event | Description |
|---|---|
open |
This event is fired before the modal is opened. |
opened |
This event is fired after the modal is opened. |
close |
This event is fired before the modal is closed. |
closed |
This event is fired after the modal is closed. |
modals.get('ID').listen('open', (modal) => { modal.modalEl.querySelector('.modal-body').innerHTML = 'New Body'; });
Credits
tobento/css-modal 适用场景与选型建议
tobento/css-modal 是一款 基于 JavaScript 开发的 Composer 扩展包,目前已累计 43 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 02 月 27 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「css」 「modal」 「tobento」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 tobento/css-modal 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tobento/css-modal 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 tobento/css-modal 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Twig extension to insert css as inline styles with a tag
Caching and compression for Twig assets (JavaScript and CSS).
Fork from ghosh/Micromodal. Tiny, dependency-free javascript library for creating accessible modal dialogs.
Make Filament modals draggable.
A Filament form component that displays repeater items in a table with modal-based editing.
A Laravel Nova field. To create a modal for creating or viewing related HasMany records without leaving the index page
统计信息
- 总下载量: 43
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 25
- 依赖项目数: 3
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-02-27