文/poetries简书作者)
原文链接:http://www.jianshu.com/p/60332df38393

著作权归作者所有,转载请联系作者获得授权, 并标注“简书作者”。   作者声明:本文根据慕课网学习视频整理

强烈建议打开控制台自己动手练习一遍,这样印象才会深刻

第一部分 JavaScript中的宽高属性


一、与window相关的宽高属性


1.1 window.location和document.location


  • window对象的location属性引用的是location对象,表示该窗口中当前显示文档的URL
  • document的对象的location属性也是引用location对象
  • 所以 window.location === document.location //true

1.2 window.screen


  • window.screen包含有关用户屏幕的信息。它包括:

    • window.screen.width
    • window.screen.height
    • window.screen.availHeight
    • window.screen.availWidth
    • window.screenTop
    • window.screenLeft

window.screen

1.3 与window相关的宽高

  • window.innerWidth 内部的宽度
  • window.innerHeight 内部的高度
  • window.outWidth 外部的宽度
  • window.outHeight 外部的高度

与window相关的宽高

二、与document相关的宽高属性


2.1与client相关的宽高


  • document.body.clientWidth 元素宽度(可视内容区+内边距)
  • document.body.clientHeight元素高度(可视内容区+内边距)

该属性指的是元素的可视部分宽度和高度,即padding+content
如果没有滚动条,即为元素设定的宽度和高度
如果出现滚动条,滚动条会遮盖元素的宽高,那么该属性就是其本来宽高减去滚动条的宽高

example1:

body{
border: 20px solid #000;
margin: 10px;
padding: 40px;
background: #eee;
height: 350px;
width: 500px;
overflow: scroll;
}
console.log(document.body.clientWidth); // 350+padding(80) = 430
console.log(document.body.clientHeight); // 500 + padding(80) = 580

example2: 在div中添加文字, 指导出现滚动条

#exp2 {
width:200px;
height:200px;
background:red;
border:1px solid #000;
overflow:auto;
} var test = document.getElementById("exp2"); console,log(test.clientHeight); // 200
console.log(test.clientWidth); //

window7下test.clientWidth
  • 小结clientWidth和clientHeight

    • padding无滚动 : clientWidth = 盒子的width
    • padding无滚动 : clientWidth = 盒子的width + 盒子的padding * 2
    • padding有滚动 : clientWidth = 盒子和width + 盒子的padding * 2- 滚动轴宽度
  • document.body.clientLeft
  • document.body.clientTop

这两个返回的是元素周围边框的厚度,如果不指定一个边框或者不定位该元素,它的值就是0

例:

body{
border: 20px solid #000;
margin: 10px;
padding: 40px;
background: #eee;
height: 350px;
width: 500px;
overflow: scroll;
}
console.log(document.body.clientLeft); // 20
console.log(document.body.clientTop); // 20

小结clientLeft和clientTop

  • 这一对属性是用来读取元素的border的宽度和高度的

    • clientTop = border-top
    • clientLeft = border-left

2.2 与offset相关的宽高


  • document.body.offsetWidth(元素的border+padding+content的宽度)
  • document.body.offsetHeight(元素的border+padding+content的高度)

该属性和其内部的内容是否超出元素大小无关,只和本来设定的border以及width和height有关

例:

body{
border: 20px solid #000;
margin: 10px;
padding: 40px;
background: #eee;
height: 350px;
width: 500px;
overflow: scroll;
}
console.log(document.body.offsetWidth); // 470 = padding*2 + 350 + border*2
console.log(document.body.offsetHeight); // 620 = padding*2 + 500 + border*2

小结offsetWidth和offsetHeight

  • padding无滚动无border

    • offsetWidth = clientWidth = 盒子的宽度
  • padding无滚动有border
    • offsetWidth = 盒子的宽度 + 盒子padding2 + 盒子边框2 = clientWidth + 边框宽度*2
  • padding有滚动,且滚动是显示的,有border
    • offsetWidth = 盒子宽度 + 盒子padding2 + 盒子边框2 = clientWidth + 滚动轴宽度 + 边框宽度*2

  • document.offsetLeft
  • document.offsetTop

了解这两个属性我们必须先了解它,什么是offsetParent

  • 如果当前元素的父级元素没有进行CSS定位(positionabsoluterelative),offsetParentbody.
  • 假如当前元素的父级元素中有CSS定位,offsetParent取最近的那个父级元素

