使用jQuery制作浮动工具栏的实例分享


Posted in Javascript onMay 13, 2016

现在大家在浏览网站的时候,经常会发现一些浮动的条状栏,通常具有向上向下的功能,当你点击一下,就可以方便的回到顶部或者前往底部。其实打造这样一个工具边栏,并不是很难,使用jquery很容易就可以做出来。下面,你跟随我的步骤,一步一步的做一下,就可以做出来了,然后你可以根据这个代码,进行一些修改,自定义一些东西。

废话不多说,先说一下我做的这个工具边栏。这个工具边栏是符合我自己做的模板“Q21”,Q21模板的特点是黑白对比,所以这个工具边栏要突出黑白变化。经过构思之后,我决定这个边栏的样式是这样的:

使用jQuery制作浮动工具栏的实例分享

当鼠标移动到“分享”按钮上之后,会自动滑出一个黑条,然后黑条上是各个分享按钮。具体的演示效果,你可以下载最后代码包查看。下面我们来开始动手一步一步的制作。

建立html结构

用span标签也行,不过我还是喜欢用div,所以就用div来建立html结构。结构很明确了吧,一个大div包含三个小div,分别是上中下三个按钮,其中分享按钮中,还需要再包含一个div,用来滑出分享按钮。好了,结构就建好了。

<div id=”tooltip” >
  <div id=”toolt”>▲</div>
  <div id=”toolc” >
    <div id=”sharetxt”>分享</div>
    <div id=”shareit” class=”none”>这里是分享代码</div>
  </div>
  <div id=”toolb”>?</div>
</div>

注意,向上向下按钮,我使用的是字符,而不是图片。如果是图片的话,需要加载,而且动态变化,需要替换图片更加的不方便。至于如何打出这个上下两个三角号,就靠你的搜狗输入法了,如下图:

使用jQuery制作浮动工具栏的实例分享

好了,有了html结构,我们再来定义一些css。

CSS代码

首先定义全局的字体

:root{font-family:”5FAE8F6F96C59ED1”,helvetica,Arial;}

经测试,这个边栏,在微软雅黑的字体下效果最好,所以要规定网页使用微软雅黑。上面这句代码,:root表示选择html根,对所有文档中的元素生效,其中5FAE8F6F96C59ED1表示的就是微软雅黑,至于为什么这样写而不写成“微软雅黑”,如果用户电脑是英文的,那肯定找不到微软雅黑这个字体,这样写法,只要有微软雅黑字体,就可以使用。
定位工具条位置

div[id=”tooltip”]{
  width:40px;
  height:120px;
  position:fixed;
  bottom:50%;
  right:20px;
  }

这几句css定义了工具边栏的高度和宽度,同时position:fixed表示让它固定在页面中,不会根据滚动条的滚动而移动。bottom:50%,让它保持在页面中部位置,right:20px表示让它距离右边20个像素。
响应操作

div[id^=”tool”]{
  font-size:38px;
  cursor:pointer;
  color:#000000;
  }
div[id^=”tool”]:hover{
  color:#999999;
  }

响应操作可以让工具更加人性化,例如上图效果,当我们把鼠标移动到箭头的时候,它会变成灰色,表示你已经把箭头移动到上面了。在这里,我使用了新型的选择器div[id^=”tool”]它的意思是,选取所有以tool开头的div标签。定义字体大小为38px,调整三角形成为合适大小。设定cursor:pointer属性,当你鼠标移动到上面的时候,会显示成手指形状,让你误以为是一个可以点击的链接。下面的语句,当你鼠标移动到上面的时候,颜色变成#999999。这是响应操作,提高用户体验。
中部CSS代码

div[id=”toolc”]{
  font-size:22px;
  float:right;
  width:40px;
  height:70px;
  overflow:hidden;
   }
div[id=”sharetxt”]{
width:26px;
margin-right:8px;
float:right;
height:70px;
display:inline;
margin-top:4px;
}
div[id=”shareit”]{
width:304px;
height:62px;
float:right;
height:30px;
margin:15px 0px;
}
.none{
display:none;
}
.inline{
display:inline;
}

