部分方法使用jQuery!!!
//tab切换
/*
* 参数tablist为触发事件id
* 参数tabmain为执行切换id
* 参数ev为触发事件的动作
*/
function tab(tablist,tabmain,ev){
$(tablist).bind(ev,function(){
var mythis= this;
var n= $(this).index();
$($(this).siblings()).removeClass("active");
$(this).addClass("active");
$(tabmain).removeClass("active");
$($(tabmain)[n]).addClass("active");
});
} //重写移动端触屏点击(无延迟)
$.fn.ontouch = function(callback,bool){
var _x,_y,_s,
_t = {
s : function(event){
var t = getTouch(event);
_x = t.clientX;
_y = t.clientY;
_s = true;
},
m : function(event){
if(_s){
var t = getTouch(event);
if(_x != t.clientX || _y != t.clientY){
_s = false;
}
}
},
e : function(event){
if(_s){
callback.call(this);
if(bool){
event.preventDefault();
return false;
}
}
}
}; function getTouch(event){
return event.originalEvent.touches[0] ? event.originalEvent.touches[0] : event;
}; this.bind({
"touchstart" : _t.s,
"touchmove" : _t.m,
"touchend" : _t.e
});
return this;
}; /*验证手机号码*/
function isTelNum(str){
var _tel = $.trim(str),
_reg = /^0?1[3|4|5|6|7|8|9][0-9]\d{8}$/;
return _reg.test(_tel);
}; /*验证邮件地址*/
function isEmail (value, target) {
value = value.trim();
if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(value)) {
target.val("");
return true;
}
} //匹配国内电话号码(0511-4405222 或 021-87888822)
function istell(str) {
var result = str.match(/\d{3}-\d{8}|\d{4}-\d{7}/);
if (result == null) return false;
return true;
} //匹配身份证(15位或18位)
function isidcard(str) {
var result = str.match(/\d{15}|\d{18}/);
if (result == null) return false;
return true;
} //判断是否移动设备访问
function isMobileUserAgent() {
return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));
} //完美判断是否为网址
function IsURL(strUrl) {
var regular = /^\b(((https?|ftp):\/\/)?[-a-z0-9]+(\.[-a-z0-9]+)*\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d))\b(\/[-a-z0-9_:\@&?=+,.!\/~%\$]*)?)$/i
if (regular.test(strUrl)) {
return true;
} else {
return false;
}
} /*
*移动端简单监听滑动方向方法
*/
// 返回角度
function GetSlideAngle(dx, dy) {
return Math.atan2(dy, dx) * 180 / Math.PI;
} //根据起点和终点返回方向 1:向上,2:向下,3:向左,4:向右,0:未滑动
function GetSlideDirection(startX, startY, endX, endY) {
var dy = startY - endY;
var dx = endX - startX;
var result = 0; //如果滑动距离太短
if(Math.abs(dx) < 50 && Math.abs(dy) <50) {
return result;
} var angle = GetSlideAngle(dx, dy);
if(angle >= -45 && angle < 45) {
result = 4;
}else if (angle >= 45 && angle < 135) {
result = 1;
}else if (angle >= -135 && angle < -45) {
result = 2;
}
else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {
result = 3;
} return result;
} function touchMove() {
//滑动处理
var startX, startY;
var a = document.getElementById("room_img")? document.getElementById("room_img"):document;
a.addEventListener('touchstart',function (ev) {
startX = ev.touches[0].pageX;
startY = ev.touches[0].pageY;
}, false);
a.addEventListener('touchend',function (ev) {
var endX, endY;
endX = ev.changedTouches[0].pageX;
endY = ev.changedTouches[0].pageY;
var direction = GetSlideDirection(startX, startY, endX, endY);
switch(direction) {
case 0:
// alert("没滑动");
break;
case 1:
console.log("向上");
break;
case 2:
console.log("向下");
break;
case 3:
console.log("向左");
break;
case 4:
console.log("向右");
break;
default:
}
}, false);
} /*正则替换text/plain*/
$.replace = function(temp, data, regexp){
if(!(Object.prototype.toString.call(data) === "[object Array]")) data = [data];
var ret = [];
for(var i=0,j=data.length;i<j;i++){
ret.push(replaceAction(data[i]));
}
return ret.join("");
function replaceAction(object){
return temp.replace(regexp || (/\\?\{([^}]+)\}/g), function(match, name){
if (match.charAt(0) == '\\') return match.slice(1);
return (object[name] != undefined) ? object[name] : '';
});
}
}; /*简单使用案例
<html>
<script type="text/plain" id="testDemo">
<div>{a}</div>
<span>{b}<span>
</script>
<script type="text/javascript">
var data = {"a":"a","b":"b"};
var html = replace("testDemo",data);
$("html").append(html);
</script>
</html>
*/ /*获取url参数*/
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
} /*输入框焦点获取和失去时显示默认文字*/
function input_focus (inputId) {
$(inputId).bind({
focus:function(){
if (this.value == this.defaultValue){
this.value="";
}
},
blur:function(){
if (this.value == ""){
this.value = this.defaultValue;
}
}
});
} /*阻止事件冒泡*/
function stopEvent(event){
//取消事件冒泡
var e=arguments.callee.caller.arguments[0]||event; //若省略此句,下面的e改为event,IE运行可以,但是其他浏览器就不兼容
if (e && e.stopPropagation) {
// this code is for Mozilla and Opera
e.stopPropagation();
} else if (window.event) {
// this code is for IE
window.event.cancelBubble = true;
}
} //写cookies
function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
} //读cookie
function getCookie(c_name)
{
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1)
{
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1) c_end=document.cookie.length;
return unescape(document.cookie.substring(c_start,c_end))
}
}
return ""
} /*仿原生app滑动切换*/ //html结构
// <div class="focus_map" id="tabs">
// <div class="border">
// <ul class="atlas">
// </ul>
// </div>
// </div> //css样式
// .focus_map { height: 3.2rem; position: relative; overflow: hidden; }
// .focus_map .border { height: 100%; width: 100%; overflow: hidden; }
// .focus_map ul { width: 200rem; height: 100%; }
// .focus_map li { width: 7.5rem; height: 100%; overflow: hidden; -webkit-overflow-scrolling: touch; }
// .focus_map img { width: 100%; vertical-align: middle; }
// .focus_map nav { position: absolute; left: 0; bottom: .15rem; width: 100%; text-align: center; }
// .focus_map nav i { display: inline-block; margin: 0 .1rem; border-radius: 50%; width: .16rem; height: .16rem; border-radius: .25rem; background: #bbbbbb; }
// .focus_map nav i.cur { background: #1f80b8; } function focusbind(){ //对象&变量 缓存
var $tab = $("#tabs"),
$ul = $tab.find("ul"),
$li = $ul.children(),
$nav = $("<nav>"),
li_len = $li.length,
li_w = $li.eq(0).width(); //容器 初始化
$li.css({
"float" : "left",
"width" : li_w
})
.each(function(i){
var str = i == 0 ? "<i class=\"cur\">" : "<i>";
$nav.append(str);
});
$nav.appendTo($tab);
$li.eq(0).clone().appendTo($ul);
$li.eq(-1).clone().css("marginLeft",-li_w).prependTo($ul);
$ul.css("float","left").width(li_w * $ul.children().length); //切换 方法
var eventOff,startX,clientX,
index = 0,
eventMaxWidth = li_w,
objStatus = {},
eventTo,
time=5000,
tab = {
//开始
start : function (event){
//重置水平位置
clientX = 0;
//滑动激活
eventOff = true;
//获取鼠标||触点水平坐标
var touch = event.touches && event.touches[0] || event;
//记录初始坐标
startX = touch.clientX;
//记录切换前对象状态
objStatus.left = $ul.get(0).style.marginLeft;
//阻止对象默认行为
// event.preventDefault();
console.log("准备切换");
clearInterval(eventTo);
},
//移动
move : function (event){
var touch = event.touches && event.touches[0] || event,
_x = touch.clientX - startX;
if(eventOff){
clientX = parseInt(_x/eventMaxWidth * 100);
$ul.get(0).style.marginLeft = (li_w * clientX / 100) - li_w * index + "px";
//console.log("滑动进度:" + clientX + "%");
}
event.preventDefault();
},
//结束
end : function (event){
var _clientX = clientX > 0 ? clientX : -(clientX);
//滑动激活,且滑动百分比超过50
if(eventOff){
if(_clientX >= 30){
index = clientX > 0 ? index - 1 : index + 1;
tab.to();
console.log("切换完成");
}
else{
console.log("放弃切换"); $ul.animate({
"marginLeft" : objStatus.left
});
} eventOff = false;
}
eventTo = setInterval(function(){
index++;
tab.to();
},time);
// event.preventDefault();
},
to:function(){
var moveCallback;
objStatus.left = -(li_w * index) + "px";
//复位
if(index >= li_len){
index = 0;
moveCallback = function(){
$ul.get(0).style.marginLeft = -(li_w * index) + "px";
};
}
else if(index < 0){
index = li_len - 1;
moveCallback = function(){
$ul.get(0).style.marginLeft = -(li_w * index) + "px";
};
}
$nav.children().eq(index).addClass("cur").siblings().removeClass("cur");
$ul.animate({
"marginLeft" : objStatus.left
},moveCallback);
}
}; eventTo = setInterval(function(){
index++;
tab.to();
},time); //触摸事件 注册
$tab.get(0).addEventListener("touchstart",tab.start,false);
$tab.get(0).addEventListener("touchmove",tab.move,false);
$tab.get(0).addEventListener("touchend",tab.end,false);
} /*原生js获取class*/
function getElementByClassName(classnames){
var objArray= new Array();//定义返回对象数组
var tags=document.getElementsByTagName("*");//获取页面所有元素
var index = 0;
for(var i in tags){
if(tags[i].nodeType==1){
if(tags[i].getAttribute("class") == classnames){ //如果某元素的class值为所需要
objArray[index]=tags[i];
index++;
}
}
}
return objArray;
} //获取鼠标的位置。兼容ie678
function getXY(e){
var ev = e || window.event;
var x=0,y=0;
if(ev.pageX){
x = ev.pageX;
y = ev.pageY;
}else{
//拿到scrollTop 和scrollLeft
var sleft = 0,stop = 0;
//ie678---
if(document.documentElement){
stop =document.documentElement.scrollTop;
sleft = document.documentElement.scrollLeft;
}else{
//ie9+ 谷歌
stop = document.body.scrollTop;
sleft = document.body.scrollLeft;
}
x = ev.clientX + sleft;
y = ev.clientY + stop;
}
return {x:x,y:y};
}; //范围随机数
function randomRange(start,end){
return Math.floor(Math.random()*(end-start+1))+start;
}; //随机颜色
function randomColor(){
var r = Math.floor(Math.random()*256);
var g = Math.floor(Math.random()*256);
var b = Math.floor(Math.random()*256);
return "rgb("+r+","+g+","+b+")";//IE7不支出rgb
}; /*是否为微信浏览器*/
function isWeiXin(){
var ua = window.navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
return true;
}else{
return false;
}
} /*Jq获取屏幕各种高度*/
$(document).ready(function(){
alert($(window).height()); //浏览器当前窗口可视区域高度
alert($(document).height()); //浏览器当前窗口文档的高度
alert($(document.body).height());//浏览器当前窗口文档body的高度
alert($(document.body).outerHeight(true));//浏览器当前窗口文档body的总高度 包括border padding margin
alert($(window).width()); //浏览器当前窗口可视区域宽度
alert($(document).width());//浏览器当前窗口文档对象宽度
alert($(document.body).width());//浏览器当前窗口文档body的宽度
alert($(document.body).outerWidth(true));//浏览器当前窗口文档body的总宽度 包括border padding margin }) /*固定时间的倒计时*/
function countdown(){
var endtime = newDate("Jan 18, 2015 23:50:00");
var nowtime = newDate();
if (nowtime >= endtime) {
document.getElementById("_lefttime").innerHTML = "倒计时间结束";
return;
} var leftsecond = parseInt((endtime.getTime() - nowtime.getTime()) / 1000);
if (leftsecond < 0) {
leftsecond = 0;
} __d = parseInt(leftsecond / 3600 / 24);
__h = parseInt((leftsecond / 3600) % 24);
__m = parseInt((leftsecond / 60) % 60);
__s = parseInt(leftsecond % 60);
document.getElementById("_lefttime").innerHTML = __d + "天" + __h + "小时" + __m + "分" + __s + "秒";
} countdown();
setInterval(countdown, 1000); /*控制浏览器进入全屏模式*/
function fullScreen() {
var el = document.documentElement,
rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen,
wscript; if(typeof rfs != "undefined" && rfs) {
rfs.call(el);
return;
} if(typeof window.ActiveXObject != "undefined") {
wscript = new ActiveXObject("WScript.Shell");
if(wscript) {
wscript.SendKeys("{F11}");
}
}
} /*退出全屏模式*/
function exitFullScreen() {
var el = document,
cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullScreen,
wscript; if (typeof cfs != "undefined" && cfs) {
cfs.call(el);
return;
} if (typeof window.ActiveXObject != "undefined") {
wscript = new ActiveXObject("WScript.Shell");
if (wscript != null) {
wscript.SendKeys("{F11}");
}
}
} /*字符串超出省略 */ String.prototype.cutstr = function (len) {
var restr = this;
var wlength = this.replace(/[^\x00-\xff]/g, "**").length;
if (wlength > len) {
for (var k = len / 2; k < this.length; k++) {
if (this.substr(0, k).replace(/[^\x00-\xff]/g, "**").length >= len) {
restr = this.substr(0, k) + "...";
break;
}
}
}
return restr;
} // 返回字符串的实际长度, 一个汉字算2个长度
String.prototype.strlen = function () {
return this.replace(/[^\x00-\xff]/g, "**").length;
} //转义html标签
function HtmlEncode(text) {
return text.replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g, '>')
} 作者:ydx425
链接:http://www.imooc.com/article/16942
来源:慕课网
本文原创发布于慕课网。

JS-常用方法合集的更多相关文章

  1. 常用的js代码合集

    !function(util){ window.Utils = util(); }( function(){ //document_event_attributes var DEA = "d ...

  2. JS题目合集---新技术层出不穷,打好基础才是上策~

    在IT界中公司对JavaScript开发者的要求还是比较高的,但是如果JavaScript开发者的技能和经验都达到了一定的级别,那他们还是很容易跳到优秀的公司的,当然薪水就更不是问题了.但是在面试之前 ...

  3. Jquery常用方法合集,超实用

    转自:十分钟玩转 jQuery.实例大全 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库. ...

  4. 常用js方法合集

    var Default = { init: function () { }, addCookie: function (name,data) { var expdate = new Date(); / ...

  5. 前端常用的js 插件合集

  6. JavaScript点击事件——美女合集

    Js点击事件--美女合集 实例 效果如下图: 代码如下: <!DOCTYPE html> <html lang="en"> <head> < ...

  7. 11、js 数组详细操作方法及解析合集

    js 数组详细操作方法及解析合集 前言 在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总结,很多时候就算用过几次这个api,在开发中也很容易 ...

  8. post/get in console of JSarray/js 数组详细操作方法及解析合集

    https://juejin.im/post/5b0903b26fb9a07a9d70c7e0[ js 数组详细操作方法及解析合集 js array and for each https://blog ...

  9. JS中的动态合集与静态合集

    JS的动态合集 前言 DOM是JavaScript重要组成部分,在DOM中有三个特别的集合分别是NodeList(节点的集合),NamedNodeMap(元素属性的集合)和HTMLCollection ...

  10. 掘金 Android 文章精选合集

    掘金 Android 文章精选合集 掘金官方 关注 2017.07.10 16:42* 字数 175276 阅读 50053评论 13喜欢 669 用两张图告诉你,为什么你的 App 会卡顿? - A ...

随机推荐

  1. 【vue】 vue跳转页面:router-link/this.$router.push()

    1.通过标签<router-link> <router-link to='A'>跳转到A页面</router-link> 2.通过方法 this.$router.p ...

  2. Js Jquery 时间控件显示小时 分钟 秒

    // ui.js 自带的datepicker 插件只能显示日期不能显示时分秒  使用dateTimePicker可以显示时间 效果图:     首先需要引用 js和css 注意 ui.js的顺序要在s ...

  3. format的使用

    v="敬爱可亲的{0},最喜欢在{1}地方干{2}" name1=input("名字>") lang=input("地点>") ...

  4. 一看就会一做就废系列:说说 RECOVER UNTIL CANCEL

    这里是:一看就会,一做就废系列 数据库演示版本为 19.3 (12.2.0.3) 该系列涉及恢复过程中使用的 5 个语句: 1. recover database 2. recover databas ...

  5. NetMQ用作IPC的实例

    发送端/接收端 using System; using System.Threading; using NetMQ; using NetMQ.Sockets; namespace NetMQIPCSe ...

  6. Web API入参,响应规范

    入参绑定 入参应该定义成实体,而不是多个参数,方便扩展.[FromBody]和[FromUrl]特性也最好加上. public ActionResult<Pet> Create([From ...

  7. Strategic game(无向?)二分图最小点覆盖(Poj1463,Uva1292)

    原题链接 此题求二分图的最小点覆盖,数值上等于该二分图的最大匹配.得知此结论可以将图染色,建有向图,然后跑匈牙利/网络流,如下.然而... #include<iostream> #incl ...

  8. url中的参数加密

    有时候我们需要在地址栏传输一些信息,比如查询数据的时候,传一个参数location.href = "/admin/extract?name="+"参数aaa"’ ...

  9. 转载:Laplace 变换

    转自: https://www.zhihu.com/question/22085329 https://wenku.baidu.com/view/691d4629640e52ea551810a6f52 ...

  10. HTML学习(13)区块元素和内联元素

    HTML 区块元素 大多数 HTML 元素被定义为块级元素或内联元素. 块级元素在浏览器显示时,通常会以新行来开始(和结束). 实例: <h1>, <p>, <ul> ...