对原生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 开始引入了微信小游戏,初期上线了一批质量相当不错的小游戏.我在查阅各 ...
随机推荐
- css3动画之animate
CSS3 动画属性 下面的表格列出了 @keyframes 规则和所有动画属性: 语法:div{animation: 动画名称 一个周期播放时间 速度曲线 延迟时间 下个周期是否逆向} @keyfra ...
- 06JS高级创建对象使用原型共享对象方法
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- zookeeper_04:curator
定义 Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更高,简化了Zookeeper客户端的开发量. <d ...
- Java的常见误区与细节
网上转来的 昨天整整一天,我都都呆在图书里.本打算找一些书学习“正则表达式”,很失望,没找到有这部分的内容的书.发现了一本<Java深入解析>,其中涉及了很多平时没有注意的一些误区,也许开 ...
- 在 WinForm 中打开页面采用POST方式传参http。可以多个参数传递,返回json字符串
//调用方法 Dictionary<string, string> postData = new Dictionary<string, string>(); postData. ...
- Eclipse使用git 上传代码至github
右击项目,选择Team->Share Project,弹出如下窗口. 选择git,next,在弹出的界面上,①先勾选Use or create……,②createrepository,③勾选工程 ...
- python 爬虫时遇到问题及解决
源代码: #unicoding=utf-8import reimport urllib def gethtml(url): html=urllib.urlopen(url) page=html.rea ...
- 这些年,我收集的JavaScript代码(一)
一.取URL中的参数 function getParameterByName(name) { var match = RegExp('[?&]' + name + '=([^&]*)' ...
- MYSQL 部分事务
MYSQL 中通过 savepoint 的方式来实现只提交事务的一部分. step 1 : savepoint savepoint_name;. 做标记 step 2 :rollbak to save ...
- HttpContext.Current.Cache 过期时间
原文:HttpContext.Current.Cache 过期时间 为了更快的读取数据,我们一般会把常用到的数据加载到Cache中 在.NET中,Cache的存在可以依赖多中方式,主要用到HttpCo ...