offsetLeft的兼容性问题:

  • IE6/7

    • offsetLeft = offsetParent的padding-left + 当前元素的margin-left
  • IE8/9/10以及chrome

    • offsetLeft = offsetParent的margin-left + offsetParent的border宽度 + offsetParent的padding-left + 当前元素的margin-left
  • FireFox

    • offsetLeft = offsetParent的margin-left + 当前元素的margin-left + offsetParent的padding-left

例:

body{
border: 20px solid #000;
margin: 10px;
padding: 40px;
background: #eee;
height: 350px;
width: 500px;
overflow: scroll;
} #exp {
width:400px;
height:200px;
padding:20px;
margin:10px;
background:red;
border:20px solid #000;
overflow:auto;
}
var div = document.getElementById("exp");
  • 在IE8/9/10以及chrome中:

    • div.offsetLeft = 本身的margin10 + 父级元素的padding40 + margin10 + border20 = 80
    • div.offsetTop = 本身的margin10 + 父级元素的padding40 + margin10 + border20 = 80
  • 在FireFox:(相比chrome中少了border)

    • div.offsetLeft = 本身的margin10 + 父级元素的padding40 + margin10 = 60
    • div.offsetTop = 本身的margin10 + 父级元素的padding40 + margin10 = 60
  • 在IE6/7中:(相比在FireFox,不但少了border还少了父级元素的margin)

    • div.offsetLeft = 本身的margin10 + 父级元素的padding40 = 50
    • div.offsetTop = 本身的margin10 + 父级元素的padding40 = 50

2.3与scroll相关的宽高 (实际项目中用的最多)


  • document.body.scrollWidth
  • document.body.scrollHeight

document.body的scrollWidth和scrollHeight与div的scrollWidth和scrollHeight是有区别的

例:

body{
border: 20px solid #000;
margin: 10px;
padding: 40px;
background: #eee;
height: 350px;
width: 500px;
overflow: scroll;
} document.body.scrollHeight; //
document.body.scrollWidth; //
  • 当给定宽高小于浏览器窗口的宽高

    • scrollWidth = 通常是浏览器窗口的宽度
    • scrollHeight = 通常是浏览器窗口的高度
  • 当给定宽高大于浏览器窗口的宽高,且内容小于给定宽高的时候

    • scrollWidth = 给定宽度 + 其所有的padding + margin + border
    • scrollHeight = 给定高度 + 其所有的padding + margin + border
  • 当给定宽高大于浏览器窗口宽高,且内容大于给定宽高

    • scrollWidth = 内容宽度 + 其所有的padding + margin + border
    • scrollHeight = 内容高度 + 其所有的padding + margin + border

在某div中的scrollWidth和scrollHeight

  • 无滚动轴时:

    • scrollWidth = clientWidth = 盒子宽度 + 盒子padding*2

无滚动轴时
  • 有滚动轴时:

    • scrollWidth = 实际内容的宽度 + padding*2
    • scrollHeight = 实际内容的高度 + padding*2

有滚动轴时
  • document.body.scrollLeft
  • document.body.scrollTop

与前面不同的是,这对属性是可读写的,指的是当元素其中的超出其宽高的时候,元素被卷起来的高度和宽度

#exp {
width:400px;
height:200px;
padding:20px;
margin:10px;
background:red;
border:20px solid #000;
overflow-y:scroll;
} var mydiv = document.getElementById("exp"); mydiv.scrollTop ; //默认情况下是0
mydiv.scrollLeft ; //默认情况下是0 //可以改写它 mydiv.scrollTop = 20;
console.log(mydiv.scrollTop)

scrollTop和scrollLeft

obj.style.width和obj.style.height

对于一个DOM元素,它的style属性返回的是一个对象,这个对象的任意一个属性是可读写的,style.width等于css属性中的宽度。style.height等于css属性中的高度

2.4 documentElement和body的关系


是父子级的关系

body{
border: 20px solid #000;
margin: 10px;
padding: 40px;
background: #eee;
height: 350px;
width: 500px;
overflow: scroll;
} #exp {
width:400px;
height:200px;
padding:20px;
margin:10px;
background:red;
border:20px solid #000;
overflow-y:scroll;
} console.log(document); //document
console.log(document.documentElement); //html
console.log(document.body); //body

Paste_Image.png
  • 兼容问题推荐使用 获取浏览器窗口可视区域大小
document.body.clientWidth || document.documentElement.clientWidth;
document.body.clientHeight || document.documentElement.clientHeight;

