详尽分享组件的封装方法【比较高级方法】★★★★★★★

简介: 详尽分享组件的封装方法【比较高级方法】★★★★★★★

html:

<!doctype html

[/span>html lang="en"

[/span>head

[/span>meta charset="UTF-8"

[/span>title

[/span>style type="text/css"

.main{ Width</span>: 500px; Height</span>: 500px; border: red 1px solid; margin: 0 auto; text-align: center; }

.cover{margin: 10px auto;}

.btn{margin: 0 auto;padding: 2px 20px; border: red 1px solid; text-align: center; color: #000; cursor: pointer;}

[/span>body

[/span>div class="main box"

[/span>div class="cover"

[/span>img src="images/guagua-cover3.png" class="pictureOver" alt=""

[/span>div class="anniu"

[/span>span class="btn close"

[/span>span class="btn open"

[/span>script src=""

[/span>script src="js/Scratch.js"

[/span>script type="text/javascript"

/实例化方法/

var scratch = new Scratch({

canvasId: 'box',

close:".close",

open:".open",

cover:".cover",

cursor: {

x: '-20',

y: '-20'

},

radius: 20,

nPoints: 1000,

percent: 30,

pointSize: { x: 5, y: 5},

callback: function () {/刮刮之后的函数/

console.log("回调函数");

}

});

js:

var Scratch = (function () {

/

Merge properties between two objects

@param obj1

@param obj2

@returns { {}}

*/

function mergeOptions(obj1, obj2){

var obj3 = {}//代码效果参考:http://www.ezhiqi.com/bx/art_1445.html ;

for (var key in obj1) { obj3【key】 = obj1【key】; }

for (var key in obj2) { obj3【key】 = obj2【key】; }

return obj3;

}

/随机函数

Generate a random number

@param min

@param max

@returns {Number}

/

function randomPoint(min, max) {

var random = Math.abs(Math.random()(max - min) + min);

return random = parseInt(random.toFixed(0), 10);

}

/*

Scratch constructor

@param options

@constructor

/

var Scratch = function(options) {

this.cursor = {

png: '', // Modern browsers

cur: '', // for IE

x: 0,

y: 0,

default: 'auto'

};

this.pointSize = {

x: 5,

y: 5

};

this.defaults = {

canvasId: '', // Canvas id

open:"",

cover:"",

cursor: this.cursor, // Custom pointer

sceneWidth: 302, // Canvas Width</span>

sceneHeight: 60, // Canvas Height</span>

radius: 40, // Radius of scratch zone

nPoints: 10, // n points for clear canvas

pointSize: this.pointSize,

percent: null,

callback: null

};

this.options = mergeOptions(this.defaults, options); /此处使得可以直接获得this.options.canvasId/

this.options.cursor = mergeOptions(this.cursor, options.cursor);

this.options.pointSize = mergeOptions(this.pointSize, options.pointSize);

console.log(this.options.canvasId);

// init Scratch

this.init();

};

Scratch.prototype.init = function () {

var _this = this; // Save the "this" :)

console.log("初始化成功");

console.log(this.options.btn);

console.log(this.options.cover);

/打开/

$(this.options.open).click(function(){

_this.show();

});

/关闭*/

$(this.options.close).click(function(){

_this.hide();

});

};

//显示

Scratch.prototype.show = function() {

console.log("22");

$(this.options.cover).fadeIn(500);

this.options.callback();

};

//隐藏

Scratch.prototype.hide = function() {

$(this.options.cover).fadeOut(200);

this.callback(this.options.callback);

};

//回调

Scratch.prototype.callback = function(callback) {

if (callback != null this.percent >= this.options.percent) {

callback();

}

};

return Scratch;

})();

给心灵一个纯净空间,让思想,情感,飞扬!

相关文章
|
9月前
|
C语言 C++ 开发者
深入探索C++:特性、代码实践及流程图解析
深入探索C++:特性、代码实践及流程图解析
|
6月前
|
前端开发 Java Spring
SpringMVC种通过追踪源码查看是哪种类型的视图渲染器(一般流程方法)
这篇文章通过示例代码展示了如何在Spring MVC中编写和注册拦截器,以及如何在拦截器的不同阶段添加业务逻辑。
SpringMVC种通过追踪源码查看是哪种类型的视图渲染器(一般流程方法)
|
6月前
|
C# 前端开发 UED
WPF数据验证实战:内置控件与自定义规则,带你玩转前端数据验证,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,数据验证是确保输入正确性的关键环节。前端验证能及时发现错误,提升用户体验和程序可靠性。本文对比了几种常用的WPF数据验证方法,并通过示例展示了如何使用内置验证控件(如`TextBox`)及自定义验证规则实现有效验证。内置控件结合`Validation`类可快速实现简单验证;自定义规则则提供了更灵活的复杂逻辑支持。希望本文能帮助开发者更好地进行WPF数据验证。
209 0
|
8月前
|
存储 编译器 程序员
【C++高阶】C++继承学习手册:全面解析继承的各个方面
【C++高阶】C++继承学习手册:全面解析继承的各个方面
67 1
|
8月前
|
存储 监控 Java
详尽分享统一对象消息编程(4)—对象消息编程框架1(基本接口)
详尽分享统一对象消息编程(4)—对象消息编程框架1(基本接口)
53 0
|
小程序 API 开发者
【小程序全面解析】生命周期、常用组件,代码示例和使用场景
该文章全面介绍了小程序的生命周期、常用基础组件以及使用场景,并提供了相应的代码示例。读者可以了解小程序的生命周期函数及其执行时机,以及学习如何使用常用基础组件构建小程序页面。此外,文章还列举了各种使用场景,帮助读者更好地理解如何应用小程序开发。如果您是小程序开发的初学者或需要了解小程序的基础知识,该文章将为您提供全面的帮助和指导。
453 0
【小程序全面解析】生命周期、常用组件,代码示例和使用场景
|
存储 数据可视化 Ubuntu
bcftools学习笔记丨软件简介、安装方式、使用方法、核心功能、参数解释等一文速览
bcftools学习笔记丨软件简介、安装方式、使用方法、核心功能、参数解释等一文速览
|
安全 中间件 开发者
【Django学习笔记 - 9】:装饰器在类视图中的使用、中间件(开发中间件)、知识点小补充(子应用的集中管理)
【Django学习笔记 - 9】:装饰器在类视图中的使用、中间件(开发中间件)、知识点小补充(子应用的集中管理)
424 8
【Django学习笔记 - 9】:装饰器在类视图中的使用、中间件(开发中间件)、知识点小补充(子应用的集中管理)
|
JSON 前端开发 JavaScript
封装库/工具库中重要概念之mock数据
在前端开发中,Mock数据是一个非常重要的概念。它能够帮助我们在没有后端API支持的情况下,模拟数据源并进行开发测试。随着前端技术的发展,越来越多的封装库和工具库提供了Mock数据的功能。在本文中,我们将探讨前端中封装库和工具库在Mock数据方面的作用。
245 0
|
编解码 前端开发 数据处理
前端基础向--从项目入手封装公共组件
前端基础向--从项目入手封装公共组件
324 0