(三)原生js案例之滚动到底部解锁按钮状态

news2025/1/31 2:47:06

业务主要是注册页面,有很长的条款需要用户去读,必须确认用户是不是看到全部的条款,这个场景下可以使用

效果

请添加图片描述

代码实现

  • 必要的css
<style>
    *{
      padding: 0;
      margin: 0;
    }
    ul{
      list-style: none;
      width: 330px;
      height: 100%;
      /* height: 200px; */
      background-color: #eee;
      overflow: auto;
      margin: 0 auto;
      text-align: left;
      
    }
    li{
      background-color: #e5e5e5;
    }
    .container{
      height: 100vh;
      background: linear-gradient(201deg,#F9F2FF 0%,#8EC5FC 100%); 

    }
    .modal{
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background-color: rgba(0, 0, 0, .5);
      display: flex;
      justify-content: center;
      align-items: center;
    }
    .content{
      width: 800px;
      height: 600px;
      background-color: #eee;
      border-radius: 10px;
      white-space: normal;
      text-align: center;
      
    }
    .content h2 {
      text-align: center;
      margin: 10px auto;
    }
    #outer{
      width: 100%;
      padding: 20px;
      box-sizing: border-box;
    }
    #btn{
      padding: 10px 20px;
      font-size: 16px;
      margin: 10px auto;
      outline: none;
      border: none;
    }
    #btn.active{
      background: linear-gradient(248deg,#9BE15D 0%,#00E3AE 100%); 
      color: #fff;
    }

    ::-webkit-scrollbar {
        z-index: 50;
        width: 10px;
        height: 3px;
    }
    ::-webkit-scrollbar-track {
        background-color: rgba(0, 0, 0, 0);
    }
    ::-webkit-scrollbar-thumb {
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        border-radius: 5px;
        background-color: rgba(0, 0, 0, 0.1);
        transition: all .2s;
        height: 20px;
        border: 1px solid rgba(0, 0, 0, 0.2);
    }


    :hover::-webkit-scrollbar-thumb {
        transition: all .2s;
    }

    ::-webkit-scrollbar-button {
        display: none;
    }
    ::-webkit-scrollbar-corner {
        display: none;
    }

  </style>
  • 静态页面
