【物件导向】javascript 物件导向概念 API (範例可玩)

物件导向系列
PHP系列
【物件导向】PHP 物件导向 简易分页实作
javascript系列
【物件导向】javascript 物件导向概念 API (範例可玩)

####闲话专区 Start####

老闆喜欢金色
我又不想一直开PS CS6 来改图...
就开发插件渲染了...

上传2D图片,自动上色
http://paintschainer.preferred.tech/
上色前
上色后
我画的烂的,别嫌了...

嗯...就这样...这张不是系统上色唷...
彩稿

####闲话专区 End####

置顶关键字说明

hsla(hue 值, saturation 值, lightness 值, alpha 值)rgba(red 值, green 值, blue 值, alpha 值)---------------------------------------------------------闭包(function () {})();---------------------------------------------------------物件 = {}阵列 = [] ---------------------------------------------------------element.querySelector(CSS 选择器)---------------------------------------------------------var api = {} //物件this.ColorDivide = api; //API对外呼叫名称

API构成
1.全域变数
2.方法
3.程式入口

思维 程式入口->设定->执行方法 = 改变网页样式

物件 = {}
阵列 = []

闭包(函式内的物件)
(function () {

})();

全域变数

var options = {splitter: 'Default',color_bsdic:{ H:30,S:50,L:50 }}

变数用途说明
t = 寻找到的 CSS or ID
splitter = 字串 目的用于 切换模板
color_bsdic = 设定的基础颜色

function injector(t, splitter , color_bsdic) {}

API说明
一.
element.querySelector(CSS 选择器)

二.
var api = {} //物件
this.ColorDivide = api; //API对外呼叫名称

三.

//预设颜色ColorDivide.listen('#demo1');
//自订颜色ColorDivide.config({color_bsdic:{ H:10,S:100,L:50 }}).listen('#demo2');

看出差异了吗...
ColorDivide.config 不设定也可以
config用于改变全域变数

var options = {splitter: 'Default',color_bsdic:{ H:30,S:50,L:50 }}

这2个看你们习惯用哪个噜...
hsla(hue 值, saturation 值, lightness 值, alpha 值)
rgba(red 值, green 值, blue 值, alpha 值)

var getRandomColor = function(Offset,color){  return 'hsla(' + (  color.H + ( Offset * 2 )  ) + ', ' + ( color.S + ( Offset* 4 ) ) + '%, ' + ( color.L + ( Offset * 2 )  ) + '%, 1)';}

呼叫他->改变全域 ->ColorDivide.listen->也是叫全域变数
下面他在干吗你懂了吧

//APIvar api = {    config: function (opts) {        if(!opts) return options;        for(var key in opts) {            options[key] = opts[key];        }        return this;    },    listen: function listen(elem) {        if (typeof elem === 'string') {            var elems = document.querySelectorAll(elem),                i = elems.length;                while (i--) {                    listen(elems[i]);                }                return        }        injector(elem, options.splitter , options.color_bsdic);        return this;    }

要做什就看你要对网页干吗了...

轮播、进度条、AJAX等,如果你很闲...老闆有给你时间...就去开发吧...

###程式码複製区###
###A页###

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>ColorDivide.JS</title><style>* {margin:0; padding:0;}body {background: #CCC;}::-moz-selection{ background: #FF5E99; color:#fff; text-shadow: none; }::selection { background:#FF5E99; color:#fff; text-shadow: none; } .wrapper {width: 710px;margin-left: auto;margin-right: auto;margin-top: 20px;background: #FFFFFF;padding: 50px;}.code {background: #f8f8f8;border: 1px solid #ccc;margin-bottom: 2em;padding: 10px;}</style></head><body><div class="wrapper"><header><h1>ColorDivide.js</h1><h4>作者:pratnket</h4><h4>版本:2017_Var1</h4><br><p>A simple plug to divide something by JavaScript,no need jQuery.</p><p>一个轻量级的JavaScript插件,可以通过这个插件对字母,单词或句子进行染色,无需依赖jQuery。</p><br></header><article><h1 align=center>预设颜色</h1><div class="code" align=center><h1 id="demo1">ColorDivide.listen('#demo1')</h1></div><h1 align=center>自订颜色</h1><div class="code" align=center><h1 id="demo2">ColorDivide.</h1><h1 id="demo2">config({color_bsdic:{ H:60,S:90,L:30 }}).</h1><h1 id="demo2">listen('#demo2');</h1></div></article></div><script src="ColorDivide.js"></script><script>//预设颜色ColorDivide.listen('#demo1');//自订颜色ColorDivide.config({color_bsdic:{ H:10,S:100,L:50 }}).listen('#demo2');</script></body></html>

###JS页###

(function () {var options = {splitter: 'Default',color_bsdic:{ H:30,S:50,L:50 }}//helpervar getRandomColor = function(Offset,color){  return 'hsla(' + (  color.H + ( Offset * 2 )  ) + ', ' + ( color.S + ( Offset* 4 ) ) + '%, ' + ( color.L + ( Offset * 2 )  ) + '%, 1)';}function injector(t, splitter , color_bsdic) {var text = t.textContent,//a = text.split(splitter),a,after,inject = '';if(splitter === 'Default') {a = text.split('');after = '';}if (a.length) {var Offset = 0;for(var i = 0; i < a.length; i++) {( (i*2) > a.length )?(Offset--):(Offset++);var font_color = getRandomColor(Offset,color_bsdic);inject += '<span style="color:'+font_color+'">' + a[i] + '</span>' + after;}t.setAttribute('aria-label', text);t.innerHTML = inject;}}//APIvar api = {config: function (opts) {if(!opts) return options;for(var key in opts) {options[key] = opts[key];}return this;},listen: function listen(elem) {if (typeof elem === 'string') {var elems = document.querySelectorAll(elem),i = elems.length;while (i--) {listen(elems[i]);}return}injector(elem, options.splitter , options.color_bsdic);return this;}}this.ColorDivide = api;})();

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章