三、Event对象的5种坐标


Event对象的5种坐标

例:

<div id="example"
style="width: 200px;height: 200px;background: red;margin: 100px auto;"></div>
var example = document.getElementById("example");
example.onclick = function(e){
console.log("clientX "+e.clientX + " : " + " clientY "+e.clientY);
console.log("screenX "+e.screenX + " : " + " screenY "+e.screenY);
console.log("offsetX "+e.offsetX + " : " + " offsetY "+e.offsetY);
console.log("pageX "+e.pageX + " : " + " pageY "+e.pageY);
console.log("x "+e.x + " : " + " y "+e.y);
}

Event对象的5种坐标

四、 js各种宽高的应用


  • example1:可视区域加载

用来解决offset的兼容性难问题
<div id="example1" ></div>
#example1 {
width: 500px;
height: 350px;
background: red;
margin: 1000px auto 0 auto;
}
@-webkit-keyframes fadeInLeft{
0%{
opacity: 0;
transform: translate3d(-100%,0,0);
}
100%{
opacity: 1;
transform: none; }
}
.fadeInLeft {
animation-name: fadeInLeft;
animation-duration: 2s;
}
function showDiv(){
var example = document.getElementById("example");
var clients = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;//可视区域的高度
var divTop = example.getBoundingClientRect().top;
if(divTop <= clients){
example.classList.add("fadeInLeft");
// 这里可以通过setAttribute设置图片的src按需加载
}
document.title = clients+"---"+divTop;
} window.onscroll = showDiv;

在线演示

  • example2:网页滚动到顶部或者底部
<div id="example2" ></div>
#example2 {
width: 500px;
height: 350px;
background: red;
margin: 1000px auto 0 auto;
}
function scrollTopOrBottom(){
var example2 = document.getElementById("example");
var clients = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;//可视区域的高度,兼容性写法
var scrollTop = document.body.scrollTop;
var wholeHeight = document.body.scrollHeight;
if(clients + scrollTop >= wholeHeight){
alert("我已经到了底部!");
// 这里可以调用Ajax分页加载到页面中,实现多页加载功能
}else if(scrollTop == 0){
alert("我已经到了顶部了!"); }
document.title = (clients + scrollTop)+"---"+wholeHeight+"--"+scrollTop;
} window.onscroll = scrollTopOrBottom;

在线演示

  • example3:DIV滚动到底部加载
<div id="example3" >
DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载
DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载
DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载
DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载
DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载
DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载DIV滚动到底部加载
</div>
#example3 {
width: 500px;
height: 400px;
background: red;
margin: 10px auto;
padding: 10px;
overflow-y: scroll;
}
var div = document.getElementById("example3");
function divScroll(){ var wholeHeight = div.scrollHeight;//滚动区域高度
var divScrollTop = div.scrollTop;//卷上去的那部分高度
var divHeight = div.clientHeight; //div的可视区域的高度 if(divScrollTop + divHeight >= wholeHeight){
alert("我已经到了底部!");
// 这里可以在div中通过滚动加载分页按需显示
}else if(divScrollTop == 0){
alert("我已经到了顶部了!");
}
document.title = (divScrollTop + divHeight)+"---"+wholeHeight+"--"+divScrollTop;
} div.onscroll = divScroll;

在线演示

  • example4:计算滚动轴的宽度
    //获取滚动轴的宽度
