在父元素中滚动指定的子元素

 // 获取目标锚点dom元素
        anchorPointFun(id) {
            // 假设我们要从父元素中移除所有子元素的'myClass'类
            const parent = document.querySelector("#tableScroll") // 获取父元素
            const childrenTr = parent.querySelectorAll("tbody tr")
            // 遍历所有子元素
            for (var i = 0; i < childrenTr.length; i++) {
                var childElement = childrenTr[i];

                // 检查子元素是否包含'myClass'类,如果包含则移除
                if (childElement.classList.contains('anchor-gren')) {
                    childElement.classList.remove('anchor-gren');
                }
            }
            let dom = document.querySelector(`#row${id}`);
            this.goDomFun(dom, parent);
        },
        // 滚动到指定node节点
        goDomFun(dom, parent) {
            if (!dom) return

            console.log(parent, dom.offsetTop - parent.offsetTop);
            parent.scrollTo(0, dom.offsetTop - parent.offsetTop); // x轴不滚动,y轴滚动150px
            // 给dom元素添加高亮动画
            dom.classList.add("anchorAnimation");
            dom.classList.add("anchor-gren");
            setTimeout(() => {
                dom.classList.remove("anchorAnimation");
            }, 2500);
        },

/*动画*/
        .anchorAnimation {
            animation-name: anchorKeyframes;
            animation-duration: 2.5s;
            animation-fill-mode: both;
        }

        @keyframes anchorKeyframes {
            0% {
                background-color: transparent;
            }

            25% {
                background-color: rgba(93, 174, 255, 0.1);
            }

            50% {
                background-color: transparent;
            }

            75% {
                background-color: rgba(93, 174, 255, 0.1);
            }

            100% {
                background-color: transparent;
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值