前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版

javascript常用积累

首页2017-01-14 08:20:43Front-End
JavaScriptSnippet

# 一、JS动画与动作不一致解决:


if(!$( "#handle").is(":animated")){
	//判断元素是否处于动画状态
}
@前端进阶之旅: 代码已经复制到剪贴板

# 二、停止事件冒泡


event.stopPropagation();
- 禁止JS报错
	window.onerror = function(){
		return true ; 
}

try {
/*try to do*/
} catch(e){
/*do this if try error */
}
@前端进阶之旅: 代码已经复制到剪贴板

# 三、查看JS对象属性


	var res = '' ; 
var obj = eval( obj );
	for( var p in eval( obj ) ){
		var prop = p + ':' + obj[p] + '\n' ; 
		res += prop ; 
	}
	alert( res );
@前端进阶之旅: 代码已经复制到剪贴板

# 四、页面刷新时禁用提交按钮


	window.onbeforeunload = function(){
		$(':submit').attr('disabled',true);
	}
@前端进阶之旅: 代码已经复制到剪贴板

注意:Opera 浏览器不支持,其他浏览器避免在同一页面中使用 "javascrpt:" 等伪协议

# 五、获取事件


var getEvent = function(){
	var ieEvent = window.event ; 
	var ffEvent = arguments.callee.caller.arguments[0] ; 
	//arguments.callee						当前执行函数
	//arguments.callee.caller				当前执行函数的调用者
	//arguments.callee.caller.arguments[0]	当前函数调用者的第一个参数
	var e = ieEvent || ffEvent ; 
	return e ;
}
@前端进阶之旅: 代码已经复制到剪贴板
  • 获取鼠标距离浏览器顶部 左侧的实际距离 兼容IE
function getXY(ev){
	var ev = ev || window.event;
	var xx  = 0;
	var yy = 0;
	if(ev.pageX){ //iE9+
		xx = ev.pageX;
		yy = ev.pageY;
	}else{ 
		//IE678 clientX,clientY + scroll
		var scrollTop = document.documentElement.scrollTop || 
				   document.body.scrollTop;//IE9+
		var scrollLeft = document.documentElement.scrollLeft || 
					document.body.scrollLeft;//IE9+     
		xx = ev.clientX + scrollLeft;
		yy = ev.clientY + scrollTop;
	}
	return {
		x:xx,
		y:yy
	};

	}
@前端进阶之旅: 代码已经复制到剪贴板

# 六、获取键盘码


var getKCode = function(){
		var ieEvent = window.event ; 
		var ffEvent = arguments.callee.caller.arguments[0] ; 
		var e = ieEvent || ffEvent ; 
		var kCode = e.keyCode || e.which ;
		return kCode ;
	}
@前端进阶之旅: 代码已经复制到剪贴板

# 七、 鼠标滑入/滑出样式切换


$("div").on("mouseover mouseout", function(){
    $(this).toggleClass("over");
 });
@前端进阶之旅: 代码已经复制到剪贴板

# 八、点击鼠标,显示/隐藏切换


$("#panel h5.head").toggle(function(){
	$(this).toggleClass("highlight");
	$(this).next().toggle();
},function(){
	$(this).toggleClass("highlight");
	$(this).next().toggle();
});
@前端进阶之旅: 代码已经复制到剪贴板

# 九、JS 调试


console.log() ;			//打印变量
console.dir() ; 		//打印对象
console.dirxml() ; 		//打印节点
console.trace() ; 		//打印函数调用轨迹
window.document.title = str;  
@前端进阶之旅: 代码已经复制到剪贴板

# 十、为子元素集合绑定事件


$("div").delegate("button","click",function(){
	$("p").slideToggle();
});
@前端进阶之旅: 代码已经复制到剪贴板

# 十一、自定义IE浏览器渲染方式(解决IE10下JS或插件失效):


如果安装了Chrome内核,则使用Chrome内核来渲染页面[chrome=1],如果未安装,则使用最高版本的IE内核进行渲染[IE=edge]:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 
@前端进阶之旅: 代码已经复制到剪贴板

# 十二、注册事件


// 标准浏览器
form1.addEventListener('submit', function(e){
    e.preventDefault();		//阻止浏览器默认动作
	e.stopPropagation();		//阻止事件流产生
});
@前端进阶之旅: 代码已经复制到剪贴板
// IE8及更早版本IE浏览器
form1.attachEvent('submit', function(){
	event.cancelBubble = true; //阻止浏览器默认动作--IE8及更早版本IE浏览器
	event.returnValue = false; //阻止事件流产生--IE8及更早版本IE浏览器
}
@前端进阶之旅: 代码已经复制到剪贴板
fe
  • 一、JS动画与动作不一致解决:
  • 二、停止事件冒泡
  • 三、查看JS对象属性
  • 四、页面刷新时禁用提交按钮
  • 五、获取事件
  • 六、获取键盘码
  • 七、 鼠标滑入/滑出样式切换
  • 八、点击鼠标,显示/隐藏切换
  • 九、JS 调试
  • 十、为子元素集合绑定事件
  • 十一、自定义IE浏览器渲染方式(解决IE10下JS或插件失效):
  • 十二、注册事件

← jQuery之DOM操作小结webpack学习总结(一) →