一.目录结构
二.代码
hello.html
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Hello Sea.js</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="container"> <img src="https://i.alipayobjects.com/e/201211/1cqKb32QfE.png" width="44" height="44" alt="H"> <img src="https://i.alipayobjects.com/e/201211/1cqKb2rJHI.png" width="44" height="44" alt="e"> <img src="https://i.alipayobjects.com/e/201211/1cqKeZrUpg.png" width="44" height="44" alt="l"> <img src="https://i.alipayobjects.com/e/201211/1cqM4u3Ejk.png" width="44" height="44" alt="l"> <img src="https://i.alipayobjects.com/e/201211/1cqKoKV2Sa.png" width="44" height="44" alt="o"> <img src="https://i.alipayobjects.com/e/201211/1cqKb4JU4K.png" width="44" height="44" alt=","> <img src="https://i.alipayobjects.com/e/201211/1cqKojFDLY.png" width="44" height="44" alt="S"> <img src="https://i.alipayobjects.com/e/201211/1cqKb2sBO8.png" width="44" height="44" alt="e"> <img src="https://i.alipayobjects.com/e/201211/1cqKb2LmXk.png" width="44" height="44" alt="a"> <img src="https://i.alipayobjects.com/e/201211/1cqKb1jcWC.png" width="44" height="44" alt="J"> <img src="https://i.alipayobjects.com/e/201211/1cqKojb72y.png" width="44" height="44" alt="S"> </div> <script src="sea-modules/sea.js"></script> <script> // Set configuration seajs.config({ base: "./sea-modules/", alias: { "jquery": "jquery/jquery/1.10.1/jquery.js" } }); seajs.use("./main"); </script> </body> </html>
main.js
define(function(require) { var Spinning = require('./spinning'); var s = new Spinning('#container'); s.render(); });
spinning.js
define(function(require, exports, module) { var $ = require('jquery'); function Spinning(container) { this.container = $(container); this.icons = this.container.children(); this.spinnings = []; } module.exports = Spinning; Spinning.prototype.render = function() { this._init(); this.container.css('background', 'none'); this.icons.show(); this._spin(); } Spinning.prototype._init = function() { var spinnings = this.spinnings; $(this.icons).each(function(n) { var startDeg = random(360); var node = $(this); var timer; node.css({ top: random(40), left: n * 50 + random(10), zIndex: 1000 }).hover( function() { node.fadeTo(250, 1) .css('zIndex', 1001) .css('transform', 'rotate(0deg)'); }, function() { node.fadeTo(250, .6).css('zIndex', 1000); timer && clearTimeout(timer); timer = setTimeout(spin, Math.ceil(random(10000))); } ); function spin() { node.css('transform', 'rotate(' + startDeg + 'deg)'); } spinnings[n] = spin; }) return this; } Spinning.prototype._spin = function() { $(this.spinnings).each(function(i, fn) { setTimeout(fn, Math.ceil(random(3000))); }); return this; } function random(x) { return Math.random() * x }; });
三.运行结果
seajs官网:http://seajs.org/docs/
相关推荐
Seajs 是一个轻量级的前端模块加载器,它的出现是为了在浏览器环境中实现模块化开发,使得JavaScript代码的组织更加有序,便于维护和协作。Seajs 的设计思想深受CommonJS的影响,但考虑到浏览器环境的特性,它并没有...
### SeaJS入门实例详解 #### 一、简介与背景 SeaJS是一款优秀的JavaScript模块加载器,它基于CommonJS Modules 1.1规范设计,适用于浏览器环境。与Node.js的module 1.0规范类似,SeaJS能够帮助开发者更好地组织和...
5. **案例分析**:通过具体项目实例,展示 Seajs 在实际应用中的效果和优势。 `seajs-2.3.0` 压缩包则包含了 Seajs 的源代码,你可以深入研究其内部实现,了解其加载和执行模块的原理,对于理解前端模块化和优化...
在用户Example01中,你可能会看到一个简单的 Seajs 应用实例,包括配置文件、模块定义和使用。通过这个案例,你可以学习如何创建模块,如何设置和使用配置,以及如何在实际项目中整合 Seajs。逐步理解和实践这些知识...
最近在学习seajs , 百度了一下教程, 网上有很多范例, 大多都是互相抄袭,并没有验证是否能正常运行. 很多都直接忽略了 jquery 的模块化. 我按他们的步骤做完之后,出现很多问题,所以我把网上的一个例子, 补充完整 ,...
SeaJS是一个遵循CMD(Common Module Definition)规范的JavaScript模块加载器,由支付宝前端团队开发。它可以帮助开发者以模块化的方式组织JavaScript代码,从而实现模块的加载、依赖管理和异步加载等需求。SeaJS的...
4. **参考文档**:官方文档和社区博客(如给定的博文链接)是学习的重要资源,通过阅读和实践,加深对 Seajs 的理解和运用。 四、Seajs 的应用场景 Seajs 适用于大型项目的前端开发,特别是在有多个团队协作、模块...
本文将详细介绍seajs模块压缩问题与解决方法,并通过实例分析来阐述问题的出现以及相应的解决方法。 首先,seajs模块压缩问题主要出现在模块化开发过程中对模块依赖的解析上。seajs通过define函数来定义模块,并且...
在这个“seajs simple demo”项目中,作者通过实例展示了如何使用Seajs将原先混乱的JavaScript插件组织成模块,使得代码结构更加清晰。通过学习这个demo,你可以更好地理解Seajs的使用方法,并将其应用到自己的项目...
近几年前端工程化越来越完善,打包工具也已经是前端标配了,像seajs这种老古董早已停止维护,而且使用的人估计也几个了。但这并不能阻止好奇的我,为了了解当年的前端前辈们是如何在浏览器进行代码模块化的,我鼓起...
本文实例讲述了seajs中模块依赖的加载处理。分享给大家供大家参考,具体如下: 最近在做项目的时候发现一些关于模块依赖问题,特记录下: 比如现有3个文件: /*init.js*/ define(function(require, exports, module)...
Seajs和RequireJS是两种常见的JavaScript模块化解决方案库,它们都是基于AMD(Asynchronous Module Definition)规范的实现。 Seajs是一个轻量级的模块加载器,它的核心特性包括: 1. **模块定义**:使用`define`...
本文实例讲述了seajs下require书写约定。分享给大家供大家参考,具体如下: require 书写约定 使用 Sea.js 书写模块代码时,需要遵循一些简单规则。 只是书写和调试时的规范!!!构建后的代码完全不需要遵循下面的...
每个模块对应一个`Module`实例,该实例包含了模块的基本信息。`Module`类有以下几个关键属性: 1. `uri`: 模块的唯一标识,即模块的URL。 2. `dependencies`: 一个数组,存储模块的依赖项,即需要先加载的其他模块...
本文实例讲述了seajs中最常用的7个功能、配置。分享给大家供大家参考,具体如下: 1. seajs.config seajs.config({ // 设置路径,方便跨项目调用 paths: { 'path1': '....', 'path2': '....' }, // 设置别名...
这个“sea.js 官方实例”压缩包包含了一系列示例,帮助开发者更好地理解和应用 Sea.js。以下是关于 Sea.js 和其示例的详细解释: 1. **Sea.js 基础概念**: - **模块化**:Sea.js 提供了一种在浏览器端管理代码...