zoukankan      html  css  js  c++  java
  • JavaScipt30(第二十二个案例)(主要知识点:getBoundingClientRect)

    这是第二十二个案例,这个例子实现的是鼠标移入a标签时,将其高亮。

    附上项目链接: https://github.com/wesbos/JavaScript30

    以下为注释后的源码:

    <script>
        const triggers = document.querySelectorAll('a');
        const highlight = document.createElement('span');
        highlight.classList.add('highlight');
        document.body.appendChild(highlight);
    
        function highlightLink() {
            // 返回值是一个DOMRect对象,DOMRect 对象包含了一组用于描述边框的只读属性——left、top、right和bottom,单位为像素。
            const linkCoords = this.getBoundingClientRect();
            const coords = {
                 linkCoords.width,
                height: linkCoords.height,
                // 这里有个值得注意的点是,因为DOMRect是相对于视口的左上角位置而言的,所以需要加上滚动的scrollY或scrollX
                top: linkCoords.top + window.scrollY,
                left: linkCoords.left + window.scrollX
            };
    
            highlight.style.width = `${coords.width}px`;
            highlight.style.height = `${coords.height}px`;
            // 除了定位外的另一种移到某个位置的方法,要记得用
            highlight.style.transform = `translate(${coords.left}px, ${coords.top}px)`;
        }
    
        triggers.forEach(a => a.addEventListener('mouseenter', highlightLink));
    </script>
    好记性不如烂笔头,看到自己觉得应该记录的知识点,结合自己的理解进行记录,用于以后回顾。
  • 相关阅读:
    css基础属性
    选择器的类型
    css的三种表现形式
    表单和表格
    如何比较两个xml 的异同
    xslt 简单的语法
    xslt 和一个demo
    event based xml parser (SAX) demo
    SAX vs. DOM (Event vs. Tree)
    xmlns 实例分析
  • 原文地址:https://www.cnblogs.com/wangxi01/p/10675524.html
Copyright © 2011-2022 走看看