jQuery实现背景滑动菜单


Posted in Javascript onDecember 02, 2016

话不多说,直接附上源码,仅供大家参考

<div class="menu">
 <ul id="menu">
 <li><a href="#">JavaScript</a></li>
 <li value="1"><a href="#">Graphic Design</a></li>
 <li><a href="#">HTML</a></li>
 <li><a href="#">User Interface</a></li>
 <li><a href="#">CSS</a></li>
 </ul>
 <div id="slide"></div>
</div>
* {margin:0; padding:0}
body {font:14px Helvetica, sans-serif; font-weight:bold; background:#FFF}
.menu {position:relative; background:url(images/bg.gif) no-repeat; height:35px; width:459px}
.menu ul {list-style:none; z-index:10; position:absolute; z-index:100; padding:9px 5px}
.menu li {float:left}
.menu a, .menu a:active, .menu a:visited, .menu a:hover {text-decoration:none; color:#FFF; padding:10px}
#slide {position:absolute; top:6px; height:24px; background:#89957a; z-index:10;}
(function($){
 $.fn.extend({
 bgslide:function(value){
 //可选参数
 value=$.extend({
 "fw":12,
 "sw":2,
 "ftime":100,
 "stime":300
 },value);
 //初始化背景的位置
 var liw = $("ul li:eq(0)",value.menu).width();//获取第一个li的宽
 var $slide = $(this).children("div"); 
 $slide.css({"width":liw,"left":"5"});
 //悬停时执行动画
 function hani(w,l){
 $slide.stop(true) //很关键的一句话,当悬停时,让正在执行的动画,和列队中的动画,都取消;防止鼠标不停滑动时的bug;
 .animate({"width":w,"left":l+value.fw},value.ftime)
 .animate({"left":l-value.fw},value.stime)
 .animate({"left":l+value.sw},value.stime)
 .animate({"left":l-value.sw},value.stime);
 } 
 //离开时执行动画 
 function oani(){
 $slide.stop(true)
 .animate({"width":liw,"left":"5"},value.ftime)
 .animate({"left":l-value.fw},value.stime)
 .animate({"left":l+value.sw},value.stime)
 .animate({"left":l-value.sw},value.stime);; 
 }
 $("ul li",this).hover(function(){
 var w = $(this).width(); //获取当前li的宽
 var l = $(this).position().left; //获取当前li的横坐标 
 if(!$(this).index()==0){ //鼠标悬停在第一个LI时,不发生动画
 hani(w,l);
 }
 },function(){
 oani();
 });
 } 
 })
})(jQuery);

html结构思路:

div:放置一个背景图层,相对定位;

UL:放置菜单内容,绝对定位;

div:放置滑动的背景层,绝对定位;

JQuery思路分析:

鼠标悬停到每一个LI的时候,让这个滑动的背景层,通过水平移动动画,来定位到当前这个LI的地方;并有一个左右晃动效果;鼠标离开时,让背景层滑动到初始位置;

鼠标悬停时:

1.获取当前LI相对于最外层DIV的水平坐标,即横坐标值;

2.让滑动的背景层的横坐标正好等于当前LI的横坐标;

3.执行一个左右晃动的动画,即改变当前水平坐标的值;

鼠标离开时:

1.让背景层滑动到初始位置,即改变横坐标的值,为初始值;

下载Demo地址:http://xiazai.3water.com/yuanma/myslidebgmenu(3water.com).rar

以上就是本文的全部内容,希望对大家有所帮助,谢谢对三水点靠木的支持!

Javascript 相关文章推荐
javascript ready和load事件的区别示例介绍
Aug 30 Javascript
javascript放大镜效果的简单实现
Dec 09 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
Aug 22 Javascript
再谈JavaScript线程
Jul 10 Javascript
javascript文件加载管理简单实现方法
Jul 25 Javascript
jQuery基础_入门必看知识点
Jul 04 Javascript
如何用JS判断两个数字的大小
Jul 21 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
vue cli 全面解析
Feb 28 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
Sep 13 Javascript
微信小程序开发注意指南和优化实践(小结)
Jun 21 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
Jun 01 Javascript
Angular2学习笔记——详解NgModule模块
Dec 02 #Javascript
Angular2学习笔记——详解路由器模型(Router)
Dec 02 #Javascript
基于jQuery实现的幻灯图片切换
Dec 02 #Javascript
JavaScript中清空数组的方法总结
Dec 02 #Javascript
浅谈js中几种实用的跨域方法原理详解
Dec 02 #Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
Dec 02 #Javascript
探讨跨域请求资源的几种方式(总结)
Dec 02 #Javascript
You might like
php的header和asp中的redirect比较
2006/10/09 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
JQquery的一些使用心得分享
2012/08/01 Javascript
基于jQuery实现的QQ表情插件
2015/08/25 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
浅入深出Vue之自动化路由
2019/08/06 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
python list转dict示例分享
2014/01/28 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
python中Lambda表达式详解
2019/11/20 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
俄罗斯眼镜网: optikaworld
2016/07/31 全球购物
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
电气工程和自动化自荐信范文
2013/12/25 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
解放思想演讲稿
2014/09/11 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
苏州园林导游词
2015/02/03 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
windows安装python超详细图文教程
2021/05/21 Python
Linux系统下安装PHP7.3版本
2021/06/26 PHP
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL