js+html+css筋斗云导航栏
功能简述
- 图片随着鼠标位置在导航栏上变化而变化
- 当点击某个导航栏时,图片位置迁移到当前导航栏的位置处
- 效果预览
实现原理
- 给每个li标签添加鼠标事件
- 当鼠标悬浮于li标签的时候,将当前li标签的offsetLeft值赋给图片的offsetLeft使其移动
- 当鼠标离开li标签的时候,图片offsetLeft的值重置为之前已点击的li标签的offsetLeft值
- 当鼠标点击li标签的时候,记录当前li标签的offsetLeft值,并当前li标签添加选中状态
- 涉及到的animate函数详见js动画函数实现侧边栏动态显示内容.
实现代码
html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>practice1</title><link href="../css/practive1.css" rel="stylesheet"/><script src="../js/animate.js"></script><script type="text/javascript" src="../js/practice1.js"></script>
</head><body>
<div class="cloud"><span class="img"></span><ul><li class="current"><a href="javascript:;">首页</a></li><li><a href="javascript:;">文章</a></li><li><a href="javascript:;">动态</a></li><li><a href="javascript:;">关注</a></li><li><a href="javascript:;">最新热门</a></li></ul>
</div>
</body>
</html>
css
body {background-color: #a3b0b5;
}.cloud {margin: 100px auto;border-radius: 5px;position: relative;width: 500px;height: 42px;background: #fff url("../imgs/pig.jpg") no-repeat right center;
}.cloud ul {position: absolute;text-align: center;list-style-type: none;margin-left: 0px;padding: 0;
}.cloud ul li{top: 0;margin: 0px 15px;float: left;text-align: center;}.cloud li a{text-decoration: none;color: #000;display: inline-block;
}.cloud li:hover {color: #dc4c3f;font-weight: 600;
}.cloud ul li.current a{color: #dc4c3f;font-weight: 600;
}.cloud span {position: absolute;top: 0px;background: url('../imgs/lovefly.gif') no-repeat;/* 图片随屏幕大小同步缩放*/background-size: cover;/* 图片的位置居中靠左对齐*/background-position: center 0;width: 50px;height: 40px;
}
js
window.addEventListener('pageshow',function () {var cloud = document.querySelector('.cloud');var img = cloud.querySelector('.img');var lis = cloud.querySelectorAll('li');//图片最初的位置var imgLeft = img.offsetLeft;// 为每个li标签添加鼠标事件for (var i = 0; i < lis.length; i++) {// 鼠标悬浮事件lis[i].addEventListener('mouseenter',function () {animate(img,this.offsetLeft,15);})// 鼠标离开事件lis[i].addEventListener('mouseleave',function () {animate(img,imgLeft,15);})// 鼠标点击事件lis[i].addEventListener('click',function () {imgLeft = this.offsetLeft;// 采用排他思想 去除其他的current选中样式for (var i = 0; i < lis.length; i++) {lis[i].className = '';}this.className = 'current';})}
})
js+html+css筋斗云导航栏相关推荐
- HTML+JS+CSS筋斗云导航栏效果
要求: 1.鼠标经过某个li,筋斗云跟着到当前的位置 2.鼠标离开这个li,筋斗云回到原来的位置 3.鼠标点击了某个li,筋斗云就留在点击这个位置 <!DOCTYPE html> < ...
- css+js实现自动伸缩导航栏
用css+js实现自动伸缩导航栏 需要达到的效果: 默认首页选中样式 设置鼠标滑过效果:颜色变化(#f60),宽度变化,字体变化 所涉及的知识点: 布局:float css: 元素状态切换(displ ...
- js: 动画 筋斗云导航栏 仿淘宝关闭二维码
筋斗云导航栏 <!DOCTYPE html> <html> <head lang="en"><meta charset="UTF ...
- css订单导航栏横线动画,小程序 纯css 实现tab导航栏下划线跟随动画
很多时候在做tab导航的点击时我们都会要上一个过渡的动画,不然的话会显得生硬,用户没有达到比较佳的用户体验.如下图: 在开发者工具中预览效果 t3fyo-a07nj.gif 我们可以用两种方法实现这样 ...
- html导航图片滚动条,CSS实现导航栏底部动态滚动条效果
预习了CSS3部分的新知识,想着在不使用JS的情况下实现导航栏滚动条效果,如下: 实现滚动条效果,其实就是在 标签中让元素的宽度由0变化到100%,代码很简单,如下所示: CSS样式部分: ul.na ...
- css制作动态按钮导航栏,巧妙使用checkbox制作纯css动态导航栏
前提:很多时候.我们的网页都需要一个垂直的导航栏.可以分类.有分类.自然就有展开.关闭的功能.你还在使用jquery操作dom来制作吗?那你就out了! 方案:使用checkbox 的 checked ...
- html导航去下划线,纯CSS实现导航栏下划线跟随的示例代码
本篇文章主要介绍了纯CSS实现导航栏下划线跟随的示例代码,分享给大家,具体如下: 效果: 代码: html: aaaa bbbbbbb cccc dddd eeee css: ul { padding ...
- 利用 html 和 css 实现导航栏下拉(display block、display none)
利用 html 和 css 实现导航栏下拉(display block.display none) 需求 设计并实现一个导航栏菜单,对某个项目比如你的个人书籍按类别(硬件类.软件类.语言类.网络类等分 ...
- HTML+CSS伸缩式导航栏
HTML+CSS伸缩式导航栏 几天制作伸缩式导航栏 首先确立一个结构 接下来是html代码 <!DOCTYPE html> <html><head><meta ...
最新文章
- Swift - 使用NSNotificationCenter发送通知,接收通知
- php加密手机版_PHP解密支付宝小程序的加密数据、手机号的示例代码
- 【luogu 2709 / BZOJ 3781】小B的询问
- 树的遍历-Preorde Traversal,Inorder Traversal,Postoder Traversal
- bios文件查看工具_“主板BIOS教程”手把手教你刷bios,多种bios教程
- 【Flink】Flink The TaskSlotTable has to be started
- python基础之Day20part1
- SQL查询数据以及排序
- 开源直播推流sdk_携程移动直播探索
- 金蝶K3系统个别用户操作卡顿的处理办法
- Python代码加密方案总结(巨全面和详细)
- 人均GDP将破1万美元对中国意味着什么?
- 绘制折线图分析股票涨跌
- mysql 对象名无效_数据库 表 对象名无效
- 最大子矩阵和POJ1050
- android TextView 中划线、下划线 跑马灯
- ios开发者证书申请
- NOIP2016 天天爱跑步
- 这是计算机房吗 用英语怎么写,城镇英文怎么说_城镇的英文怎么写 - 沪江英语...
- electron 自动更新 热跟新
热门文章
- npm i --save 与 --save -dev的区别
- .net服务端渲染_驳:服务端命令 VS 表间公式
- FreePascal - Typhon在Windows10 X64下的使用问题!
- 公有继承中 构造函数和析构函数的调用(包含内嵌子对象)
- html5 手机站点,HTML5移动端手机网站基本模板 HTML5基本结构
- 照片后期-lightroom常用调色常见参数解
- Dynamics 365 窗体中设置可编辑的子网格
- ios工程广告添加:广告sdk、广告中介添加(出海App)
- 简显易懂的TCP网络通信零起步(java网络画板,山寨腾讯会议)
- Python运维开发入门到精通学习 Day3