元素尺寸和位置,scroll事件,事件响应链,事件默认行为

简介:

元素的尺寸和位置
// 通过元素对象的style属性设置的样式是行内样式,所以通过style获取也是获取的行内样式,并不能获取css设置的样式值。



// 元素对象的clientWidth属性表示元素的宽度,
// console.log(box.clientWidth);
// clientHeight高度。
// console.log(box.clientHeight);



// 带边框的宽高。
// console.log(box.offsetWidth);
// console.log(box.offsetHeight);




// 获得元素相对于浏览器窗口的坐标。
// console.log(box.offsetLeft);
// console.log(box.offsetTop);

// 使用自身相对窗口的坐标减去父元素相对窗口的坐标可以得到自己相对于父元素的坐标。


// 浏览器窗口的宽高(工作区,显示页面的区域)
console.log(window.innerWidth);
console.log(window.innerHeight);

// 整个浏览器窗口的宽高
console.log(window.outerWidth);
console.log(window.outerHeight);

// 元素对象的onscroll事件,当元素内容发生滚动时触发,它是一个频繁出发的事件。

box.onscroll = function (){
// console.log("div发生滚动了");
}

// scrollTop属性表示元素纵向的滚动偏移量。
console.log(box.scrollTop);


// scrollHeight属性表示元素的内容高度
console.log(box.scrollHeight);


// 元素内容高度 - 元素本身高度 = 最大偏移量。
// 元素的当前偏移量等于最大偏移量时,说明滚动到底部了。
if (box.scrollHeight-box.clientHeight==box.scrollTop){
console.log( "到底了" );
}


// 事件的传播分为捕获和冒泡两个阶段,通过行内属性和元素对象.onxxxx这两种方式添加的事件监听都是冒泡阶段的事件监听。


outer.onclick = function (){
console.log( "outer被点击了" );
}

inner.onclick = function (e){
console.log( "inner被点击了" );
// 事件对象的stopPropagation方法,可以阻止事件的继续传播。
e.stopPropagation();
}




// 元素对象的addEventListener方法,为元素添加一个事件监听。第一个参数是要监听的事件类型,第二个参数是事件函数,第三个参数可选,是否在冒泡捕获阶段监听,默认为false
// 相比于前两种方法,这种方法可以为同一个元素的同一个事件添加多个事件函数。
outer.addEventListener( "click" , function (e){
console.log( "outer捕获阶段" );
}, true );

outer.addEventListener( "click" , function (e){
console.log( "outer冒泡阶段" );
}, false );



// 在事件响应链中任何阶段都可以阻止事件的传播



// removeEventListener移除已经添加过的事件监听
inner.removeEventListener( "click" ,f1, true );





// 在浏览器中,某些事件会触发浏览器的默认行为,例如,按下F5,浏览器就会刷新当前页面,点击a标签,页面就会跳转。

var link = document.getElementById( "link" );

link.onclick = function (e){
// 事件对象的preventDefault方法,可以阻止本次事件所触发的浏览器默认行为。
e.preventDefault();
}

document.body.onkeydown = function (e){
if (e.keyCode== 116 ){
e.preventDefault();
}
}


var box = document.getElementById( "box" );

// 当鼠标指针进入元素时触发。
box.onmouseenter = function (){
// console.log("鼠标进入了");
}

// 当鼠标指针离开元素时触发。
box.onmouseleave = function (){
// console.log("鼠标离开了");
}

// 当鼠标指针在元素中移动时触发,属于频繁触发的事件。
box.onmousemove = function (){
// console.log("鼠标移动了");
}

box.onmousedown = function (e){
console.log(e);
}

box.onmousewheel = function (){
console.log( "滚轮滚动了" );
}

box.addEventListener( "DOMMouseScroll" , function (){
console.log( "滚轮滚动了" );
})





























目录
相关文章
|
小程序
小程序中点击子元素事件而不触发父元素的点击事件
小程序中点击子元素事件而不触发父元素的点击事件
164 0
|
4月前
|
JavaScript
vue 组件封装 | 随鼠标移动的信息框 (含监听鼠标移动、移出事件,获取元素的宽高、获取浏览器的宽高)
vue 组件封装 | 随鼠标移动的信息框 (含监听鼠标移动、移出事件,获取元素的宽高、获取浏览器的宽高)
48 1
|
前端开发 JavaScript 容器
JavaScrpit如何实现弹出遮罩层后将页面固定到当前位置且无法继续滚动
JavaScrpit如何实现弹出遮罩层后将页面固定到当前位置且无法继续滚动
74 0
|
6月前
关于实现点击父元素点击后显示子元素,但点击子元素不消失的方法(阻止事件传递)
关于实现点击父元素点击后显示子元素,但点击子元素不消失的方法(阻止事件传递)
48 0
|
JavaScript
checkbox选中和取消,控制dom元素颜色变化
checkbox选中和取消,控制dom元素颜色变化
59 0
|
JavaScript
js监听页面或元素scroll事件,滚动到底部或顶部
js监听页面或元素scroll事件,滚动到底部或顶部
1258 0
js监听页面或元素scroll事件,滚动到底部或顶部
|
JavaScript 前端开发
JavaScript时间戳获取及时间戳判断(同时设置不同的颜色。已开始的事件显示绿色,未开始的事件显示黑色,过去的事件显示灰色)
JavaScript时间戳获取及时间戳判断(同时设置不同的颜色。已开始的事件显示绿色,未开始的事件显示黑色,过去的事件显示灰色)
98 0
判断滚动条距离顶部为0执行事件jq--滚动到顶部的距离
判断滚动条距离顶部为0执行事件jq--滚动到顶部的距离
元素去掉滚动条,保留滚动功能
元素去掉滚动条,保留滚动功能
114 0
|
JavaScript
全屏 监听键盘事件 添加元素 删除添加的元素
全屏 监听键盘事件 添加元素 删除添加的元素
全屏 监听键盘事件 添加元素 删除添加的元素