意图仿造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实现用键盘控制DIV上下左右+放大缩小与变色

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. javascript必知必会之prototype

    本博客所有内容采用 Creative Commons Licenses 许可使用. 引用本内容时,请保留 朱涛, 出处 ,并且 非商业 . 点击 RSS 进行订阅.(推荐使用 google reade ...

  3. Hadoop安装(2)安装hadoop 前的centos 设置

    将虚拟机网络连接设为:Bridged 添加用户:hadoop,设置密码.关闭防火墙,selinux.暂且不关闭不需要的任务. 参照:http://www.cnblogs.com/xia520pi/ar ...

  4. JAVASCRIPT——图片滑动效果

    点击按钮开始整体右移,移动至蓝色区域全部显示出来停止. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...

  5. JS判断终端浏览器类型

    根据终端浏览器类型不懂加载不同的JS或CSS文件 <script> var browser = { versions: function () { var u = navigator.us ...

  6. knockoutjs简单使用

    knockoutjs是一个不错的前端MVVM框架,极大的减轻了前端工作开发量,增加前端代码的维护性.主要特点:声明式绑定.依赖跟踪.模块开速开发. 如下代码(官方代码稍做修改) <p> 姓 ...

  7. jquery读取本地文件

    <html> <head> <script type="text/javascript" src="/jquery/jquery.js&qu ...

  8. linux c语言连接mysql

    ubuntu下使用apt-get安装mysql: sudo apt-get install mysql-server sudo apt-get install mysql-client sudo ap ...

  9. Linux01--文件管理,常用命令 权限管理

    一.Ø文件系统 1.Linux文件系统特点  • Linux文件系统为单根的树状结构  •文件系统根为”/”  •文件名大小写敏感,除了”/”都是可用字符文件名以”.”开始的为隐藏文件  •文件路径使 ...

  10. ODI 11g Studio 修改界面语言

    {ODI_HOME}/oracledi\client\ide\bin找到ide.conf 添加AddVMOption -Duser.language=enAddVMOption -Duser.regi ...