网站建设电脑维修数据恢复,新昌品牌网站建设,编译django做的网站,wordpress联动搜索筛选一、事件流 假设页面里有个div#xff0c;当触发事件时#xff0c;会经历两个阶段#xff0c;分别是捕获阶段、冒泡阶段简单来说#xff1a;捕获阶段是 从父到子 冒泡阶段是从子到父实际工作都是使用事件冒泡为主
二、页面加载事件 加载外部资源#xff08;如图片、外联CS…一、事件流 假设页面里有个div当触发事件时会经历两个阶段分别是捕获阶段、冒泡阶段简单来说捕获阶段是 从父到子 冒泡阶段是从子到父实际工作都是使用事件冒泡为主
二、页面加载事件 加载外部资源如图片、外联CSS和JavaScript等加载完毕时触发的事件
有些时候需要等页面资源全部处理完了做一些事情
事件名load
监听页面所有资源加载完毕
window.addEventListener(load, function() {// xxxxx
})
三、元素滚动事件
滚动条在滚动的时候持续触发的事件
window.addEventListener(scroll, function() {// xxxxx
}) 四、页面尺寸事件
会在窗口尺寸改变的时候触发事件
window.addEventListener(resize, function() {// xxxxx
})
元素尺寸与位置
获取元素的自身宽高、包含元素自身设置的宽高、padding、border
offsetWidth和offsetHeight
获取出来的是数值,方便计算
注意: 获取的是可视宽高, 如果盒子是隐藏的,获取的结果是0
五、offsetWidth和offsetHeight
offsetLeft和offsetTop 注意是只读属性获取元素距离自己定位父级元素的左、上距离 案例当指定模块距离父元素的距离小于滚动的距离显示菜单栏反之隐藏
bodydiv classheader我是顶部导航栏/divdiv classcontentdiv classsk秒杀模块/div/divdiv classbacktopimg src./images/close2.png alt /a hrefjavascript:;/a/divscriptconst header document.querySelector(.header);const sk document.querySelector(.sk);window.addEventListener(scroll, function () {let n document.documentElement.scrollTop;console.log(n);console.log(sk.offsetTop);if (n sk.offsetTop) {header.style.top 0;} else {header.style.top -80px;}});/script/body
六、总结
七、综合案例 需求点击不同的模块页面可以自动跳转不同的位置 // 第一大模块页面滑动可以显示和隐藏(function () {const list document.querySelector(.xtx-elevator);window.addEventListener(scroll, function () {let n document.documentElement.scrollTop;if (n 100) {list.style.opacity 1;} else {list.style.opacity 0;}});// 点击顶部返回const backTop document.querySelector(#backTop);backTop.addEventListener(click, function () {document.documentElement.scrollTop 0;});})();// 第二大模块点击导航栏跳转对应位置(function () {const list document.querySelector(.xtx-elevator-list);list.addEventListener(click, function (e) {const old document.querySelector(.xtx-elevator-list .active);console.log(e.target.dataset.name);if (old e.target.dataset.name) {old.classList.remove(active);} else {e.target.classList.add(active);}// 大盒子距离顶部的距离const bigbox document.querySelector(.xtx_goods_${e.target.dataset.name}).offsetTop;document.documentElement.scrollTop bigbox;console.log(bigbox);});})();// 页面滚动到对应位置导航对应模块也自动发生变化window.addEventListener(scroll, function () {// 3.1 先移除类// 先获取这个active的对象const old document.querySelector(.xtx-elevator-list .active);// console.log(old)// 判断 如果原来有active类的对象就移除类如果开始就没有对象就不删除所以不报错if (old) old.classList.remove(active);// 3.2 判断页面当前滑动的位置选择小盒子const news document.querySelector(.xtx_goods_new);const popular document.querySelector(.xtx_goods_popular);const brand document.querySelector(.xtx_goods_brand);const topic document.querySelector(.xtx_goods_topic);let n document.documentElement.scrollTop;if (n news.offsetTop n popular.offsetTop) {document.querySelector([data-namenew]).classList.add(active);} else if (n popular.offsetTop n brand.offsetTop) {document.querySelector([data-namepopular]).classList.add(active);} else if (n brand.offsetTop n topic.offsetTop) {document.querySelector([data-namebrand]).classList.add(active);} else if (n topic.offsetTop) {document.querySelector([data-nametopic]).classList.add(active);}});