首页 > IT职业 > IT生活 > JS基础(零散)踩坑之路持续更新中。。。
1.父级页面获取iframe页面中的元素对象(关键contentWindow):
document.getElementById(iframe的id).contentWindow.document.getElementById(iframe页面元素id) 2.iframe页面获取父级页面的元素对象(关键window.parent):
window.parent.document.getElementById(父级页面的元素id) js touchstart touchend监听滑动 $('#recordList li').on('touchstart', function(e){
startX = e.originalEvent.changedTouches[0].pageX,
startY = e.originalEvent.changedTouches[0].pageY;
});
$('#recordList li').on('touchmove',function(e){
//获取滑动屏幕时的X,Y
endX = e.originalEvent.changedTouches[0].pageX,
endY = e.originalEvent.changedTouches[0].pageY;
//获取滑动距离
distanceX = endX-startX;
distanceY = endY-startY;
//判断滑动方向
if(Math.abs(distanceX)>Math.abs(distanceY) && distanceX>0){
console.log('往右滑动');
}else if(Math.abs(distanceX)>Math.abs(distanceY) && distanceX0){
console.log('往下滑动');
}else{
console.log('点击未滑动');
}
}); JS传递参数 js所有函数中的参数都是按值传递的,也就是说,将函数外部的值复制给函数内部的参数。
// 传递基本类型的值
function add(num) {
num += 10;
return num;
}
var count = 20;
var result = addTen(count);
console.log(count) // 20
console.log(result) // 30 函数参数使用对象,按值传递,但是会按引用类型来访问同一对象
function setName(obj) {
obj.name = 'bear_new';
}
var person = new Object();
setName(person); // 函数内的参数obj变化,函数外部的person也会发生改变,obj和person引用同一对象,指向的对象在堆内存中只有一个,而且是全局对象
alert(person.name); // 'bear_new' 给函数参数对象重新赋值
var person = new Object();
setName(person);
alert(person.name); // 'bear_new'
function setName() {
obj.name = 'bear_new';
obj = new Object(); // 此时给obj重新赋值新变量,将obj变成了局部对象,即使修改,原始的引用仍然保持未变,并且局部对象会在函数执行完后立即被销毁
obj.name = 'Greg';
} js对象深拷贝 function deepCopy(source) {
var result={};
for (var key in source) {
result[key] = typeof source[key]==='object'? deepCopy(source[key]): source[key];
}
return result;
} h5 contenteditable属性 focus方法 var p = document.getElementById('contentEditableElementId'),
s = window.getSelection(),
r = document.createRange();
r.setStart(p, 0);
r.setEnd(p, 0);
s.removeAllRanges();
s.addRange(r); 对图片进行等比例缩放居中(解决图片固定宽高导致的图片变形体验不佳) var $img = $('#upload');
var imgtemp = new Image();//创建一个image对象
if ( $img.attr('src')!==undefined ) {
imgtemp.src = $img.attr('src')
imgtemp.onload = function(){//图片加载完成后执行
realWidth = this.width;
realHeight = this.height;
autoSizeImg($img,realWidth,realHeight, 65, 60);
}
/*
* 图片等比例缩放并居中
* w:原图真实宽度 h:原图真实高度
* maxWidth: 需要缩放的realWidth,宽度 maxHeight: 需要缩放的高度
*/
function autoSizeImg( $img, w, h, maxWidth, maxHeight){
var Ratio = 1; //图片缩放比例
var wRatio = maxWidth/w; //图片横向缩放比例
var hRatio = maxHeight/h; //图片纵向缩放比例
wRatio>hRatio ? Ratio = wRatio : Ratio = hRatio;
$img.width(w*Ratio);
$img.height(h*Ratio);
if(w*Ratio > maxWidth){
var left = -(w*Ratio-maxWidth)/2 + 'px';
$img.css('margin-left', left)
}
if(h*Ratio > maxHeight){
var top = -(h*Ratio-maxHeight)/2 + 'px';
$img.css('margin-top', top)
}
}
excel表格导出
', base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }, format = function(s, c) { return s.replace(/{(w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} window.location.href = uri + base64(format(template, ctx)) } })()
| 1 | admin | 23 | 程序员 | 天津 | admin@kali.com |
| 2 | guest | 23 | 测试员 | 北京 | guest@kali.com |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4809/viewspace-2798427/ ,如需转载,请注明出处,否则将追究法律责任。