jQuery UI 能做的事可谓是包罗万象。实际上,jQuery UI 在某种意义上并不是插件,而是一个完整的插件库。 jQuery UI 中主要包含以下几个功能: - Effect(效果) - Interactions(交互组件) - Widget(部件) - 此外,还为jQuery和核心动画提供了很多高级效果。 ## Effect(效果) ### animate() 方法 文档在引入核心效果文件的情况下,扩展的 `.animate()` 方法可接受另外一些样式属性。 扩展后 animate 方法接受以下属性: - backgroundColor - borderBottomColor - borderLeftColor - borderRightColor - borderTopColor - Color - outlineColor ```javascript var state = true; $( "#button" ).click(function() { if ( state ) { $( "#effect" ).animate({ backgroundColor: "#aa0000", color: "#fff", width: 500 }, 1000 ); } else { $( "#effect" ).animate({ backgroundColor: "#fff", color: "#000", width: 240 }, 1000 ); } state = !state; }); ``` ### effect() 方法 ```javascript function runEffect() { var selectedEffect = $( "#effectTypes" ).val(); var options = {}; if ( selectedEffect === "scale" ) { options = { percent: 0 }; } else if ( selectedEffect === "transfer" ) { options = { to: "#button", className: "ui-effects-transfer" }; } else if ( selectedEffect === "size" ) { options = { to: { width: 200, height: 60 } }; } $( "#effect" ).effect( selectedEffect, options, 500, callback ); }; function callback() { setTimeout(function() { $( "#effect" ).removeAttr( "style" ).hide().fadeIn(); }, 1000 ); }; $( "#button" ).click(function() { runEffect(); return false; }); ``` ## Interactions(交互组件) ### Draggable Widget Draggable Widget 允许使用鼠标移动元素。 ```javascript
``` draggable()的事件: - start:当拖动开始时触发。 - drag:当鼠标在拖动过程中移动时触发。 - stop:当拖动停止时触发。 ```javascript ``` draggable() 的选项: - axis:设置只能在x轴或y轴方向拖动。 - containment:设置在某个区域内拖动。 - cursor:设置拖动时鼠标的样式。 - cursorAt:设置鼠标的相对定位。 - handle:设置指定元素触发鼠标按下事件才能拖动。 - cancel:防止在指定元素上拖动。 - revert:当停止拖动时,元素是否被重置到初始位置。 - snap:拖动元素是否吸附在其他元素。 - snapMode:设置拖动元素在指定元素的哪个边缘。 - snap设置为true时该选项有效。 - 可选值 - inner|outer|both ```javascriptMauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna.
Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est.
Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Date:
``` ### Dialog Widget Dialog Widget 在一个交互覆盖层中打开内容。 - 基本对话框示例 ```javascriptThis is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.
Adding the modal overlay screen makes the dialog look more prominent because it dims out the page content.
This is an animated dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.
Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.
Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.
Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.
Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.
``` ### Menu Widget Menu Widget 带有鼠标和键盘交互的用于导航的可主题化菜单。 - 禁用页面中默认的鼠标右键功能。 ```javascript $(document).contextmenu(function (event) { event.preventDefault(); }); ``` - 自定义鼠标右键菜单。 ```javascript $(document).mousedown(function (event) { if(event.button == 2){ $( "#menu").removeAttr("style").menu().position({ my: "left top", at: "left top", of : event, collision: "fit" }); } }); ```