承接 sjaakp/yii2-bandoneon 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

sjaakp/yii2-bandoneon

Composer 安装命令:

composer require sjaakp/yii2-bandoneon

包简介

Lightweight accordion widget for Yii 2.0.

README 文档

README

Lightweight accordion widget for Yii2

Latest Stable Version Total Downloads License

Motivation

In my opinion, there are some issues with the standard Yii2 JUI Accordion widget.

  • The heading and the content of the sections must be provided as options to the widget, which is cumbersome.
  • It generates HTML with hard wired class references, introducing new and probably unintended styling.
  • It is overkill, being dependant on the complete jQuery UI library.

Bandoneon is a lightweight, versatile replacement widget for the JUI Accordion. The Javascript is less than 1400 bytes. It has no dependencies at all, so it could be used on jQuery-less pages.

Here are some demo's of the Bandoneon widget.

Installation

The preferred way to install Bandoneon is through Composer. Either add the following to the require section of your composer.json file:

"sjaakp/yii2-bandoneon": "*"

Or run:

composer require sjaakp/yii2-bandoneon "*"

You can manually install Bandoneon by downloading the source in ZIP-format.

Usage

Use Bandoneon by enclosing the sections in straight HTML between calls to Bandoneon::begin() and Bandoneon::end(), like so:

<?php use sjaakp\bandoneon\Bandoneon; ?>

<?php Bandoneon::begin() ?>

    <h4>Heading 1</h4>
    <div>Lorem ipsum ... felis ultricies.</div>

    <h4>Heading 2</h4>
    <div>Pellentesque aliquet ... placerat tincidunt.</div>

		...
    
    <h4>Heading n</h4>
    <div>Curabitur sit ... gravida nec turpis.</div>

<?php Bandoneon::end() ?>

You can use any sensible HTML tags for the headings and the sections. For instance, this works just as well:

<?php use sjaakp\bandoneon\Bandoneon; ?>

<?php Bandoneon::begin() ?>

    <p>Heading 1</p>
    <p>Lorem ipsum ... felis ultricies.</p>

    <p>Heading 2</p>
    <p>Pellentesque aliquet ... placerat tincidunt.</p>

		...
    
    <p>Heading n</p>
    <p>Curabitur sit ... gravida nec turpis.</p>

<?php Bandoneon::end() ?>

Bandoneon makes no assumptions about the HTML of the headings and the sections. It uses the CSS selectors for odd and even elements to differentiate between them. The HTML in the sections, and in the headings as well, can be as convoluted as you like.

Initially open

If you want a section to be initially open, just add the class "open" to its heading, like so:

    ...
	<h4 class="open">Heading 2</h4>
    <div>This section will be initially open...</div>
	...

Surrounding element

By default, Bandoneon creates a <div> as surrounding element. You can modify this by setting the 'tag' option in Bandoneon::begin().

This may come in handy if you want to create a Bandoneon, based on a HTML definition list <dl>:

<?php use sjaakp\bandoneon\Bandoneon; ?>

<?php Bandoneon::begin([
		'tag' => 'dl'
	]) ?>

    <dt>Heading 1</dt>
    <dd>Lorem ipsum ... felis ultricies.</dd>

    <dt>Heading 2</dt>
    <dd>Pellentesque aliquet ... placerat tincidunt.</dd>

		...
    
    <dt>Heading n</dt>
    <dd>Curabitur sit ... gravida nec turpis.</dd>

<?php Bandoneon::end() ?>

Options

Bandoneon has two client options:

  • speed: The speed of the opening and closing of a section, in pixels per second. Default: 200.
  • timing: The timing function of the animation. More information on Mozilla developers network. Default: ease-in-out.

A very slow Bandoneon might be coded like this:

<?php use sjaakp\bandoneon\Bandoneon; ?>

<?php Bandoneon::begin([
		'clientOptions' => [
	        'speed' => 12,
		]
	]) ?>

    <h4>Heading 1</h4>
    <div>Lorem ipsum ... felis ultricies.</div>

	...

Building bandoneon.js

Be sure that npm is installed.

Run npm install.

Run rollup -c.

sjaakp/yii2-bandoneon 适用场景与选型建议

sjaakp/yii2-bandoneon 是一款 基于 JavaScript 开发的 Composer 扩展包,目前已累计 2.08k 次下载、GitHub Stars 达 5, 最近一次更新时间为 2014 年 08 月 03 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「extension」 「yii」 「widget」 「yii2」 「accordion」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 sjaakp/yii2-bandoneon 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 sjaakp/yii2-bandoneon 我们能提供哪些服务?
定制开发 / 二次开发

基于 sjaakp/yii2-bandoneon 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 2.08k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 17
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 1
  • Forks: 1
  • 开发语言: JavaScript

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-08-03