纯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 相关文章推荐
Mozilla 表达式 __noSuchMethod__
Apr 05 Javascript
jQuery之选择组件的深入解析
Jun 19 Javascript
Javascript全局变量var与不var的区别深入解析
Dec 09 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
Jan 27 Javascript
JavaScript获取并更改input标签name属性的方法
Jul 02 Javascript
JS实现样式清新的横排下拉菜单效果
Oct 09 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
May 09 Javascript
JS常用算法实现代码
Nov 14 Javascript
AngularJS中isolate scope的用法分析
Nov 22 Javascript
jquery实现图片轮播器
May 23 jQuery
实例详解JSON取值(key是中文或者数字)方式
Aug 24 Javascript
说说node中的可读流和可写流的区别
Jun 01 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 什么是PEAR?(第三篇)
2009/03/19 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
javascript 面向对象全新理练之原型继承
2009/12/03 Javascript
js prototype截取字符串函数
2010/04/01 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
jquery图片切换插件
2015/03/16 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
Flask框架web开发之零基础入门
2018/12/10 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
python文字转语音的实例代码分析
2019/11/12 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
2021/02/06 Python
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
YII2 全局异常处理深入讲解
2021/03/24 PHP
大学毕业生的自我鉴定
2013/11/30 职场文书
客房主管岗位职责
2013/12/09 职场文书
护士自我评价
2014/02/01 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
安全宣传标语口号
2014/06/06 职场文书
销售员岗位职责
2014/06/09 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
Python学习之os包使用教程详解
2022/03/21 Python
Go语言安装并操作redis的go-redis库
2022/04/14 Golang