当前位置: 首页 > news >正文

做游戏还是做网站好交易平台网站制作

做游戏还是做网站好,交易平台网站制作,店铺首页如何设计,网页游戏下载前面的话 虽然jQuery已经日渐式微#xff0c;但它里面的许多思想#xff0c;如选择器、链式调用、方法函数化、取赋值合体等#xff0c;有的已经变成了标准#xff0c;有的一直影响到现在。所以#xff0c;jQuery是一个伟大的前端框架。前端世界日新月异#xff0c;由于实…前面的话   虽然jQuery已经日渐式微但它里面的许多思想如选择器、链式调用、方法函数化、取赋值合体等有的已经变成了标准有的一直影响到现在。所以jQuery是一个伟大的前端框架。前端世界日新月异由于实在是没有时间去精读源码于是自己封装一个简易版本的jQuery来梳理jQuery的核心思路   基本构架   由于火柴的英文是match应该将这个简单框架称为mQuery。使用面向对象的写法来写mQuery构造函数是Mquery()调用$()方法将根据Mquery()构造函数创建一个实例对象 //构造函数 function Mquery(arg){} function $(arg){return new Mquery(arg); }   jquery几大特征   1、通过$()选择的元素都是一个集合即使仅仅是一个元素   因此创建一个elements属性为一个数组去接收获取的元素 //构造函数 function Mquery(arg){//保存所选择的元素this.elements []; }   2、链式调用   所以原型函数要返回this以实现链式调用的效果   $函数   $函数根据参数类型的不同用途也不同   1、参数为函数时则直接运行 $(function(){console.log(1) })   2、参数为对象时则把DOM对象转换为$对象 $(document.body)   3、参数为字符串时则根据字符串选择出元素并转换为$对象 $(#box)   下面根据以上三个分类来编写Mquery构建函数 //事件绑定兼容写法 function _addEvent(target,type,handler){if(target.addEventListener){target.addEventListener(type,function(e){//如果事件函数中出现 return false;则阻止默认事件和阻止冒泡if(typeof handler function handler() false){e.preventDefault();e.cancelBubble true;}},false);}else{target.attachEvent(ontype,function(event){if(typeof handler function handler() false){event.cancelBubble true;event.returnValue false;}return handler.call(target,event);});} }//将类数组转换成数组 function _toArray(arrayLike){return Array.prototype.slice.call(arrayLike); } //构造函数 function Mquery(arg){//保存所选择的元素this.elements [];switch(typeof arg){//当参数是函数时如$(function(){})()直接运行里面的代码case function:_addEvent(window,load,arg);break;//当参数是字符串时选择元素case string:this.elements _toArray(document.querySelectorAll(arg)); break;//当参数是DOM对象时将DOM对象转换为$对象 case object:if(arg.constructor Array){this.elements arg;}else{this.elements.push(arg);} break;} }   HTML、CSS及特性设置   下面来介绍常用的HTML、CSS及特性设置 【HTML】   对于文本内容来说一般地有三种方法html()、text()和val()。本文只实现最常用的html()方法   当html()方法没有参数时表示获取内容有一个参数时表示设置内容 //HTML获取与设置 Mquery.prototype.html function(str){//设置if(str){for(var i 0; i this.elements.length; i){this.elements[i].innerHTML str;}//获取}else{return this.elements[0].innerHTML;} return this; } 【CSS】   对于CSS来说有两种参数格式一种是json格式一种是字符串格式   当第一个参数为对象时则判断为json格式否则为字符串格式   对于字符串格式来说只有一个参数时为获取样式两个参数时为设置样式   获取样式时仅获取当前集合中第0个元素的样式设置样式时则设置当前集合中所有元素的样式 //获取计算样式兼容写法 function _getCSS(obj,style){if(window.getComputedStyle){return getComputedStyle(obj)[style];}return obj.currentStyle[style]; } //CSS获取与设置 Mquery.prototype.css function(attr,value){//如果是对象的形式以对象的形式设置if(typeof attr object){for(var att in attr){for(var j 0; j this.elements.length; j){this.elements[j].style[att] attr[att];}}//如果不是对象的形式}else{//设置if(arguments.length 2){for(var i 0; i this.elements.length; i){this.elements[i].style[attr] value;}//获取}else if(arguments.length 1){return _getCSS(this.elements[0],attr)}}return this; } 【attr】   特性设置与获取的思路与CSS类似只是方法变成了setAttribute()和getAttribute() //attr获取与设置 Mquery.prototype.attr function(attr,value){//如果是对象的形式if(typeof attr object){for(var att in attr){for(var j 0; j this.elements.length; j){this.elements[j].setAttribute(att,attr[att]);}}//如果不是对象的形式}else{//设置if(arguments.length 2){for(var i 0; i this.elements.length; i){this.elements[i].setAttribute(attr,value);}//获取}else if(arguments.length 1){return this.elements[0].getAttribute(attr);}}return this; }   事件绑定 【on】   在jQuery中最常用的事件绑定方法就是on方法。在on方法中要特别注意的是this的绑定由于函数fn中的this实际上是window所以应该将fn的this绑定到当前元素 //事件绑定 Mquery.prototype.on function(eventType,fn){for(var i 0; i this.elements.length; i){_addEvent(this.elements[i],eventType,fn.bind(this.elements[i));}return this; } 【click和hover】   click方法是一个简写方法 Mquery.prototype.click function(fn){this.on(click,fn);return this; }   hover方法是mouseover和mouseout的合成方法 Mquery.prototype.hover function(fnOver,fnOut){this.on(mouseover,fnOver);this.on(mouseout,fnOut);return this; } 【return false】   在jQuery中使用return false可以同时阻止默认行为和阻止冒泡 //事件绑定兼容写法 function _addEvent(target,type,handler){if(target.addEventListener){target.addEventListener(type,function(e){//如果事件函数中出现 return false;则阻止默认事件和阻止冒泡if(typeof handler function handler() false){e.preventDefault();e.cancelBubble true;}},false);}else{target.attachEvent(ontype,function(event){if(typeof handler function handler() false){event.cancelBubble true;event.returnValue false;}return handler.call(target,event);});} }   其他设置   jQuery的功能非常强大。下面选择一些常用功能进行实现 【显示隐藏】 //隐藏 Mquery.prototype.hide function(){for(var i 0; i this.elements.length; i){//保存当前元素的display值this.elements[i].displayValue this.elements[i].style.display;this.elements[i].style.display none;}return this; } //显示 Mquery.prototype.show function(){for(var i 0; i this.elements.length; i){this.elements[i].style.display this.elements[i].displayValue;//删除保存的元素的display值delete this.elements[i].displayValue;}return this; } 【插件设置】 $.extend function(json){ for(var attr in json){$[attr] json[attr];} }; $.fn {}; $.fn.extend function(json){for(var attr in json){Mquery.prototype[attr] json[attr];} }; 【索引设置】 //根据索引选择元素 Mquery.prototype.eq function(number){return $(this.elements[number]); }//根据元素获取索引 Mquery.prototype.index function(){var elements this.elements[0].parentNode.children;for(var i 0; i elements.length; i){if(elements[i] this.elements[0]){return i;}} } 【子级筛选】 //筛选出当前匹配的元素集合中每个元素的后代 Mquery.prototype.find function(str){var arr [];for(var i 0; i this.elements.length; i){Array.prototype.push.apply(arr,this.elements[i].querySelectorAll(str));}return $(arr); }   完整源码   下面是mQuery的完整源码 //事件绑定兼容写法 function _addEvent(target,type,handler){if(target.addEventListener){target.addEventListener(type,function(e){//如果事件函数中出现 return false;则阻止默认事件和阻止冒泡if(typeof handler function handler() false){e.preventDefault();e.cancelBubble true;}},false);}else{target.attachEvent(ontype,function(event){if(typeof handler function handler() false){event.cancelBubble true;event.returnValue false;}return handler.call(target,event);});} } //获取计算样式兼容写法 function _getCSS(obj,style){if(window.getComputedStyle){return getComputedStyle(obj)[style];}return obj.currentStyle[style]; }//将类数组转换成数组 function _toArray(arrayLike){return Array.prototype.slice.call(arrayLike); } //构造函数 function Mquery(arg){//保存所选择的元素this.elements [];switch(typeof arg){//当参数是函数时如$(function(){})()直接运行里面的代码case function:_addEvent(window,load,arg);break;//当参数是字符串时选择元素case string:this.elements _toArray(document.querySelectorAll(arg)); break;//当参数是DOM对象时将DOM对象转换为$对象 case object:if(arg.constructor Array){this.elements arg;}else{this.elements.push(arg);} break;} } //根据索引选择元素 Mquery.prototype.eq function(number){return $(this.elements[number]); } //根据元素获取索引 Mquery.prototype.index function(){var elements this.elements[0].parentNode.children;for(var i 0; i elements.length; i){if(elements[i] this.elements[0]){return i;}} } //筛选出当前匹配的元素集合中每个元素的后代 Mquery.prototype.find function(str){var arr [];for(var i 0; i this.elements.length; i){Array.prototype.push.apply(arr,this.elements[i].querySelectorAll(str));}return $(arr); } //CSS获取与设置 Mquery.prototype.css function(attr,value){//如果是对象的形式以对象的形式设置if(typeof attr object){for(var att in attr){for(var j 0; j this.elements.length; j){this.elements[j].style[att] attr[att];}}//如果不是对象的形式}else{//设置if(arguments.length 2){for(var i 0; i this.elements.length; i){this.elements[i].style[attr] value;}//获取}else if(arguments.length 1){return _getCSS(this.elements[0],attr)}}return this; } //attr获取与设置 Mquery.prototype.attr function(attr,value){//如果是对象的形式if(typeof attr object){for(var att in attr){for(var j 0; j this.elements.length; j){this.elements[j].setAttribute(att,attr[att]);}}//如果不是对象的形式}else{//设置if(arguments.length 2){for(var i 0; i this.elements.length; i){this.elements[i].setAttribute(attr,value);}//获取}else if(arguments.length 1){return this.elements[0].getAttribute(attr);}}return this; } //HTML获取与设置 Mquery.prototype.html function(str){//设置if(str){for(var i 0; i this.elements.length; i){this.elements[i].innerHTML str;}//获取}else{return this.elements[0].innerHTML;} return this; } //隐藏 Mquery.prototype.hide function(){for(var i 0; i this.elements.length; i){//保存当前元素的display值this.elements[i].displayValue this.elements[i].style.display;this.elements[i].style.display none;}return this; } //显示 Mquery.prototype.show function(){for(var i 0; i this.elements.length; i){this.elements[i].style.display this.elements[i].displayValue;//删除保存的元素的display值delete this.elements[i].displayValue;}return this; } //事件绑定 Mquery.prototype.on function(eventType,fn){for(var i 0; i this.elements.length; i){_addEvent(this.elements[i],eventType,fn.bind(this.elements[i]));}return this; } //click简写 Mquery.prototype.click function(fn){this.on(click,fn);return this; } //鼠标移入移出 Mquery.prototype.hover function(fnOver,fnOut){this.on(mouseover,fnOver);this.on(mouseout,fnOut);return this; } $.extend function(json){ for(var attr in json){$[attr] json[attr];} }; $.fn {}; $.fn.extend function(json){for(var attr in json){Mquery.prototype[attr] json[attr];} }; function $(arg){return new Mquery(arg); }   实际应用   下面使用mQuery来实现一个简单的效果 style div { width:60px; height:60px; margin:5px; float:left; } /style span idresult/span div stylebackground-color:blue;/div div stylebackground-color:rgb(15,99,30);/div div stylebackground-color:#123456;/div div stylebackground-color:#f11;/div script srcmQuery.js/script script $(div).click(function(){$(#result).html(背景颜色是 $(this).css(background-color)); }) /script   点击不同颜色的元素块将在右侧显示具体的颜色值
http://www.yutouwan.com/news/32244/

