花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 56|回复: 10

两个元素同步滚动演示

[复制链接]
  • TA的每日心情
    奋斗
    2026-3-14 12:47
  • 签到天数: 1758 天

    [LV.Master]伴坛终老

    3143

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2026-3-4 12:06 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    实现滚动同步使用到的属性:

    1. Element.scrollTop - 可读写属性,可以获取或设置元素内容从其顶部边缘滚动的像素数。
    2. Element.scrollHeight - 只读属性,是一个元素内容高度,包括由于溢出导致的视图中不可见内容。
    3. Element.clientHeight - 只读属性,对于没有定义 CSS 或者内联布局盒子的元素为 0;否则,它是元素内部的高度(以像素为单位),包含内边距,但不包括边框、外边距和水平滚动条(如果存在)。

    实现思路:

    1. 获取滚动元素当前滚动位置(scrollTop)和元素内容高度(scrollHeight - clientHeight)的比例;

    2. 将上述比例值应用于第二个元素,即根据此元素自己的滚动条实际高度计算出 scrollTop 属性值并驱动该值刷新。

    同时应考虑到滚动事件是高发事件,可以设计一个滚动机制以减少CPU消耗,详见代码示例。

    <style> /* 父元素 */ .pa { margin: 20px auto; width: 80vw; height: 90vh; display: flex; gap: 20px; } /* 子元素 */ .son { width: 50%; height: 100%; border: 1px solid #ccc; overflow: auto; } /* 孙元素 */ .grandson { height: 300%; background: linear-gradient(35deg, tan, beige, snow, beige, tan); } </style> <div class="pa"> <div id="son1" class="son"> <div class="grandson"></div> </div> <div id="son2" class="son"> <div class="grandson"></div> </div> </div> <script> let isScrolling = false; // 同步滚动逻辑 son1.addEventListener('scroll', () => scrolling(son1, son2)); son2.addEventListener('scroll', () => scrolling(son2, son1)); /* 滚动函数 */ function scrolling(el1, el2) { if (isScrolling) return; isSScrolling = true; const per = el1.scrollTop / (el1.scrollHeight - el1.clientHeight); el2.scrollTop = per * (el2.scrollHeight - el2.clientHeight); setTimeout(() => isScrolling = false, 10); } </script>

    评分

    参与人数 3威望 +110 金钱 +220 经验 +110 收起 理由
    红影 + 50 + 100 + 50 匠心独运,细节精致入微!
    梦江南 + 30 + 60 + 30 匠心独运,细节精致入微!
    杨帆 + 30 + 60 + 30 匠心独运,细节精致入微!

    查看全部评分

  • TA的每日心情
    奋斗
    2026-3-14 12:47
  • 签到天数: 1758 天

    [LV.Master]伴坛终老

    3143

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-3-4 12:09 | 显示全部楼层
    节流、防抖是滚动事件实际应用中常用到的,本示例没有做防抖功能,节流也是粗糙的,适用于小范围滚动,若是大型项目需要额外设计更为严格的节流防抖机制。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-3-14 12:55
  • 签到天数: 476 天

    [LV.9]以坛为家II

    352

    主题

    3599

    回帖

    2万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

    发表于 2026-3-4 16:34 | 显示全部楼层
    有趣~实现了两个滚动区域的同步滚动效果,谢谢马老师经典讲授与精彩示范
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-3-14 12:47
  • 签到天数: 1758 天

    [LV.Master]伴坛终老

    3143

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-3-4 17:47 | 显示全部楼层
    杨帆 发表于 2026-3-4 16:34
    有趣~实现了两个滚动区域的同步滚动效果,谢谢马老师经典讲授与精彩示范

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2026-3-9 14:55
  • 签到天数: 683 天

    [LV.9]以坛为家II

    471

    主题

    1万

    回帖

    4万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪缤纷心情心曲飞扬花好月圆飞龙在天音画大师天籁妙音共看流星风雨同行我心永远喜乐安康花潮贵宾

    发表于 2026-3-4 18:19 | 显示全部楼层
    滾动色彩很美,这能用到帖子里吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-3-14 12:47
  • 签到天数: 1758 天

    [LV.Master]伴坛终老

    3143

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-3-4 18:27 | 显示全部楼层
    梦江南 发表于 2026-3-4 18:19
    滾动色彩很美,这能用到帖子里吗?

    如果觉得有必要
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2026-3-9 14:55
  • 签到天数: 683 天

    [LV.9]以坛为家II

    471

    主题

    1万

    回帖

    4万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪缤纷心情心曲飞扬花好月圆飞龙在天音画大师天籁妙音共看流星风雨同行我心永远喜乐安康花潮贵宾

    发表于 2026-3-4 18:31 | 显示全部楼层

    滾动色彩做帖子背景蛮赞的。个人觉得是好的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-3-14 12:47
  • 签到天数: 1758 天

    [LV.Master]伴坛终老

    3143

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-3-4 19:01 | 显示全部楼层
    梦江南 发表于 2026-3-4 18:31
    滾动色彩做帖子背景蛮赞的。个人觉得是好的。

    好看多看看
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2026-3-9 14:55
  • 签到天数: 683 天

    [LV.9]以坛为家II

    471

    主题

    1万

    回帖

    4万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪缤纷心情心曲飞扬花好月圆飞龙在天音画大师天籁妙音共看流星风雨同行我心永远喜乐安康花潮贵宾

    发表于 2026-3-4 19:05 | 显示全部楼层

    是哦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1895

    主题

    32万

    回帖

    38万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2026-3-4 21:07 | 显示全部楼层
    两个son显示出来的时候是并列的,还真是同步滚动的。
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2026-3-14 12:47
  • 签到天数: 1758 天

    [LV.Master]伴坛终老

    3143

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2026-3-5 19:45 | 显示全部楼层
    红影 发表于 2026-3-4 21:07
    两个son显示出来的时候是并列的,还真是同步滚动的。

    这时利用两个元素的滚动条位置百分比驱动,应用场景可能会复杂化
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2026-3-14 23:12 , Processed in 0.093813 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表