function getScrollBar(){
var el = document.createElement("p");
var styles = {
width:"100px",
height:"100px",
overflowY:"scroll"
};
for (var prop in styles){
el.style[prop] = styles[prop];//把 styles上的属性全部遍历拷贝到el.style上 }
document.body.appendChild(el);
var scrollBarWidth = el.offsetWidth - el.clientWidth;
el.remove();
return scrollBarWidth;
}
alert(getScrollBar());//17

在线演示

五、js中的宽高属性总结


 

 

Paste_Image.png

document相关的宽高

第二部分 jQuery中的宽高属性


一、jquery相关宽高介绍


  • 1.1 width()

    • 特殊元素window.document只可以读,普通元素可以读写,width()返回结果无单位,css("width")的结果有单位

width--height

width
  • 1.2 innerWidth()

    • 包含padding(不推荐window,document调用)
  • 1.3 innerHeight()

innerWidth--innerHeight

innerWidth
  • 1.4 outerWidth()

    • 包含padding和border,当传true时包含marging,不传时不包含marging(不推荐window,document调用)
  • 1.5 outerHeight()

outerWidth--outerHeight

outerWidth
  • 1.6 scrollLeft():

    • 相对于水平滚动条左边的距离,如果滚动条非常左、或者元素不能被滚动,这个值为0;
  • 1.7 scrollTop():

    • 相对于垂直滚动条上边的距离,如果滚动条非常上、或者元素不能被滚动,这个值为0;
  • 1.8 .offset():

    • 相对于document的当前坐标值(相对于body左上角的left,top的值);
  • 1.9 .position():
    • 相对于offset parent的当前坐标值(相对于offset parent元素的左上角的left、top的值)

offset和position区别

二、jquery相关宽高举例


2.1 exmaple1

example1
    <div class="parentDiv">
<div class="childrenDiv"></div>
</div>
html,body {
margin:10px;
border:5px solid red;
padding:20px;
}
.parentDiv {
width:800px;
height:500px;
margin:5px auto;
background:#FF6600;
border:5px dashed green;padding:30px;position:relative; }
.childrenDiv {
width:300px;
height:500px;
margin:5px auto;
background:yellow;
border:5px solid black;
padding:5px;
box-sizing:border-box;/*包括padding和border的值*/
}
//特殊元素的高度
//window document
console.log("$(window).height()"+$(window).height());
console.log("$(document).height()"+$(document).height()); //innerHeight
console.log("$(window).innerHeight()"+$(window).innerHeight());
console.log("$(document).innerHeight()"+$(document).innerHeight()); //普通child元素的高度 //480 = 500 - border*2 - padding*2 (因为设置了box-sizing,box-sizing把border和padding的值计算了进去)
console.log('$(".childrenDiv").height()'+ $(".childrenDiv").height()); //490 = 500 - border*2 - padding*2(innerHeight不包括padding)
console.log('$(".childrenDiv").innerHeight()'+ $(".childrenDiv").innerHeight()); //500 = 500 不包括margin
console.log('$(".childrenDiv").outerHeight()'+ $(".childrenDiv").outerHeight()); //510 = 500 + margin true包括margin
console.log('$(".childrenDiv").outerHeight()'+ $(".childrenDiv").outerHeight(true)); //scrollTop $(window).scroll(function(){
document.title = "scrollTop "+$(this).scrollTop();
}); // jquery宽高演示之offset和position console.log('$(".childrenDiv").offset().top '+$(".childrenDiv").offset().top);
console.log('$(".childrenDiv").offset().left '+$(".childrenDiv").offset().left);
console.log('$(".childrenDiv").position().top '+$(".childrenDiv").position().top);
console.log('$(".childrenDiv").position().top '+$(".childrenDiv").position().left);

Paste_Image.png

offset-position

在线演示

三、jquery各种宽高应用


3.1 jquery可视区域加载

<div id="example" ></div>
#example {
width: 500px;
height: 350px;
background: red;
margin: 1000px auto 0 auto;
}
@-webkit-keyframes fadeInLeft{
0%{
opacity: 0;
transform: translate3d(-100%,0,0);
}
100%{
opacity: 1;
transform: none; }
}
.fadeInLeft {
animation-name: fadeInLeft;
animation-duration: 2s;
}
        $(window).scroll(function(){
var ks_area = $(window).height();//可视区域高度
var scrollHeight = $(window).scrollTop();//被卷上去的那部分
var divTop = $("#example").offset().top;//盒子距离浏览器顶部的距离 if(ks_area + scrollHeight >= divTop){
$("#example").addClass("fadeInLeft");
}
document.title = ks_area+'-'+scrollHeight+'-'+divTop;
});

在线演示

3.2 jquery滚动到底部和顶部加载

<div id="example" ></div>
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
#example {
width: 500px;
height: 350px;
background: red;
margin: 1000px auto 0 auto;
}
$(window).scroll(function(){
var ks_area = $(window).height();
var scrollTop = $(window).scrollTop();
var wholeHeight = $(document).height(); if(ks_area + scrollTop >=wholeHeight ){
alert("已经到底部了");
}else if(scrollTop == 0){
alert("已经到头部了");
}
})

在线演示

(完)

 