相关文章:

  • 淘宝买网站开发不行吗微营销推广平台有哪些
  • 万网空间上传网站上海南山做网站
  • 聊城有限公司网站建设 中企动力济二分网站建设中页面下载
  • 金坛网站建设报价苏州免费发布信息网站
  • 计算机大二建设网站旅游网站开发的作用
  • 天津做网站公司哪家好网站优化的要求
  • 深圳彩票网站开发人员wordpress博客文章美化
  • 成品网站源码1688体验区iis内网站设置允许脚本执行
  • 网站虚拟空间过期苏州关键词优化搜索排名
  • 网站名字怎样做版权十大免费cad制图软件
  • 惠州市建设局网站办事指南网站策划书模板
  • 宿迁网站搭建合肥网站关键词seo优化公司
  • 服装企业微网站建设东莞建设工程检测中心网站
  • 做文案公众号策划兼职网站网络培训视频如何快速完成
  • 网站 做百度推广有没有效果网站业务费如何做记账凭证
  • 金泉网做的山东黄锈石网站有哪些如何在yy做电影网站
  • 兰州有制作网站wordpress 添加文章格式
  • 哪些网站能够免费做公考题营销型网站建设怎么样
  • 网站开发必会语言门户网站建设所需条件
  • 济南做网站设计做网站的公司首选智投未来
  • 简单网站制作实例英文网站建设390
  • wordpress seo选项推广seo是什么意思
  • 网站建设理由和目的古风网站建设模板
  • 虚拟技术对网站建设维护的影响高级网站建设费用
  • 智慧团建网站链接建站公司网站论坛
  • 公司设计一个网站需要多久电商网站 知名案例
  • 哪个网站可以做魔方图片赤峰建设淘宝网站
  • 企业网站建设需要哪些资料平面设计主要学什么软件
  • php网站目录系统系统定制
  • 北京企业网站优化专业网站建设优势