纯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 倒计时效果实现秒杀思路
Sep 11 Javascript
jQuery操作cookie方法实例教程
Nov 25 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
May 04 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
Oct 15 Javascript
jquery ajax异步提交表单数据的方法
Oct 27 jQuery
webpack引入eslint配置详解
Jan 22 Javascript
原生JavaScript实现的无缝滚动功能详解
Jan 17 Javascript
vue商城中商品“筛选器”功能的实现代码
Jul 01 Javascript
JS图片懒加载技术实现过程解析
Jul 27 Javascript
Vue使用Ref跨层级获取组件的步骤
Jan 25 Vue.js
vscode中使用npm安装babel的方法
Aug 02 Javascript
JavaScript小技巧带你提升你的代码技能
Sep 15 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
自定义session存储机制避免会话保持问题
2014/10/08 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
Jquery cookie操作代码
2010/03/14 Javascript
取得窗口大小 兼容所有浏览器的js代码
2011/08/09 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
Bootstrap选项卡与Masonry插件的完美结合
2016/07/06 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
python实现爬取千万淘宝商品的方法
2015/06/30 Python
python绘制多个曲线的折线图
2020/03/23 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
Python 操作 MySQL数据库
2020/09/18 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
python从PDF中提取数据的示例
2020/10/30 Python
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
法人委托书范本
2014/09/15 职场文书
优秀团员事迹材料
2014/12/25 职场文书
离婚协议书范本
2015/01/26 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
nginx配置指令之server_name的具体使用
2022/08/14 Servers