纯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 相关文章推荐
JavaScript高级程序设计 读书笔记之九 本地对象Array
Feb 27 Javascript
js选取多个或单个元素的实现代码(用class)
Aug 22 Javascript
javascript中直接引用Microsoft的COM生成Word
Jan 20 Javascript
js中创建对象的几种方式示例介绍
Jan 26 Javascript
jQuery 中国省市两级联动选择附图
May 14 Javascript
js创建一个input数组并绑定click事件的方法
Jun 12 Javascript
基于zepto的移动端轻量级日期插件--date_picker
Mar 04 Javascript
jquery easyui validatebox remote的使用详解
Nov 09 Javascript
C#微信小程序服务端获取用户解密信息实例代码
Mar 10 Javascript
vue脚手架vue-cli的学习使用教程
Jun 06 Javascript
layui-laydate时间日历控件使用方法详解
Nov 15 Javascript
详解ES6 Promise的生命周期和创建
Aug 18 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 session处理的定制
2009/03/16 PHP
php实现异步数据调用的方法
2015/12/24 PHP
PHP使用socket发送HTTP请求的方法
2016/02/14 PHP
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
javascript中的try catch异常捕获机制用法分析
2016/12/14 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
Python采集腾讯新闻实例
2014/07/10 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
python单例设计模式实现解析
2020/01/07 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
2020/02/28 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
机电工程专业应届生求职信
2013/10/03 职场文书
护理毕业生自荐信范文
2013/12/22 职场文书
小学生安全保证书
2014/02/01 职场文书
《雷雨》教学反思
2014/02/20 职场文书
旅游管理专业大学生职业规划书
2014/02/27 职场文书
煤矿安全演讲稿
2014/05/09 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
Django使用redis配置缓存的方法
2021/06/01 Redis
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript