资讯专栏INFORMATION COLUMN

(个人笔记)在给在线简历添加js特效过程中遇到的问题及解决方法 一

Yuanf / 1515人阅读

摘要:个人笔记在给在线简历添加特效过程中遇到的问题及解决方法一预览页面滚动元素的事件处理函数。语法参数是一个函数的引用。事件是当窗口发生滚动得时候触发的事件返回文档在垂直方向已滚动的像素值。

(个人笔记)在给在线简历添加js特效过程中遇到的问题及解决方法 一

github
预览

页面滚动demo
元素的 scroll 事件处理函数。

语法 element.onscroll = functionReference 参数 functionReference是一个函数的引用。
当该元素滚动时,会执行该函数。

window.onscroll事件是当窗口发生滚动得时候触发的事件

Window.scrollY返回文档在垂直方向已滚动的像素值。
MDN

点我触发点击事件

实际上点到了span上面
a.target是用户操作的
a.currentTarget是监听的
打印如下:

nodetype

https://developer.mozilla.org...
下一个 兄弟子节点

let a = x.currentTarget;
            let brother = a.nextSibling;
            while (brother.nodeType === 3){
                // brother.nodeType === 3说明brother还是回车或者文字或者空格,循环到他不是为止
                brother = brother.nextSibling;
            }

或者

while (brother.tagName !== "UL"){
                // brother.nodeType === 3说明brother还是回车或者文字或者空格,循环到他不是为止
                brother = brother.nextSibling;
            }

tagName返回的是大写的标签名

获取所有满足条件的结点
let liTags = document.querySelectorAll("nav.meau > ul > li");
transition过渡注意点

过不不能操控的元素有margin,display

一般用来操控:
宽高width,height
定位后的right,left
透明度opacity
阴影box-shadow

利用纯CSS实现子菜单的滑动出现与滑动消失

demo预览地址
核心是transition(过渡),但是仍未解决transitiondisplay无效的问题.
目前只做到,让其透明读变成0,近似消失.

代码:




    
    transitionTest
    







preventDefault()禁止默认动作
a.onclick = function (x) {
            x.preventDefault();//禁止默认动作.即禁止a标签的默认锚点跳转动作
        }
a.href和 a.getAttribute("href")区别
aTags[i].onclick = function (x) {
            x.preventDefault();//禁止默认动作.即禁止a标签的默认锚点跳转动作
            let a = x.currentTarget;
            console.log(a.href);
           console.log( a.getAttribute("href"));

        }

a.href返回的是带域名的href的值
a.getAttribute("href")就返回href里面的值

Element.getBoundingClientRect()

弄清元素距离页面顶部的距离和距离视口顶部的距离:
页面顶部指的是整个网页的顶部,即随着页面的滚动,元素距离页面顶部的距离不会变化.

window.scrollX

window.scrollY是网页滚动的距离,即视口顶部距离网页顶部的距离.

为了跨浏览器兼容,请使用 window.pageXOffsetwindow.pageYOffset 代替 window.scrollXwindow.scrollY

Element.getBoundingClientRect().top是元素Element距离视口顶部的距离
参考这里Element.getBoundingClientRect()

element.offsetTop是元素顶部距离网页最上层的距离

HTMLElement.offsetTop 为只读属性,它返回当前元素相对于其 offsetParent 元素的顶部的距离。

offsetTop

element.offsetTop等于Element.getBoundingClientRect().top + window.scrollX

aTags[i].onclick = function (x) {
            x.preventDefault();//禁止默认动作.即禁止a标签的默认锚点跳转动作
            let a = x.currentTarget;
            // console.log(a.href);
            let href = a.getAttribute("href")//"#siteSkills"
            let element = document.querySelector(href);

            console.log("element.getBoundingClientRect().top为:"+element.getBoundingClientRect().top);
            console.log("(window.scrollY为:"+window.scrollY);
            console.log("上面两个的和为"+(element.getBoundingClientRect().top+window.scrollY));//相加等于offsetTop
            console.log("element.offsetTop为:"+element.offsetTop)//只读属性

        }

window.scrollTo(x,y)滚动到文档中的某个坐标.

窗口移动到相应位置(网页左上角的移动到(x,y)

document.querySelector()

document.querySelector()返回的是一个元素,

但是区别于:document.querySelectorAll("nav>ul>li>a")
返回的是数组

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94885.html

相关文章

  • (个人笔记)在给在线简历添加js特效过程遇到问题解决方法

    摘要:个人笔记在给在线简历添加特效过程中遇到的问题及解决方法二预览点击菜单滚动动画首页目标位置当作终点坐标当前滚动到的距离当做起点是步数分步是每次重复都加的变量既要清除又要毫秒除以帧就是每走一步的时间库缓动动画缓动函数速查表库搜索引入一个网站 (个人笔记)在给在线简历添加js特效过程中遇到的问题及解决方法 二 github预览 点击菜单滚动动画首页 let top = element.of...

    CarlBenjamin 评论0 收藏0
  • 前端开发学习-网址记录

    摘要:不是一下子能看完综合使用编程是一番怎样的体验学习笔记网站前端开发基础算法题如何优雅地使用如何优雅地使用零度博客码农网伯乐在线什么是页面渲染国外先更到这,还有太多网址,先归类一下再补充。 最近在复习JavaScript知识时遇到以前就不懂的闭包、上下文,虽然比以前理解深了一点,但还是懵,想缓一下。。就去看了其他。。把Git、Grunt、Gulp、jQuery、jQuery UI、Reac...

    CatalpaFlat 评论0 收藏0
  • 前端开发学习-网址记录

    摘要:不是一下子能看完综合使用编程是一番怎样的体验学习笔记网站前端开发基础算法题如何优雅地使用如何优雅地使用零度博客码农网伯乐在线什么是页面渲染国外先更到这,还有太多网址,先归类一下再补充。 最近在复习JavaScript知识时遇到以前就不懂的闭包、上下文,虽然比以前理解深了一点,但还是懵,想缓一下。。就去看了其他。。把Git、Grunt、Gulp、jQuery、jQuery UI、Reac...

    anonymoussf 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<