JavaScript及jQuery中的各种宽高属性图解的更多相关文章

  1. JavaScript中的各种宽高属性

    转自慕课网:http://www.imooc.com/article/14516   在js中,存在着N多的关于高度和宽度的属性,比如:clientHeight.offsetHeight.scroll ...

  2. JavaScript中的各种宽高以及位置总结

    JavaScript中的各种宽高以及位置总结 在javascript中操作dom节点让其运动的时候,常常会涉及到各种宽高以及位置坐标等概念,如果不能很好地理解这些属性所代表的意义,就不能理解js的运动 ...

  3. JavaScript中的各种宽高总结

    window和document首先我们来高清两个概念:    window和document的区别是什么?    window.location和document.location是一样吗?第一个问题 ...

  4. 从H264码流中获取视频宽高 (SPS帧) 升级篇

    之前写过 <从H264码流中获取视频宽高 (SPS帧)> . 但发现很多局限性,而且有时解出来是错误的. 所以重新去研究了. 用了 官方提供的代码库来解析. 花了点时间,从代码库里单独把解 ...

  5. LODOP中的各种宽高和位置简短问答

    LODOP中的位置边距,可查看本博客另一篇相关博文:LODOOP中的各种边距 打印项.整体偏移.可打区域.内部边距关于LODOP中的各种宽高,可查看本博文简短问答下方的正文:.该文其实有两个以前的相关 ...

  6. PHP去除html的宽高属性的正则表达式

    PHP去除html的宽高属性的正则表达式 <pre><?php/** * 清除宽高样式 * @param String $content 内容 * @return String */ ...

  7. js中的各种宽高以及位置总结

    在javascript中操作dom节点让其运动的时候,常常会涉及到各种宽高以及位置坐标等概念,如果不能很好地理解这些属性所代表的意义,就不能理解js的运动原理,同时,由于这些属性概念较多,加上浏览器之 ...

  8. JavaScript和jquery中的宽度

    Javascript: 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document ...

  9. 从H264码流中获取视频宽高 (SPS帧)

    获取.h264视频宽高的方法 花了2个通宵终于搞定.(后面附上完整代码) http://write.blog.csdn.net/postedit/7852406 图像的高和宽在H264的SPS帧中.在 ...

随机推荐

  1. JavaScript提高篇之预解释作用域以及this原理及其应用

    1.预解释 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  2. Thinkphp使用phpexcel导入文件并写入数据库

    现实中,我们往往很多地方都需要这样批量导入数据,除了phpexcel还有csv等方法可以解决 下面详细介绍一下使用方法 首先在官方下载安装包解压到本地,然后复制保存到tp框架下的vendor目录下 h ...

  3. windows 下更新 npm 和 node

    原文链接 公司的新项目要启动了,需要使用 Angular 4.0,并且使用 webpack 工具进行打包.所以就需要安装 node.node 的安装很简单,在 node 的官网 nodejs.org  ...

  4. 转:JAVA里面的int类型 和Integer类型,有什么不一样

    JAVA里面的int类型 和Integer类型,有什么不一样 原文链接:http://blog.csdn.net/wuxinliulei/article/details/11099565 java.l ...

  5. 快速上手使用Maven

    maven的相关命令 mvn archetype:create :创建 Maven 项目 mvn compile :编译源代码(编译到target文件夹中) mvn test-compile :编译测 ...

  6. null id in entry (don't flush the Session after an exception occurs) 解决方法

    最近在学习基于ssh的注解的系统,然后在实现往数据库增加记录时可以增加第一个,第二个就报错,在网上查了很多资料,大多都是 该异常信息是在提示我们没有为数据中的非空字段设置值. 然后就一直没有明白 明明 ...

  7. 应用教程之帕克西AR虚拟试妆3D动态美妆

    帕克西技术团队通过对美妆行业深度调研,凭借自主研发的人脸识别与面部追踪等技术,打造的超现实AR虚拟试妆应用已成功上线,内置万千妆容,包含口红.眉毛.睫毛等,一点即可试妆,就像照镜子一样简单. 那么,帕 ...

  8. 域名和ip不能访问的原因

    centos的话可能默认可能会有firewalld,可以执行 systemctl stop firewalld systemctl disable firewalld 禁用后在看看,前提都是域名得备案 ...

  9. memcache调整value大小限制

    > *事件背景: 当Redis有问题时按预案就会切换到本机memcache,但是我们首页 key:value现 在是1.5M同时memcache item限制是1M,导致首页写入memcache ...

  10. Centos7 下安装Docke

    为什么 要用centos7呢. 现在哪个企业用的是centos7呀.不都是老版本么. 对咱们是新技术.所以只有新系统才可以用.因为docker要求服务CentOS6以上,kernel 版本必须2.6. ...