纯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 相关文章推荐
java script编程起步(第三课)
Jan 10 Javascript
用javascript父窗口控制只弹出一个子窗口
Apr 10 Javascript
js 动态为textbox添加下拉框数据源的方法
Apr 24 Javascript
JQuery性能优化的几点建议
May 14 Javascript
javascript获取网页宽高方法汇总
Jul 19 Javascript
JavaScript编程中window的location与history对象详解
Oct 26 Javascript
jQuery基于扩展实现的倒计时效果
May 14 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
Feb 27 Javascript
正则验证小数点后面只能有两位数的方法
Feb 28 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
Jul 26 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
JavaScript Tab菜单实现过程解析
May 13 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
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
PHP版自动生成文章摘要
2008/07/23 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
js中indexof的用法详细解析
2013/12/24 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
2017/03/14 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
python实现连续图文识别
2018/12/18 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
中学生爱国演讲稿
2014/09/05 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
在职员工证明书
2014/09/19 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
安全温馨提示语大全
2015/07/14 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技