<div class="container">
    <div class="modal">
      <div class="content">
        <h2>产品使用须知</h2>
        <ul id="outer">
          <li id="inner">
            <pre>
            尊敬的用户:

                感谢您选择我们的产品。为了确保您能够安全、有效地使用本产品,我们特别编写了以下使用须知。
                请在使用前仔细阅读,并按照说明进行操作。

                1. 安全须知

                请在成人监护下使用本产品,避免儿童自行操作。
                避免在易燃、易爆环境中使用或存放本产品。
                请按照产品说明书中的指导进行操作,不要尝试自行拆解或改装。
                2. 安装与调试

                在安装产品前,请确保所有配件齐全,且符合产品要求。
                安装过程中,请严格按照安装手册的步骤进行,确保各部件连接牢固。
                安装完成后,进行必要的调试,确保产品运行平稳。
                3. 操作规范

                操作产品时,请遵循操作手册中的指导,避免误操作导致产品损坏或影响性能。
                请定期检查产品各部件的运行状态,发现异常及时处理。
                4. 维护保养

                定期对产品进行清洁和保养,保持其良好的工作状态。
                清洁产品时,请使用柔软的布料和中性清洁剂,避免使用腐蚀性或磨损性强的清洁工具。
                保养时,注意检查产品的电源线、插头等易损部件,确保其完好无损。
                5. 电池使用

                如果产品使用电池供电,请按照电池说明书的要求正确充电和使用。
                避免将电池暴露在高温或潮湿环境中,以免影响电池寿命。
                电池电量耗尽时,请及时更换或充电,避免电池过度放电。
                6. 故障处理

                遇到产品故障时,首先请检查电源、电池等外部因素,排除简单故障。
                如果故障无法自行解决,请及时联系我们的客服或专业维修人员,不要自行拆解或修理。
                7. 保修与服务

                本产品提供有限的保修服务,保修期内如遇非人为损坏的故障,可享受免费维修服务。
                保修服务不包括因用户不当操作、私自拆解或改装等原因造成的损坏。
                8. 环保与回收

                我们倡导环保理念,请您在使用完产品后,按照当地法规进行妥善处理或回收。
                请不要随意丢弃废旧产品,以免对环境造成污染。
                9. 用户反馈

                我们非常重视您的使用体验和建议,欢迎您通过客服渠道向我们反馈使用感受或提出改进建议。
                10. 法律声明

                本产品使用须知仅供参考,具体使用请以产品说明书和相关法律法规为准。
                如有任何疑问或需要帮助,请及时联系我们的客服团队。
                感谢您的理解与支持,祝您使用愉快!

                客服联系方式

                客服电话:[填写电话号码]
                客服邮箱:[填写邮箱地址]
                官方网站:[填写网站地址]
                日期:[填写日期]
              </pre>
          </li>
        </ul>
        <button id="btn" disabled>已阅读条款,下一步</button>
      </div>
    </div>
  </div>
  • js核心代码
 const outer = document.getElementById('outer');
    const inner = document.getElementById('inner');
    const modal = document.querySelector('.modal');
    const btn = document.getElementById('btn');
    let isRead = false
    outer.addEventListener('scroll', function(){
      if(!isRead){
        if(outer.scrollTop >= 295){
          // alert('滚动到了最底部');
          btn.disabled = false
          btn.classList.add('active');
          isRead = true;
        }
        
      }
      
    })
    btn.addEventListener('click', handleClick);
    function handleClick(){
      modal.style.display = 'none';
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1935137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot3——项目部署

springboot的项目开发完了&#xff0c;怎么样把他放到服务器上或者生产环境上让他运行起来跑起来。就要牵扯到项目部署&#xff0c;打包的方式了。 springboot支持jar和war: 打jar包&#xff1a;默认方式&#xff0c;项目开发完打个jar包&#xff0c;通过命令把jar包起起来就…

应用层——HTTP

像我们电脑和手机使用的应用软件就是在应用层写的&#xff0c;当我们的数据需要传输的时候换将数据传递到传输层。 应用层专门给用户提供应用功能&#xff0c;比如HTTP,FTP… 我们程序员写的一个个解决我们实际的问题都在应用层&#xff0c;我们今天来聊一聊HTTP。 协议 协议…

使用 vue-element-plus-admin 框架遇到的问题记录

项目打包遇到的问题&#xff1a; 打包语句&#xff1a;pnpm run build:pro 报错信息&#xff1a; Error: [vite]: Rollup failed to resolve import "E:/workplace_gitee/xxx/node_modules/.pnpm/element-plus2.5.5_vue3.4.15/node_modules/element-plus/es/components…

最新 Docker 下载镜像超时解决方案:Docker proxy

现在Docker换源也下载失败太常见了&#xff0c;至于原因&#xff0c;大家懂得都懂。本文提供一种简洁的方案&#xff0c; 利用 Docker 的http-proxy&#xff0c;代理至本机的 proxy。 文章目录 前言Docker proxy 前言 这里默认你会安装 clash&#xff0c;然后有配置和数据库。…

使用Java -jar运行就jar包时报异常:org.yaml.snakeyaml.error.YAMLException异常

Java运行就 .jar包时出现的 YAMLException 异常 我在本地环境测试时&#xff0c;使用 java -jar 命令运行 Java 可执行 .jar 包时&#xff0c;遇到了 org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length 1 异常&#xff1b;这…

【Docker】Docker-compose 单机容器集群编排工具

目录 一.Docker-compose 概述 1.容器编排管理与传统的容器管理的区别 2.docker-compose 作用 3.docker-compose 本质 4.docker-compose 的三大概念 二.YML文件格式及编写注意事项 1.yml文件是什么 2.yml问价使用注意事项 3.yml文件的基本数据结构 三.Docker-compose …

Flink HA

目录 Flink HA集群规划 环境变量配置 masters配置 flink-conf.yaml配置 测试 Flink HA集群规划 FLink HA集群规划如下&#xff1a; IP地址主机名称Flink角色ZooKeeper角色192.168.128.111bigdata111masterQuorumPeerMain192.168.128.112bigdata112worker、masterQuorumPee…

VS C#类文件自动生成头部注释

VS C#类文件自动生成头部注释&#xff08;以VS2019为例&#xff09; 1、更新位置 E:\VS2019\vs_2019\Common7\IDE\ItemTemplates\CSharp\Code\2052\Class 2、替换Class 原始文件 using System; using System.Collections.Generic; $if$ ($targetframeworkversion$ > 3.5…

Grafana :利用Explore方式实现多条件查询

背景 日志统一推送到Grafana上管理。所以&#xff0c;有了在Grafana上进行日志搜索的需求&#xff0c;而进行日志搜索通常需要多条件组合。 解决方案 通过Grafana的Explore的方式实现多条件查询。 直接看操作步骤&#xff1a; 在主页搜索框中输入“Explore” 进入这个界面…

记录vivado自带IP iBert眼图近端回环

记录利用vivado自带IP核工具测试信号质量 ibert是测试眼图的工具&#xff0c;在使用的时候并不用改太多的内容&#xff0c;只需要注意参考时钟及所需要的引脚即可。由于条件的限制&#xff0c;并没有使用光纤和电缆进行连接进行外部回环&#xff0c;仅使用内部回环做测试&…

高性能内存对象缓存Memcached原理与部署

Memcached概述 Memcached是一个高性能的分布式内存对象缓存系统&#xff0c;用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象&#xff0c;减少对数据库的访问&#xff0c;从而提高Web应用的响应速度。 原理 架构 Memcached采用的是一种简单的Key-Value存储…

Mac Electron 应用如何进行签名(signature)和公证(notarization)?

最近很多客户反映&#xff0c;从官网下载的Mac Electron应用打不开&#xff0c;直接报病毒&#xff0c;类似于这种&#xff1a; 这是因为在MacOS 10.14.5之后&#xff0c;如果应用没有在苹果官方平台进行公证notarization(我们可以理解为安装包需要审核&#xff0c;来判断是否存…

[数据分析]脑图像处理工具

###############ATTENTION&#xff01;############### 非常需要注意软件适配的操作系统&#xff01;有些仅适用于Linux&#xff0c;可以点进各自软件手册查看详情。 需要自行查看支持的影像模态。 代码库和软件我没有加以区分。 不是专门预处理的博客&#xff01;&#xf…

简约的悬浮动态特效404单页源HTML码

源码介绍 简约的悬浮动态特效404单页源HTML码,页面简约美观,可以做网站错误页或者丢失页面,将下面的代码放到空白的HTML里面,然后上传到服务器里面,设置好重定向即可 效果预览 完整源码 <!DOCTYPE html> <html><head><meta charset="utf-8&q…

求职学习day5

安排明天hr面 投一下平安可能。 hr面准备&#xff0c;复习java核心技术&#xff0c;复习java项目。 正视自己&#xff0c;调整心态。 也是很早接触了javaguide但是没有持续学习&#xff0c;项目介绍 | JavaGuide&#xff0c;面试前复习一下感觉还是很有收获的。 还有一些…

个人推荐使用的最佳免费数据恢复软件

如果您最近丢失了存储驱动器上的文件&#xff0c;您可以使用免费数据恢复软件恢复它们。当您一次选择多个文件时&#xff0c;很容易意外删除文件。恶意软件攻击和驱动器故障也会导致数据丢失。 虽然 Windows 或 macOS 可能无法访问这些信息&#xff0c;但数据恢复应用程序可以…

适用于 Android 的恢复应用程序合集分享

丢失重要文件或数据从来都不是一件有趣的事。这种情况可能发生在您的计算机和笔记本电脑上&#xff0c;也可能发生在您的 Android 智能手机或平板电脑上。然而&#xff0c;尽管 Android 用户可能认为在这种情况下他们可用的选择较少&#xff0c;但用于 Android 数据恢复的应用程…

HarmonyOS ArkUi @CustomDialog 和promptAction.openCustomDialog踩坑以及如何选择

CustomDialog 内使用Link&#xff0c;如何正常使用 错误使用方式&#xff1a; 定义一个函数&#xff0c;在函数内使用弹窗&#xff0c;如下面代码showDialog&#xff1a; 这种使用方式&#xff0c;无法在自定义的CustomDialog内使用 Link&#xff0c;进行父子双向绑定&#x…

反爬虫策略中的IP地址轮换如何实现?挑战与对策

当今互联网时代&#xff0c;各类网站、网络平台背后隐藏着大量数据&#xff0c;广告数据收集、市场数据收集都需要依托爬虫技术&#xff0c;但很多网站通过反爬虫技术限制或屏蔽爬虫的访问&#xff0c;这给数据收集带来不小的挑战。 为了规避这些反爬虫策略&#xff0c;开发人…

CentOS 7报错:yum命令报错 “ Cannot find a valid baseurl for repo: base/7/x86_6 ”

参考连接&#xff1a; 【linux】CentOS 7报错&#xff1a;yum命令报错 “ Cannot find a valid baseurl for repo: base/7/x86_6 ”_centos linux yum search ifconfig cannot find a val-CSDN博客 Centos7出现问题Cannot find a valid baseurl for repo: base/7/x86_64&…