JavaScript

使用 data 属性,将JavaScript应用于 UIkit 的组件。

你只需要在HTML元素中添加 data-uk-* 属性就能使用所有的UIKIT组件,而无需无需编写一行 JavaScript。这是在 UIkit 中使用任意组件时应当首先考虑的最佳做法。

Markup

<button data-uk-button>My Button</button>

当然你仍然可以通过使用 JQuery 的 API 来使用这些组件。

Markup

$(".button").uk("button");

AMD 支持

AMD (异步模块定义) 是一种定义 JavaScript 模块以及模块之间的依赖性的方式,因此他们可以通过异步加载的方式来使用。

用法

/* UIkit 核心的简单请求 */
require("path/to/uikit.js", function(UI){

    // UI 是UIkit的全局对象,又名 $.UIkit

});

自动加载 UIkit 及附加组件

/* 首先建立 require.js  */
requirejs.config({

    paths: {
        "uikit": 'path/to/uikit.js'
    },

    config: {
        "uikit": {
            "base": "path/to/uikit_dist_folder"
        }
    }

});

/* 现在,你可以自动加载UIkit和附加组件了,用逗号隔开。 */
require("uikit!notify,sortable", function(UI){

    // 访问已加载的附加组件: UI.notify, UI.sortable

});

覆写默认的组件设置

调整默认的组件设置是可行的,你可以看一下下面的例子:

用法

 // 覆写默认的工具提示设置
                            UIkit.on('beforeready.uk.dom', function(){

                                $.extend(UIkit.components.tooltip.prototype.defaults, {
                                    pos: 'top',
                                    delay: 500,
                                    animation: true
                                });
                            });

监视DOM,通过诸如AJAX的方式自动初始化新添加的组件。

如果你希望通过JavaScript动态地将HTML标签注入到DOM中,只需要添加 data-uk-observe 属性到一个父元素中,就能自动地初始化UIkit的JavaScript组件。

用法

 <div data-uk-observe>
                                <!-- 在此注入你的动态HTML -->
                            </div>

通过JavaScript监视元素

UIkit.domObserve('#element', function(element) { /* 适用于元素内部的DOM改变 */ })

基于可见性变化,检测显示事件/Check Display event on visibility change.

有时,一些组件,比如 网格选项卡 被隐藏在标签中。这或许是与 切换器, 模态对话框 或者 下拉菜单 组合使用是发生的。一旦它们变得可见,他们需要被重新计算修改高度或者其他外形尺寸。

为此,添加 data-uk-check-display 属性到需要重新处理的元素中。现在,它们监听由容器组件触发的 display.uk.check 事件,比如切换器。带有 data-uk-margin, data-uk-grid-margindata-uk-grid-match 属性的元素不需要添加这个属性,因为它此时是默认触发的。

Usage

 <!-- 一个位于模态对话框、切换器或者下拉菜单中的元素 -->
                            <div id="myelement" data-uk-check-display>...</div>

                            <script>
                            $("#myelement").on('display.uk.check', function(){
                               // 自定义的代码,用于调整显示的高度等
                            });
                            </script>