纯js实现悬浮按钮组件

发布时间 - 2026-01-10 21:54:25    点击率:

先上效果

下面附上代码 使用方式很简单只需要 在页面引入这段js 即可

$(()=> {
 let param = {
  tag: true,
  num: 1,
  ele: document.createElement('div'),
  icon: '',
  homeIcon: '',
  moreIcon: '',
  personalIcon: '',
  closeIcon: '',
  distance: '500',
  css: "position:fixed;" +
  "bottom:4rem;" +
  "box-shadow:10px 10px 10px gray;" +
  "right:10px;" +
  "display:none;" +
  "font-size:1.5rem;" +
  "color:#fff;" +
  "z-index:1000;" +
  "height:2.5rem;" +
  "width:2.5rem;" +
  "background:#f44336;" +
  "border-radius:50%;" +
  "line-height:2.5rem;" +
  "text-align:center",
  menuCss: "position:absolute;" +
  // "bottom:3rem;" +
  "display:none;" +
  "box-shadow:10px 10px 10px gray;" +
  "font-size:1.2rem;" +
  "color:#fff;" +
  "background:orange;" +
  "height:2rem;" +
  "width:2rem;" +
  "border-radius:50%;" +
  "text-align:center;" +
  "line-height:2rem;"
  // type: '#top'
 };

 {
  document.querySelector('body').appendChild(((ele)=> {
   ele.className = 'scroll iconfont';
   ele.innerHTML = param.moreIcon;
   // ele.href = param.type;
   ele.style.cssText = param.css;
   for (let i = 0; i < 3; i++) {
    let menu_personal = document.createElement('a');
    menu_personal.className = 'iconfont';
    menu_personal.style.cssText = param.menuCss;

    switch (i) {
     case 0:
      setStyle(menu_personal, '#2196f3', '2.4rem', '2.4rem', param.homeIcon, 'home');
      break;

     case 1:
      setStyle(menu_personal, '#4caf50', 0, '3.5rem', param.personalIcon, 'personal');
      break;

     case 2:
      setStyle(menu_personal, '#fdd835', '3.5rem', '0', param.icon, 'top');
      break;

    }

    param.ele.appendChild(menu_personal);


   }
   return ele;
  })(param.ele));

  function setStyle(ele, ...args) {
   ele.style.background = args[0];
   ele.style.bottom = args[1];
   ele.style.right = args[2];
   ele.innerHTML = args[3];
   ele.id = args[4];
  }

 }
 {
  $(window).scroll(()=> {
   var scrollValue = $(window).scrollTop();
   if (scrollValue > param.distance) {
    if (param.tag) {
     $(param.ele).css('display', 'block').animateCss('fadeInRight');
     param.tag = !param.tag;
    }
   } else {
    if (!param.tag) {
     $(param.ele).css('display', 'none');
     $(param.ele).children().css('display', 'none');
     param.num++;
     param.tag = !param.tag;
    }
   }
  });

  $(param.ele).click((e)=> {
   window.e = e;
   switch (e.target.id) {

    case 'home':
     if (!getTypeNative()) {
      window.location.href = getAbsolutePath() + '/fenqihui/pages/recommended/recommended_index.html';
     } else if (getTypeNative() === 'ios') {
      backHome();
     } else if (getTypeNative() === 'android') {
      android.backHome();
     }

     break;

    case 'personal':

     if (!getTypeNative()) {
      window.location.href = getAbsolutePath() + '/fenqihui/pages/account/user_personal.html';
     } else if (getTypeNative() === 'ios') {
      //todo://前往个人中心
      backAccount();

     } else if (getTypeNative() === 'android') {
      android.backAccount();
     }
     break;

    case 'top':
     $(window).scrollTop(0);
     break;


   }
   param.num % 2 == 0 && $(param.ele).children().css('display', 'none') || $(param.ele).children().css('display', 'block').animateCss('swing');
   param.num++;
  })

 }
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js悬浮按钮  # js悬浮按钮组件  # js按钮组件  # js实现漂浮回顶部按钮实例  # 令按钮悬浮在(手机)页面底部的实现方法  # 这段  # 很简单  # 只需要  # 大家多多  # shadow  # box  # display  # font  # gray  # px  # css  # distance  # position  # rem  # bottom  # fixed  # background  # width  # radius  # border 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  青岛网站建设如何选择本地服务器?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  ,在苏州找工作,上哪个网站比较好?  简单实现Android验证码  详解jQuery中的事件  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  如何打造高效商业网站?建站目的决定转化率  Laravel如何实现API版本控制_Laravel版本化API设计方案  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  深圳网站制作的公司有哪些,dido官方网站?  LinuxCD持续部署教程_自动发布与回滚机制  如何用美橙互联一键搭建多站合一网站?  如何破解联通资金短缺导致的基站建设难题?  Python数据仓库与ETL构建实战_Airflow调度流程详解  Laravel如何集成Inertia.js与Vue/React?(安装配置)  教你用AI润色文章,让你的文字表达更专业  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  桂林网站制作公司有哪些,桂林马拉松怎么报名?  Android GridView 滑动条设置一直显示状态(推荐)  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  如何用IIS7快速搭建并优化网站站点?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何挑选优质建站一级代理提升网站排名?  Laravel如何处理和验证JSON类型的数据库字段  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  如何撰写建站申请书?关键要点有哪些?  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  如何在服务器上配置二级域名建站?  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  Laravel如何处理表单验证?(Requests代码示例)  Laravel如何实现用户注册和登录?(Auth脚手架指南)  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  如何在阿里云通过域名搭建网站?  Python3.6正式版新特性预览  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  高防服务器租用指南:配置选择与快速部署攻略  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  如何确保FTP站点访问权限与数据传输安全?  香港服务器租用费用高吗?如何避免常见误区?  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?