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

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

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;

})();

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

相关文章
|
7月前
|
JSON Java 数据格式
使用`MockMvc`额外的补充和高级用法
使用`MockMvc`额外的补充和高级用法
75 3
|
5月前
|
前端开发 Java Spring
SpringMVC种通过追踪源码查看是哪种类型的视图渲染器(一般流程方法)
这篇文章通过示例代码展示了如何在Spring MVC中编写和注册拦截器,以及如何在拦截器的不同阶段添加业务逻辑。
SpringMVC种通过追踪源码查看是哪种类型的视图渲染器(一般流程方法)
|
5月前
|
C# 前端开发 UED
WPF数据验证实战:内置控件与自定义规则,带你玩转前端数据验证,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,数据验证是确保输入正确性的关键环节。前端验证能及时发现错误,提升用户体验和程序可靠性。本文对比了几种常用的WPF数据验证方法,并通过示例展示了如何使用内置验证控件(如`TextBox`)及自定义验证规则实现有效验证。内置控件结合`Validation`类可快速实现简单验证;自定义规则则提供了更灵活的复杂逻辑支持。希望本文能帮助开发者更好地进行WPF数据验证。
172 0
|
8月前
|
缓存 监控 Java
Hysterix的概念、作用、使用方法
Hysterix的概念、作用、使用方法
75 0
|
存储 数据可视化 Ubuntu
bcftools学习笔记丨软件简介、安装方式、使用方法、核心功能、参数解释等一文速览
bcftools学习笔记丨软件简介、安装方式、使用方法、核心功能、参数解释等一文速览
|
Java 测试技术 容器
工作中责任链模式用法及其使用场景?
工作中责任链模式用法及其使用场景?
140 0
|
编解码 前端开发 数据处理
前端基础向--从项目入手封装公共组件
前端基础向--从项目入手封装公共组件
316 0
|
编译器 C++
泛型编程的第一步,掌握模板的特性!
本篇主要是说明「模板」的特性,使用「模板」的特性设计,实际上也就是「泛型」程序设计。
泛型编程的第一步,掌握模板的特性!

热门文章

最新文章