var zycTools = {
//使用css選擇器選擇單個元素
$:function(elem){
return document.querySelector(elem);
},
//使用css選擇器選擇一組元素
$$:function(elem){
return document.querySelectorAll(elem);
},
//判斷瀏覽器類型
browserType:function(){
var browser = window.navigator.userAgent; //獲取瀏覽器
if (userAgent.indexOf("Opera") > -1) {
return "Opera"
}; //判斷是否Opera瀏覽器
if (userAgent.indexOf("Firefox") > -1) {
return "FireFox";
} //判斷是否Firefox瀏覽器
if (userAgent.indexOf("Chrome") > -1){
return "Chrome";
}
if (userAgent.indexOf("Safari") > -1) {
return "Safari";
} //判斷是否Safari瀏覽器
if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
return "IE";
}; //判斷是否IE瀏覽器
},
//判斷終端類型(手機端、PC端)
terminalType:function(){
var browser = window.navigator.userAgent; //獲取瀏覽器
if (userAgent.indexOf("Android") > -1) {
return "Android"
}; //判斷是否安卓手機
if (userAgent.indexOf("iPhone") > -1) {
return "iPhone";
} //判斷是是否蘋果手機
},
//移除所有節(jié)點
removeNode:function (elem){
for(var i = 0,len = elem.length;i < len;i++){
elem[i].parentNode.removeChild(elem[i]);
}
},
//清空所有子元素
emptyChildElem:function(elem){
elem.innerHTML = "";
},
//獲取子元素
getChildNodes:function(elem){
var childNodes = [];
var node = elem.childNodes;
for(var i = 0;i < node.length;i++){
if(node[i].nodeType == 1){
childNodes[childNodes.length] = node[i];
}
}
return childNodes;
},
//獲取所有兄弟元素
getSiblingElems:function (elem){
var result = [], parentNode ,childNodes;
parentNode = elem.parentNode;
childNodes = parentNode.childNodes;
for(var i = 0,len = childNodes.length;i < len;i++){
if(childNodes[i].nodeType == 1 && childNodes[i] != elem){
result[result.length] = childNodes[i];
}
}
return result;
},
//獲取下一個兄弟元素
nextSiblingElem:function(elem){
var siblings = zycTools.getChildNodes(elem.parentNode);
var index = zycTools.getIndex(siblings,elem);
var result = siblings[parseInt(index)+1];
return result;
},
//獲取指定元素所有后面的同輩元素
nextSiblingsAll:function(elem){
var index,result = [];
var childNodes = zycTools.getChildNodes(elem.parentNode);
for(var i = 0,len = childNodes.length;i < len;i++){
if(elem == childNodes[i]){
index = i+1;
}
}
for(var j = index;j < len;j++){
result[result.length] = childNodes[j];
}
return result;
},
//獲取前一個兄弟元素
prevSiblingElem:function(elem){
var siblings = zycTools.getChildNodes(elem.parentNode);
var index = zycTools.getIndex(siblings,elem);
var result = siblings[parseInt(index)-1];
return result;
},
//獲取指定元素所有前面的同輩元素
prevSiblingsAll:function(elem){
var index,result = [];
var childNodes = zycTools.getChildNodes(elem.parentNode);
for(var i = 0,len = childNodes.length;i < len;i++){
if(elem == childNodes[i]){
index = i-1;
}
}
for(var j = 0;j <= index;j++){
result[result.length] = childNodes[j];
}
return result;
},
//指定位置之后插入元素
insertAfter:function(newEl, targetEl){
var parentEl = targetEl.parentNode;
if(parentEl.lastChild == targetEl){
parentEl.appendChild(newEl);
}else{
parentEl.insertBefore(newEl,targetEl.nextSibling);
}
},
//往數(shù)組里面添加Dom元素
addDom:function(elem, addelem){
elem[elem.length] = addelem;
return elem;
},
//查找后代元素
findElem:function (elemSelector, hasElemSelector){
var result = document.querySelector(elemSelector).querySelectorAll(hasElemSelector);
return result;
},
//獲取元素對應的元素數(shù)組的索引
getIndex:function(elem, targetE){
var index;
for(var i = 0;i < elem.length;i++){
if(elem[i] == targetE){
index = i;
}
}
return index;
},
//獲取元素的文本,獲取的元素必須使$$()方法獲取或者必須是一組Dom數(shù)組
getText:function(elem){
var text = "";
for(var j = 0, lenj = elem.length;j < lenj;j++){
for(var i = 0, leni = elem[j].childNodes.length;i < leni;i++){
if(elem[j].childNodes[i].nodeType == 3){
var empText = elem[j].childNodes[i].nodeValue.replace(/[ ]/g,"").replace(/[\r\n]/g,"");
text += empText + " ";
}
}
}
return text;
},
//添加class
addClass:function(elem,classname){
var oldClass = elem.className;
if(elem.className){
if(elem.className.indexOf(classname) == -1){
elem.className = oldClass + " " + classname;
}
}else{
elem.className = classname;
}
},
//移除class
removeClassName:function(elem,classname){
var oldClass = elem.className;
if(elem.className && oldClass.indexOf(classname) != -1){
elem.className = elem.className.replace(classname, "");
}else{
return false;
}
},
//獲取元素樣式
getStyle:function(elem,prop){
if(window.getComputedStyle){
return window.getComputedStyle(elem)[prop];
}else{
return elem.currentStyle[prop];
}
},
//設置元素樣式
setCss:function(elem, cssObj){
for(var i in cssObj){
elem.style[i] = cssObj[i]
}
},
//切換樣式
toggleClass:function(elem,classname){
this.flag = false;
var oldClass = elem.className;
if(oldClass.indexOf(classname) != -1 && !flag){
flag = true;
elem.className = elem.className.replace(" "+classname,"");
}else{
flag = false;
elem.className = oldClass + " " + classname;
}
},
//元素左右或者上下運動
elemMove:function(elem, dir, time, callback){
var flag = true, value;
dir == "top" ? value = "height" : value = "width";
var elemWith = parseInt(zycTools.getStyle(elem,value)); //獲取寬度值
var elemPosition = zycTools.getStyle(elem,"position"); //獲取position屬性
if(elemPosition == "static"){
elem.style.position = "relative";
elem.style[dir] = "0px";
}
setInterval(function(){
var left = parseInt(zycTools.getStyle(elem,dir));
if(left < elemWith && flag){
elem.style[dir] = (left + 1) + "px";
}else{
flag = false;
elem.style[dir] = (left - 1) + "px";
if(parseInt(zycTools.getStyle(elem,dir)) < 0){
elem.style[dir] = "0px";
flag = true;
}
}
},time);
},
//元素勻速向上運動
silderUp:function(elem, time, callback){
//var i = 1;
var timmerId = setInterval(function(){
var height = parseInt(zycTools.getStyle(elem,"height")); //獲取元素高度
if(height > 0){
elem.style.height = (height - 1) + "px";
}else{
elem.style.height = "0px";
clearTimeout(timmerId);
if(typeof callback == "function"){
callback();
}
}
},time);
},
//元素勻速向下運動
silderDown:function(elem, time, callback){
var initHeight = parseInt(zycTools.getStyle(elem,"height")); //元素原始高度
elem.style.height = "0px";
elem.style.display = "block";
var timmerId = setInterval(function(){
var height = parseInt(zycTools.getStyle(elem,"height")); //每次循環(huán)就獲取元素高度
if(height < initHeight){
elem.style.height = (height + 1) + "px";
}else{
clearTimeout(timmerId);
if(typeof callback == "function"){
callback();
}
}
},time);
},
//元素放大縮小,僅支持高版本瀏覽器
transformScale:function(elem, time, multiple, callback){
var flag = true;
elem.style.webkitTransform = "scale(1)";
var timeId = setInterval(function(){
var scaleStr = elem.style.webkitTransform.replace("scale(","");
var scale = parseFloat(scaleStr);
if(scale < multiple && flag){
elem.style.webkitTransform = "scale(" + (scale + 0.01) + ")";
}else{
flag = false;
elem.style.webkitTransform = "scale(" + (scale - 0.01) + ")";
if(scale < 1){
elem.style.webkitTransform = "scale(1)";
flag = true;
clearTimeout(timeId);
//函數(shù)執(zhí)行完成回調(diào)執(zhí)行callback
if(typeof callback == "function"){
callback();
}
}
}
},time);
},
//元素旋轉(zhuǎn)Z軸
rotate:function(elem, time, deg, callback){
var flag = true;
elem.style.webkitTransform ? {}:elem.style.webkitTransform = "rotate(0deg)";
var timeId = setInterval(function(){
var rotateStr = elem.style.webkitTransform.replace("rotate(","");
//console.log(rotateStr);
var rotate = parseInt(rotateStr);
//console.log(rotate);
if(rotate < deg && flag){
elem.style.webkitTransform = "rotate(" + (rotate + 1) + "deg)";
}else{
flag = false;
elem.style.webkitTransform = "rotate(" + (rotate - 1) + "deg)";
if(rotate < 0){
elem.style.webkitTransform = "rotate(0deg)";
flag = true;
//函數(shù)執(zhí)行完成回調(diào)執(zhí)行callback
if(typeof callback == "function"){
callback();
}
}
}
},time);
},
//元素淡出消失
fadeOut:function(elem, time, callback){
var elemOpcity = zycTools.getStyle(elem,"opcity");
if(!elemOpcity){
elem.style.opacity = "1";
}
setInterval(function(){
var intOpacityValue = parseFloat(elem.style.opacity); //將透明度轉(zhuǎn)變?yōu)檎?br>
if(intOpacityValue > 0){
elem.style.opacity = (intOpacityValue - 0.05) + "";
}else{
elem.style.opacity = "0";
elem.style.display = "none";
if(typeof callback == "funtion"){
callback();
}
}
},time);
},
//元素淡入顯示
fadeIn:function(elem, time, callback){
elem.style.dispaly = "block";
var elemOpcity = zycTools.getStyle(elem,"opcity");
if(!elemOpcity){
elem.style.opacity = "0";
}
var timerId = setInterval(function(){
var intOpacityValue = parseFloat(elem.style.opacity); //將透明度轉(zhuǎn)變?yōu)檎?br>
if(intOpacityValue < 1){
elem.style.opacity = (intOpacityValue + 0.05) + "";
}else{
elem.style.opacity = "1";
clearTimeout(timerId);
if(typeof callback == "funtion"){
callback();
}
}
},time);
},
//表單及常用驗證
validate:{
//百家姓驗證
chineseFirstName: function(str){
var firstName='趙錢孫李周吳鄭王馮陳褚衛(wèi)蔣沈韓楊朱秦尤許何呂施張孔曹嚴華金魏陶姜戚謝鄒喻柏水竇章云蘇潘葛奚范彭郎魯韋昌馬苗鳳花方俞任袁柳酆鮑史唐費廉岑薛雷賀倪湯滕殷羅畢郝鄔安常樂于時傅皮卞齊康伍余元卜顧孟平黃和穆蕭尹姚邵湛汪祁毛禹狄米貝明臧計伏成戴談宋茅龐熊紀舒屈項祝董梁杜阮藍閔席季麻強賈路婁危江童顏郭梅盛林刁鐘徐丘駱高夏蔡田樊胡凌霍虞萬支柯昝管盧莫經(jīng)房裘繆干解應宗丁宣賁鄧郁單杭洪包諸左石崔吉鈕龔程嵇邢滑裴陸榮翁荀羊于惠甄曲家封芮羿儲靳汲邴糜松井段富巫烏焦巴弓牧隗山谷車侯宓蓬全郗班仰秋仲伊宮寧仇欒暴甘鈄厲戎祖武符劉景詹束龍葉幸司韶郜黎薊薄印宿白懷蒲邰從鄂索咸籍賴卓藺屠蒙池喬陰郁胥能蒼雙聞莘黨翟譚貢勞逄姬申扶堵冉宰酈雍郤璩桑桂濮牛壽通邊扈燕冀郟浦尚農(nóng)柴瞿閻充慕連茹習宦艾魚容向古易慎戈廖庾終暨居衡步都耿滿弘匡國文寇廣祿闕東歐殳沃利蔚越夔隆師鞏厙聶晁勾敖融冷訾辛闞那簡饒空曾毋沙乜養(yǎng)鞠須豐巢關(guān)蒯相查后荊紅游竺權(quán)逯蓋益桓公萬俟司馬上官歐陽夏候諸葛聞人東方赫連皇甫尉遲公羊澹臺公治宗政濮陽淳于單于太叔申屠公孫仲孫轅軒令狐鐘離宇文長孫幕容鮮于閭丘司徒司空丌官司寇仉督子車顓孫端木巫馬公西漆雕樂正壤駟公良拓拔夾谷宰父谷梁晉楚閻法汝鄢涂欽段干百里東郭南門呼延歸海羊舌微生岳帥緱亢況后有琴梁丘左丘東門西門商牟佘佴佰賞南官墨哈譙笪年愛陽佟第五言福百家姓終百家姓以外的:萬俟司馬上官歐陽夏候諸葛聞人東方赫連皇甫尉遲公羊澹臺公治宗政濮陽淳于單于太叔申屠公孫仲孫轅軒令狐鐘離宇文長孫幕容鮮于閭丘司徒司空丌官司寇仉督子車顓孫端木巫馬公西漆雕樂正壤駟公良拓拔夾谷宰父谷梁晉楚閻法汝鄢涂欽段干百里東郭南門呼延歸海羊舌微生岳帥緱亢況后有琴梁丘左丘東門西門商牟佘佴佰賞南官墨哈譙笪年愛陽佟第五言福';
var nameStr1=str.substring(0,1); //獲取輸入的第一個字
var nameStr2=str.substring(0,2); //獲取輸入的前兩個字
var hasName=(firstName.indexOf(nameStr1)!=-1)||(firstName.indexOf(nameStr2)!=-1); //判斷是否含有姓氏
//判斷是否屬于百家姓
if(hasName){
return true;
}else{
return false;
}
},
number: function(number){
var pattern = /^[0-9]$/;
if(pattern.test(number)){
return true;
}else{
return false;
}
},
//中文字符驗證
chinese: function(str){
var pattern = /[\u4e00-\u9fa5]/;
if(pattern.test(number)){
return true;
}else{
return false;
}
},
//字母數(shù)字中文及下劃線(一般用于用戶名驗證)
wordsNumber_: function(str){
var pattern = /[A-Za-z0-9_-\u4e00-\u9fa5]+/;
if(pattern.test(str)){
return true;
}else{
return false;
}
},
//英文驗證
english: function(str){
var pattern = /^[a-zA-Z]$/;
if(pattern.test(str)){
return true;
}else{
return false;
}
},
//電子郵箱驗證
email: function(str){
var pattern = /\w[-\w.+]@([A-Za-z0-9][-A-Za-z0-9]+.)+[A-Za-z]{2,14}/;
if(pattern.test(str)){
return true;
}else{
return false;
}
},
//手機號碼驗證非+86
cellphone: function(number){
var pattern = /^1[3|4|5|7|8]\d{9}$/;
if(pattern.test(number)){
return true;
}else{
return false;
}
},
//電話驗證
tellphone: function(number){
var pattern = /[0-9-()()]{7,18}/;
if(pattern.test(number)){
return true;
}else{
return false;
}
},
//網(wǎng)址驗證
website: function(str){
var pattern = /((https|http|ftp|rtsp|mms)?://)[\s]+/;
if(pattern.test(str)){
return true;
}else{
return false;
}
},
ipAddress: function(str){
var pattern = /(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d).(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d).(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d).(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)/;
if(pattern.test(str)){
return true;
}else{
return false;
}
},
//身份證驗證
idCard: function(number){
var pattern = /\d{17}[\d|x]|\d{15}/;
if(pattern.test(number)){
return true;
}else{
return false;
}
},
//郵編驗證
postCodes: function(number){
var pattern = /\d{6}/;
if(pattern.test(number)){
return true;
}else{
return false;
}
},
//QQ驗證
tencentQQ: function(number){
var pattern = /1-9/;
if(pattern.test(number)){
return true;
}else{
return false;
}
},
//特殊字符驗證
specialWord: function(str){
var pattern = /`~!@#$%^&()_+-=[]{}|;:'"<,>.?//;
if(pattern.test(str)){
return true;
}else{
return false;
}
},
//強密碼驗證(必須包含大小寫字母和數(shù)字的組合,不能使用特殊字符,長度在8-16之間)
strongPassword: function(str){
var pattern = /^(?=.\d)(?=.[a-z])(?=.*[A-Z]).{8,16}$/;
if(pattern.test(str)){
return true;
}else{
return false;
}
},
//日期格式驗證 2016-01-01這種格式
dataFormat: function(str){
var pattern = /^[1-9]{1}\d{3}-[0-1]{1}\d{0,1}-[0-1]{1}\d{0,1}/;
if(pattern.test(str)){
return true;
}else{
return false;
}
}
}
}
原生javascript自己封裝的常用小方法
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 分享書目:《美則傳奇》[美] 艾瑞克·萊恩、亞當·勞瑞 書中的內(nèi)容是作者創(chuàng)業(yè)過程中的領悟。創(chuàng)業(yè)與個人發(fā)展有許多共同...
- 監(jiān)獄是一個復雜的世界。尤其是女監(jiān)。這個世界里只有女性沒有男性,女性與女性之間過于親密常常會被人理解為同性戀,用她們...