意图仿造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的一些小尝试的更多相关文章

  1. 一个简单用原生js实现的小游戏----FlappyBird

    这是一个特别简单的用原生js实现的一个小鸟游戏,比较简单,适合新手练习 这是html结构 <!DOCTYPE html><html lang="en">&l ...

  2. JQuery&原生js ——实现剪刀石头布小游戏

    前言 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库( 或JavaScript框架).jQuery设计的宗旨是“write L ...

  3. 原生js完成拼图小游戏

    废话不说,看代码,图片可以自己找,我这直接引用了百度的了 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml ...

  4. 原生js做h5小游戏之打砖块

    前言 首先,先说明一下做这个系列的目的:其实主要源于博主希望熟练使用 canvas 的相关 api ,同时对小游戏的实现逻辑比较感兴趣,所以希望通过这一系列的小游戏来提升自身编程能力:关于 es6 语 ...

  5. 原生js完成打地鼠小游戏

    :这是首页,有简单模式和地狱模式两种模式进行选择 这是选择完模式之后的游戏界面:30秒一局游戏倒计时,每打中一只老鼠加一分,没砸中减一分,没砸不加不减 首先准备几张图片 html代码: <!-- ...

  6. 原生js,一些小应用(逢10进一,生成V字,多个div抖动)

    第一题:每隔10个div换一行.并且鼠标移入 改变opacity. <!DOCTYPE html> <html lang="en"> <head> ...

  7. 【CSS进阶】原生JS getComputedStyle等方法解析

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  8. js写个小时钟

    原生js写个小时钟 一.代码 今天美化博客园自学的哈,分享一下 <!--标题变成时钟--> <div id="Header1_HeaderTitle">&l ...

  9. 【转】利用 three.js 开发微信小游戏的尝试

    前言 这是一次利用 three.js 开发微信小游戏的尝试,并不能算作是教程,只能算是一篇笔记吧. 微信 WeChat 6.6.1 开始引入了微信小游戏,初期上线了一批质量相当不错的小游戏.我在查阅各 ...

随机推荐

  1. JS中slice,splice,split的区别

    不知道大家对slice,splice,splite是肿么样的感觉,反正我刚接触到这三个函数的时候整个人都懵了,因为一个个长的跟孪生兄弟似的,每次用的时候都会混,于是决定记下来,也给大家当个参考吧. s ...

  2. 第三方浏览器内核嵌入一、Crosswalk

    本篇分为三部分: 介绍Crosswalk背景 介绍Crosswalk集成步骤 为了减小体积,仅集成兼容ARM的Crosswalk(针对X86同理) PART_A Crosswalk背景介绍 Web技术 ...

  3. 13个mysql数据库的实用SQL小技巧

    此文章为转载 使用CASE来重新定义数值类型 SELECT id,title, (CASE date WHEN '0000-00-00' THEN '' ELSE date END) AS date ...

  4. ASP.NET DataList绑定数据并实现分页

    显示当前页码Label属性 值ID NowPageNumberLabtext    1 ×××××××××××××××××××××显示总页码Label属性 值ID BackPageNumberLabt ...

  5. javascript二级联动

    二级联动在一般的网页中随处可见,一般是地址,比如点击浙江省,随后出现的是杭州市,嘉兴市:点击北京省出现的是朝阳,海淀,而不是出现杭州,嘉兴. 要想实现这个步骤,就要用到javascript来实现.其中 ...

  6. php正则提取img所有属性值

    $ext = 'gif|jpg|jpeg|bmp|png';//罗列图片后缀从而实现多扩展名匹配 by http://www.k686.com 绿色软件 $str = ''; $list = arra ...

  7. 使用file_get_content系列函数和使用curl系列函数采集图片的性能对比

    由于公司的一个汽车网站的后台的汽车内容都是主要是来自与汽车之家的,编辑的同事们必须天天手动去对着汽车之家来添加汽车,实在是太蛋疼了.于是乎,为了改变这种状况,作为一个开发码农,我的任务就来了...那就 ...

  8. A Byte of Python 笔记(3)运算符和表达式

    第5章 运算符与表达式 大多数语句(逻辑行)都包含表达式.例子,如 2 + 3.一个表达式可以分解为运算符和操作数. 运算符 运算符 名称 说明 例子 + 加 两个对象相加 3 + 5得到8.'a' ...

  9. IO-03. 求整数均值

    /** *A3-IO-03. 求整数均值(10) *C语言实现 *测试已通过 */ #include "stdio.h" int main() { int a,s,d,f; sca ...

  10. MYSQL 数学运算符问题

    背景: 在mysql中   ’stringA' + 'stringB' 这种类型的操作,在mysql内部会自动转化为两个double 数进行运算. -------------------------- ...