纯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实现的水平和垂直居中的div窗口
Aug 08 Javascript
基于jQuery的弹出框插件
Mar 18 Javascript
js+jquery常用知识点汇总
Mar 03 Javascript
JScript中的条件注释详解
Apr 24 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
Aug 25 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
Nov 23 Javascript
jQuery弹出窗口打开链接的实现代码
Dec 24 Javascript
javascript深拷贝和浅拷贝详解
Feb 14 Javascript
支持移动端原生js轮播图
Feb 16 Javascript
如何正确理解javascript的模块化
Mar 02 Javascript
详解使用React进行组件库开发
Feb 06 Javascript
vue2.0 watch里面的 deep和immediate用法说明
Oct 30 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
奉献出一个封装的curl函数 便于调用(抓数据专用)
2013/07/22 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
为jQuery增加join方法的实现代码
2010/11/28 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
Bootstrap 源代码分析(未完待续)
2016/08/17 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
jquery animate动画持续运动的实例
2017/11/29 jQuery
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
python列表去重的二种方法
2014/02/14 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
浅谈python出错时traceback的解读
2020/07/15 Python
python实现学生管理系统开发
2020/07/24 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
pycharm 快速解决python代码冲突的问题
2021/01/15 Python
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
高一英语教学反思
2014/01/22 职场文书
校园标语大全
2014/06/19 职场文书
学校个人对照检查材料
2014/08/26 职场文书
毕业生个人自荐书
2015/03/05 职场文书
开票证明
2015/06/23 职场文书
html实现随机点名器的示例代码
2021/04/02 Javascript