对原生js的一些小尝试
意图仿造JQ操作以及弄个个人工具箱,不断完善中,代码均为个人摸索,所以肯定会有不少不足的地方,希望读者们能提出来。
var xzhUtils = {
//-----DOM对象添加类-----
//--@param: obj DOM对象
//--@param: cls 添加的类
addClass : function (obj, cls){
var ocls = obj.className;
if(!ocls){
obj.className = cls;
} else{
ocls += " "+cls;
obj.className = ocls;
}
},
//-----DOM对象移除类-----
//--@param: obj DOM对象
//--@param: cls 移除的类
removeClass : function (obj, cls){
var ocls = obj.className;
if(ocls){
var arr = ocls.split(" ");
for(var i in arr){
if(arr[i]==cls){
arr.splice(i,1);
break;
}
}
ocls = arr.join(" ");
obj.className = ocls;
}
},
//-----计算上卷值-----
scrollPos : function() {
var scrollPos;
if (typeof window.pageYOffset != 'undefined'){
scrollPos = window.pageYOffset;
}else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat'){
scrollPos = document.documentElement.scrollTop;
}else if (typeof document.body != 'undefined'){
scrollPos = document.body.scrollTop;
}
return scrollPos;
},
//-----获取下一个兄弟节点-----
//--@param: eventObj 要获取下一兄弟节点的DOM对象
//--@return: x eventObj的下一兄弟节点
next : function(eventObj){
var e = eventObj;
var x = e.nextSibling;
while(x.nodeType!=1){
x = x.nextSibling;
}
return x;
}
}
-----2014/09/01 微改版
window.onload = function(){
(function() {
var xzh = {};
//-----DOM对象添加类-----
//--@param: obj DOM对象
//--@param: cls 添加的类
Object.prototype.addClass = function (cls){
var obj = this;
var ocls = obj.className;
if(!ocls){
obj.className = cls;
} else{
ocls += " "+cls;
obj.className = ocls;
}
},
//-----DOM对象移除类-----
//--@param: obj DOM对象
//--@param: cls 移除的类
Object.prototype.removeClass = function (cls){
var obj = this;
var ocls = obj.className;
if(ocls){
var arr = ocls.split(" ");
for(var i in arr){
if(arr[i]==cls){
arr.splice(i,1);
break;
}
}
ocls = arr.join(" ");
obj.className = ocls;
}
},
//-----计算上卷值-----
scrollPos = function() {
var scrollPos;
if (typeof window.pageYOffset != 'undefined'){
scrollPos = window.pageYOffset;
}else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat'){
scrollPos = document.documentElement.scrollTop;
}else if (typeof document.body != 'undefined'){
scrollPos = document.body.scrollTop;
}
return scrollPos;
},
//-----获取下一个兄弟节点-----
//--@param: eventObj 要获取下一兄弟节点的DOM对象
//--@return: x eventObj的下一兄弟节点
Object.prototype.next = function(){
var obj = this;
var x = obj.nextSibling;
while(x.nodeType!=1){ // 因为FF下会把空格也当作DOM
x = x.nextSibling;
}
return x;
}
})();
var item = document.getElementById("item");
item.addClass("demo");
}
对原生js的一些小尝试的更多相关文章
- 一个简单用原生js实现的小游戏----FlappyBird
这是一个特别简单的用原生js实现的一个小鸟游戏,比较简单,适合新手练习 这是html结构 <!DOCTYPE html><html lang="en">&l ...
- JQuery&原生js ——实现剪刀石头布小游戏
前言 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库( 或JavaScript框架).jQuery设计的宗旨是“write L ...
- 原生js完成拼图小游戏
废话不说,看代码,图片可以自己找,我这直接引用了百度的了 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml ...
- 原生js做h5小游戏之打砖块
前言 首先,先说明一下做这个系列的目的:其实主要源于博主希望熟练使用 canvas 的相关 api ,同时对小游戏的实现逻辑比较感兴趣,所以希望通过这一系列的小游戏来提升自身编程能力:关于 es6 语 ...
- 原生js完成打地鼠小游戏
:这是首页,有简单模式和地狱模式两种模式进行选择 这是选择完模式之后的游戏界面:30秒一局游戏倒计时,每打中一只老鼠加一分,没砸中减一分,没砸不加不减 首先准备几张图片 html代码: <!-- ...
- 原生js,一些小应用(逢10进一,生成V字,多个div抖动)
第一题:每隔10个div换一行.并且鼠标移入 改变opacity. <!DOCTYPE html> <html lang="en"> <head> ...
- 【CSS进阶】原生JS getComputedStyle等方法解析
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...
- js写个小时钟
原生js写个小时钟 一.代码 今天美化博客园自学的哈,分享一下 <!--标题变成时钟--> <div id="Header1_HeaderTitle">&l ...
- 【转】利用 three.js 开发微信小游戏的尝试
前言 这是一次利用 three.js 开发微信小游戏的尝试,并不能算作是教程,只能算是一篇笔记吧. 微信 WeChat 6.6.1 开始引入了微信小游戏,初期上线了一批质量相当不错的小游戏.我在查阅各 ...
随机推荐
- UVA 10305 Ordering Tasks
题意: 给出n和m,n代表总共有几个箱子.接下来m行,每行有a,b,表示b在a之后.输出一个合理的序列. 分析: 简单的拓扑排序: 代码: #include <iostream>#incl ...
- java工厂类与反射机制
java 简单工厂类 2012-04-22 15:44:07| 分类: java | 标签:java工厂类 简单工厂类 |举报|字号 订阅 简单工厂模式需要由以下角色组成: 接口 ...
- JavaScript Set Cursor Style
<!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <titl ...
- WCF Test Client
WCF测试客户端(WCF Test Client)是一个用来测试WCF服务程序的调试工具,能够使开发WCF服务更加方便. 在Visual Studio之外打开WCF测试客户端有两种方法:第一种方法是到 ...
- js实现超过长度的字符截取指定长度(中文字符算2个字符),超出部分以...显示
//超过长度的字符截取指定长度,超出部分以...显示 function subString(str, len) { var newLength = 0; var newStr = "&quo ...
- 5.7.13mysql 无法登陆
话不多说 用的http://dev.mysql.com/downloads/mysql/下的ZIP Archive安装方式 下载 解压,然后吧bin目录添加到系统path环境变量下.然后将my-de ...
- 私有构造函数(c# .NET)
如果类成员有private修饰符,就不允许在类范围以外访问这个类成员.对类构造函数应用private修饰符时,则禁止外部类创建该类的实例.尽管看上去有些不好理解(既然不能实例化,那么这个类还有什么用处 ...
- js学习心得(一)(菜鸟)
js基础已经打了好几次了,慕课跟着学了一遍,视频看了一些,还读了诸如 jsdom艺术,js精粹以及锋利jq(没读完). 这次再次重头读并写一遍代码,工具书是js,查缺补漏高级程序设计第二版,犀牛书有点 ...
- Today See>
http://wenku.baidu.com/view/b08f3575f46527d3240ce061.html http://wenku.baidu.com/view/a3419558be2348 ...
- servlet上传图片 服务器路径(转)
1.在servlet中上传图片,上传的文件夹是imge在webroot下,主要代码如下 private void saveImage(HttpServletRequest request, HttpS ...