比较简单,没有什么亮点,自己看看就行了。重点在于如何实现滑动出现分享按钮。我采用的方法是,定义两个div,浮动放置,其中分享按钮那个div默认是隐藏的,只有鼠标移动上去触发之后,它才会显示出来。

Jquery代码

在添加jquery代码之前,我们需要彻底理清滑出分享按钮的实现方式。jquery并没有提供横向滑动出现的方法,那要怎么实现呢?可以这样实现,先把底色变成黑色,让装载分享按钮的div框出现,但是这时候由于宽度不够显示分享按钮div,所以你暂时看不到。使用jquery的animate方法,让宽度逐渐变宽,直到完全显示分享按钮div。这样就会造成一个假象,黑色滑出,然后出现分享按钮。

具体的实现代码如下

$(function(){
  $(“#toolc”).mouseenter(function(){ //这里使用mouseenter方法来触发,当鼠标移动上去之后,触发这个方法
    $(“#toolc”).css({“color”:”#ffffff”,”backgroundColor”:”#000000”}); //先对中部添加背景,并且把文字变成白色
    $(“#shareit”).removeClass(“none”).addClass(“inline”); //去掉shareit的none,让它显示出来,但由于宽度不够,无法显示
    $(“#toolc”).animate({width:”350px”},200); //使用animate方法,动态的改变宽度,直到显示出来分享按钮
  }).mouseleave(function(){ //当鼠标从目标区域中移走,就触发下面这个事件
    $(“#toolc”).css({“color”:”#000000”,”backgroundColor”:”#ffffff”}); //同反
    $(“#shareit”).removeClass(“inline”).addClass(“none”); //同反
    $(“#toolc”).animate({width:”40px”},200); //同反,你懂的
  });
  $(“#toolt”).click(function(){
    $(“html,body”).animate({scrollTop:”-=900px”},200); //每点击一下,就向上滑动900px
  });
  $(“#toolb”).click(function(){
    $(“html,body”).animate({scrollTop:”+=900px”},200); //每点击一下,就向下滑动900px
  });
});

注释我已经写在上面代码中了,仔细耐心看一下。这里,我想说的是向上向下滑动900px。我并没有让它点击直接到顶部或者底部。因为我觉得,如果文章比较长,浏览者并不一定想直接滑动到底部,而是想看看下面的内容。如果他真想滑动到底部,也只需要点两次或者三次按钮即可。这也是一个用户体验的细节。

Javascript 相关文章推荐
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
May 21 Javascript
基于javascript实现图片左右切换效果
Jan 25 Javascript
jQuery插件实现文字无缝向上滚动效果代码
Feb 25 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
Oct 28 Javascript
ES6中Math对象新增的方法实例详解
Apr 25 Javascript
JavaScript使用readAsDataUrl方法预览图片
May 10 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
Dec 09 Javascript
JavaScript根据json生成html表格的示例代码
Oct 24 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
node.js实现微信开发之获取用户授权
Mar 18 Javascript
微信小程序文字显示换行问题
Jul 28 Javascript
解决vue-router路由拦截造成死循环问题
Aug 05 Javascript
浅析JS操作DOM的一些常用方法
May 13 #Javascript
javascript判断图片是否加载完成的方法推荐
May 13 #Javascript
jQuery Easyui 验证两次密码输入是否相等
May 13 #Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
May 13 #Javascript
Javascript基础之数组的使用
May 13 #Javascript
JS判断图片是否加载完成方法汇总(最新版)
May 13 #Javascript
BootStrap扔进Django里的方法详解
May 13 #Javascript
You might like
虫族 Zerg 历史背景
2020/03/14 星际争霸
php初学者写及时补给skype用户充话费的小程序
2008/11/02 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
2018/07/17 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
python的mysqldb安装步骤详解
2017/08/14 Python
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
在IPython中执行Python程序文件的示例
2018/11/01 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
python读写csv文件的方法
2019/08/13 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
如何让Java程序执行效率更高
2014/06/25 面试题
群众路线教育党课主持词
2014/04/01 职场文书
三好学生个人总结
2015/02/15 职场文书
结婚堵门保证书
2015/05/08 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
2019个人工作总结
2019/06/21 职场文书