dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 582|回复: 0

[前端] 使用CSS实现页面平滑滚动效果

[复制链接]
  • TA的每日心情
    奋斗
    2023-9-9 08:05
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    358

    主题

    374

    帖子

    1641

    积分

    荣誉会员

    积分
    1641

    发表于 2023-9-22 16:00:04 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

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

    x
    要实现页面平滑滚动效果,可以使用CSS的`scroll-behavior`属性和一些JavaScript代码。下面是具体的步骤:

    1. 在你的HTML文件中,确保有一个可以滚动的元素,比如一个带有内容的`<div>`标签。
    [JavaScript] 纯文本查看 复制代码
    <div class="scrollable-content">
      <!-- 这里放置你的内容 -->
    </div>
    


    2. 在你的CSS文件中,为这个滚动元素添加样式,并设置`scroll-behavior`属性为`smooth`。
    [CSS] 纯文本查看 复制代码
    .scrollable-content {
      overflow-y: scroll; /* 或者使用overflow: auto; */
      scroll-behavior: smooth;
      height: 400px; /* 设置合适的高度 */
    }
    


    3. 现在你已经设置了平滑滚动的基本样式,但在某些情况下(比如点击链接时),页面跳转可能不会平滑滚动。这时你可以使用JavaScript来处理平滑滚动的情况。
    [JavaScript] 纯文本查看 复制代码
    // 获取所有需要平滑滚动的链接
    const smoothScrollLinks = document.querySelectorAll('a[href^="#"]');
    
    // 遍历每个链接并添加事件监听器
    smoothScrollLinks.forEach(link => {
      link.addEventListener('click', smoothScroll);
    });
    
    // 平滑滚动函数
    function smoothScroll(e) {
      e.preventDefault(); // 阻止默认的链接跳转行为
    
      const targetId = this.getAttribute('href'); // 获取目标元素的ID
      const targetElement = document.querySelector(targetId); // 根据ID获取目标元素
    
      // 使用scrollIntoView方法实现平滑滚动
      targetElement.scrollIntoView({
        behavior: 'smooth'
      });
    }
    


    4. 现在当你点击具有`href`属性的锚链接时,页面将会平滑滚动到对应的目标位置。

    注意:CSS的`scroll-behavior`属性在某些旧版的浏览器中不被支持,这时JavaScript代码仍然可以实现平滑滚动效果。

    温馨提示:
    1、本站所有内容均为互联网收集或网友分享或网络购买,本站不破解、不翻录任何视频!
    2、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意!
    3、本站资源仅供本站会员学习参考,不得传播及用于其他用途,学习完后请在24小时内自行删除.
    4、本站资源质量虽均经精心审查,但也难保万无一失,若发现资源有问题影响学习请一定及时点此进行问题反馈,我们会第一时间改正!
    5、若发现链接失效了请联系管理员,管理员会在2小时内修复
    6、如果有任何疑问,请加客服QQ:1300822626 2小时内回复你!
    回复

    使用道具 举报

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

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-12-23 11:55 , Processed in 0.604291 second(s), 30 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

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