文档章节

javascript进阶(一)

Chason-洪
 Chason-洪
发布于 2017/05/04 14:50
字数 686
阅读 21
收藏 0
COS

获取元素信息

    相对浏览器视窗的位置,

    getClientRects获取元素占据页面的所有矩形区域 

    getBoundingClientRect获取元素位置 

随机数在(min-max)范围内(包括最小值)

parseInt(Math.random()*(max-min+1)+min,10);

移动端rem布局

方法一(来自aui):

html{
	font-size: 20px;
}

@media only screen and (min-width: 400px) {
	html {
		font-size: 21.33333333px !important;
	}
}
@media only screen and (min-width: 414px) {
	html {
		font-size: 21px !important;
	}
}
@media only screen and (min-width: 480px) {
	html {
		font-size: 25.6px !important;
	}
}

方法二:

iphone6的750设计图.

图中的元素大小/20=实际大小rem

document.documentElement.style.fontSize = document.documentElement.clientWidth / 750*20+ 'px';

Math.cos和Math.sin的用法

iframe与父页面的通信

JS判断当前页面是电脑打开还是移动端打开的

var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
    console.log("phone");
} else {
    console.log("pc");
}

禁止|恢复页面滚动

function handler() {
    event.preventDefault();
    event.stopPropagation();
}
document.body.addEventListener('touchstart',handler,false); //静止页面滚动
document.body.removeEventListener('touchstart',handler,false); //恢复页面滚动

监听div内容发生变化(插入发生变化)

$("div").on('DOMNodeInserted', function(e) {
    console.log("我变化了");
});

js获取上传图片的路径

<input class="upload-file" type="file" id="file" accept="image/*" multiple/> //增加multiple属性可选择拍摄和图库等。如果没有这个属性,只能拍摄
function getObjectURL(file) {
    var url = null;
    if (window.createObjectURL != undefined) {
        url = window.createObjectURL(file)
    } else if (window.URL != undefined) {
        url = window.URL.createObjectURL(file)
    } else if (window.webkitURL != undefined) {
        url = window.webkitURL.createObjectURL(file)
    }
    return url
};
$("#file").on("change",function(e){
    var url=getObjectURL(this.files[0]);
    $("img").attr("src",url)
});
        //注:
// !!!!!! // 下面是关键的关键,通过这个 file 对象生成一个可用的图像 URL 
// 获取 window 的 URL 工具 var URL = window.URL || window.webkitURL; 
// 通过 file 生成目标 url var imgURL = URL.createObjectURL(file); 
// 用这个 URL 产生一个 <img> 将其显示出来 $('body').append($('<img/>').attr('src', imgURL)); 
// 使用下面这句可以在内存中释放对此 url 的伺服,跑了之后那个 URL 就无效了 // URL.revokeObjectURL(imgURL); }

图片路径转Base64

function getBase64(url){
//通过构造函数来创建的 img 实例,在赋予 src 值后就会立刻下载图片,相比 createElement() 创建 <img> 省去了 append(),也就避免了文档冗余和污染
    var Img = new Image(),
        dataURL='';
    Img.src=url;
    Img.onload=function(){ //要先确保图片完整获取到,这是个异步事件
        var canvas = document.createElement("canvas"), //创建canvas元素
            width=Img.width, //确保canvas的尺寸和图片一样
            height=Img.height;
        canvas.width=width;
        canvas.height=height;
        canvas.getContext("2d").drawImage(Img,0,0,width,height); //将图片绘制到canvas中
        dataURL=canvas.toDataURL('image/jpeg'); //转换图片为dataURL(Base64)
    };
}

 

 

 

© 著作权归作者所有

共有 人打赏支持
上一篇: css(1)
下一篇: 移动端1px的问题
Chason-洪
粉丝 13
博文 79
码字总数 66021
作品 0
漳州
程序员
私信 提问
技术进阶:通过来JavaScript 性能调优提高 Web 应用性能

前言 现在的互联网应用中,在Web 开发中经常会遇到性能的问题,尤其是针对当今的 Web2.0 +应用。JavaScript 是当今使用最为广泛的 Web 开发语言,Web 应用的性能问题很大一部分都是由程序员写...

Java高级架构师
2018/12/12
0
0
javascript学习思维导图

JavaScript 数据类型 JavaScript 变量 Javascript 运算符 JavaScript 流程控制 JavaScript 数组 JavaScript 函数基础 JavaScript 字符串函数 JavaScript 正则表达式 DOM 基本操作 Window 对象...

IT智云编程
2018/09/12
0
0
学习Javascript的8张思维导图

分别归类为:  javascript变量  javascript运算符  javascript数组  javascript流程语句  javascript字符串函数  javascript函数基础  javascript基础DOM操作  javascript正则表达式...

thinkyoung
2014/09/23
0
0
如果想成为一名顶尖的前端,这份书单你一定要收藏!

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯IVWEB团队 发表于云+社区专栏 作者:link 2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路...

腾讯云加社区
2018/09/17
0
0
前端学习之路(从入门到入坑...)

学习前端两年多了,拿了阿里巴巴实现offer,想结合个人经历总结的前端入门方法,总结从零基础到具备前端基本技能的道路、学习方法、资料。由于能力有限,不能保证面面俱到,只是作为入门参考...

阿小庆
2018/06/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

cnetos7+docker+rancher构建基于DevOps的全自动CI【01】

来自DevOps实践分享,分享从开发代码到生产环境部署的一条龙操作的实践及经验, 包含工具技术的选型及考量、私有代码库与私有镜像库的应用等。 1、环境选择 安装Rancher环境,一定要在干净的...

Elson
28分钟前
1
0
21分钟教会你分析MaxCompute账单

背景 阿里云大计算服务MaxCompute是一款商业化的大数据分析平台,其计算资源有预付费和后付费两种计费方式。并且产品每天按照project为维度进行计量计费(账单基本情况下会第二天6点前产出)...

zhaowei121
32分钟前
0
0
CTO职场解惑指南系列(一)

基于科技能够改变世界的事实,几乎每个公司的程序员都自带闪光灯。程序员的手和普通人的手自然是有区别的,“我们可是用双手改变了世界” 。(码农真的是靠双手吃饭,呵呵) 这个世界上但凡靠...

阿里云云栖社区
36分钟前
3
0
css实现图片自适应容器宽高

css实现图片自适应容器宽高的做法一般如下所示 <style>div{width: 200px; height: 200px}div img{width: 100%; height: 100%}</style><div><img src="xxxx.png" /></div> 当外层容......

小草先森
36分钟前
3
0
PlatON在CentOS上编译部署

本文作者为万向区块链CTO罗荣阁。 目录 PlatON在CentOS上编译部署 1. CentOS 环境准备 1.1. 使用rpm 安装devtoolset-7 1.2. 使用rpm 安装dos2unix 1.3. 准备PlatON代码 1.4. 确保build脚本正...

万向区块链
45分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部