意图仿造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. 实力为王 八年DBA经验谈

    首先说说我的经历吧,工作8年,一直是搞运维这一块.做数据库的工作大概6年多,ORACLE DBA大概做了有4年多,目前只能说是比入门级稍高点的水平.我是最近为了换个更好的工作才在今年通过的OCP 11 ...

  2. asp.net mvc 上传图片流存服务器

    foreach (var file in Request.Files) { ]); using (FileStream fs = new FileStream(pathSrc, FileMode.Cr ...

  3. javascript 数据结构和算法读书笔记 > 第二章 数组

    这章主要讲解了数组的工作原理和其适用场景. 定义: 一个存储元素的线性集合,元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量. javascript数组的特殊之处: jav ...

  4. Binder的非正常消亡时的重置方法

    一.原理 当Binder非正常消亡的时候,会导致远程调用失败,这样客户端功能就会受到影响. 解决:给Binder设置一个死亡代理,当Binder死亡时,我们就会收到通知,这个时候可以重新发起连接. 二 ...

  5. python-md5加密

    python实现:md5_hash.py #-*- coding: UTF-8 -*- ' __date__ = '2016/4/11' from Tkinter import * import ha ...

  6. SQL Server 数据库状态选项

    选项 1. single_user(单用户),multi_user(多用户),restricted_user(受限用户); 描述数据库的用户访问属性,它们互斥,设置其中任何一个选项就会取消对其它选项的 ...

  7. Delphi代码中嵌入ASM代码

    前言 Delphi作为一个快速高效的开发平台,使用的人越来越多,但熟悉在Delphi代码中嵌入ASM代码的程序员我想不多,因为这方面的资料太少了,另一方面,它还需要有基本的汇编语言知识,关於汇编语言的 ...

  8. 习题3.4 & 3.5: 求两链表的交集和并集

    #include<stdio.h> #include<stdlib.h> struct Node; typedef struct Node *PtrToNode; typede ...

  9. 转载: Nova-Router 分析

    很早的实现了,nova代码已经做了很多修改了. 以创建实例 URL(http://10.191.7.32:8773/v1.1/service?*****)为例说明 Router 的执行流程 1. 依据 ...

  10. LOL是什么意思? - 已解决 - 搜狗问问

    LOL是什么意思? - 已解决 - 搜狗问问 N A T S U . |分类:QQ工具栏 2009-05-04 LOL是什么意思? 满意答案 Shim Nyong 19级 2009-05-04 LOL ...