纯js实现悬浮按钮组件


Posted in Javascript onDecember 17, 2016

先上效果

纯js实现悬浮按钮组件

下面附上代码 使用方式很简单只需要 在页面引入这段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++;
  })

 }
});

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

Javascript 相关文章推荐
解决jQuery使用JSONP时产生的错误
Dec 02 Javascript
有关jquery与DOM节点操作方法和属性记录
Apr 15 Javascript
JS图片放大效果简单实现代码
Sep 08 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
Nov 01 Javascript
angularjs之$timeout指令详解
Jun 13 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
Jun 29 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
Sep 13 Javascript
JS设计模式之状态模式概念与用法分析
Feb 05 Javascript
jQuery pjax 应用简单示例
Sep 20 jQuery
Vuejs中的watch实例详解(监听者)
Jan 05 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
Feb 28 Javascript
Openlayers实现扩散的动态点(水纹效果)
Aug 17 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
Dec 17 #Javascript
Bootstrap CSS组件之按钮下拉菜单
Dec 17 #Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
Dec 17 #Javascript
Bootstrap CSS组件之按钮组(btn-group)
Dec 17 #Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 #Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
Dec 17 #Javascript
深入理解JS继承和原型链的问题
Dec 17 #Javascript
You might like
PHP安全技术之 实现php基本安全
2010/09/04 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
javascript 节点遍历函数
2010/03/28 Javascript
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
Python实现模拟登录及表单提交的方法
2015/07/25 Python
关于python写入文件自动换行的问题
2018/06/23 Python
安装python及pycharm的教程图解
2019/10/10 Python
python实现超市商品销售管理系统
2019/11/22 Python
Python 存取npy格式数据实例
2020/07/01 Python
matplotlib基础绘图命令之bar的使用方法
2020/08/13 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
一道SQL存储过程面试题
2016/10/07 面试题
《走一步再走一步》教学反思
2014/02/15 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
小升初自荐信范文
2015/03/05 职场文书
热血教师观后感
2015/06/10 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python