基于H5+css+JavaScript实现导航栏图标实现3d并分层

简介: 基于H5+css+JavaScript实现导航栏图标实现3d并分层

前端是做什么的?

1.前端工程师主要利用HMTL与CSS建构页面(其中html构建骨架,css构建样式),用JavaScript获取后端数据以及完善交互以及用户体验。

2.通俗来讲,前端在一个项目里,拿到UI设计师设计的设计稿,然后实现UI设计师设计稿,调用后端程序员给的数据接口以获取数据,然后测试,最后部署上线。

3.前端可以对设计图负责,大部分情况下,不需要特别的去理解业务逻辑,因为我们90后都是玩着十几年手机电脑长大的,十几年的经验足够我们在潜意识里想明白应该怎么做,怎么去一步步实现,会有什么意外情况。

4.我感觉前端发展有个很大的缺陷----晋升问题. 正如第三点所言,作为领导必须对项目有足够的了解,显然是要重点包括业务逻辑,这点上,后端开发者需要涉及数据库逻辑,是必须要跟业务逻辑打交道的(重中之重),因此,大部分的领导岗位都是后端开发者更有晋升的机会。当然,个别公司有专门的前端组长(这也不算什么),如果说前端开发者在自己工作范围之外还要腾出时间去研究业务逻辑,属实是觉得出力不讨好(因为这样的操作需要持续很久才能看出效果),而且再怎么研究业务逻辑也不会比每时每刻跟业务逻辑打交道的后端开发者了解更多。说实在的,大部分情况下,前端在配合后端进行开发.后端需要了解业务逻辑,要跟领导和客户商量细节,露脸机会很大,在老板面前刷脸次数众多。这些都是拉开前后端

程序员晋升机会差距的因素。

前端的特效视觉:

层次结构的表现

动态效果,如缩放,覆盖,滑出网页或单个视觉元素,可帮助用户理解网页信息架构。通常是通过转场和菜单来展开网页。

表现层级关系

为了展现层与层的关系,是抽屉,是打开,还是平级切换等等。让用户知道这个界面和上一个、下一个的关系。

清晰明确

动效可以清晰地表明各种数据块中间的逻辑结构,即使在数据高度饱和的情况下也能使一切从观感上有组织性。

添加了图层

在网站制作过程中加上特效,每个元素都在用户滚动页面或者是鼠标经过的地方有动态效果,就像在平面层上多出了一个动态层,这样看起来更加有层次感。

导航栏图标实现3d并分层

14.gif

代码:

<!DOCTYPE html><html><head><metahttp-equiv="content-type"content="text/html; charset=utf-8"><metaname="viewport"content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><title>3D分层按钮的悬停效果</title><linkhref="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"rel="stylesheet"><style>        *{
/* 初始化 取消内外边距 */margin: 0;
padding: 0;
/* 设置的边框和内边距的值是包含在总宽高内的 */box-sizing: border-box;
}
body{
/* 100%窗口高度 */height: 100vh;
/* 弹性布局 水平垂直居中 */display: flex;
justify-content: center;
align-items: center;
/* 渐变背景 */background: linear-gradient(200deg,#29323c,#485563);
}
.icon-box{
/* 弹性布局 水平排列 */display: flex;
flex-direction: row;
}
.icon-boxa{
color: #fff;
margin: 030px;
text-decoration: none;
display: block;
/* 相对定位 */position: relative;
}
.icon-boxa.layer{
width: 70px;
height: 70px;
/* 动画过渡 */transition: 0.3s;
}
.icon-boxa.layeri{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
/* 通过var函数调用自定义属性--c */border: 1pxsolidvar(--c);
border-radius: 6px;
transition: 0.3s;
}
.icon-boxa.layeri.fa{
font-size: 35px;
text-align: center;
line-height: 70px;
color: var(--c);
}
.icon-boxa.text{
/* 绝对定位 */position: absolute;
bottom: 0;
opacity: 0;
width: 100%;
text-align: center;
color: var(--c);
/* 动画过渡 */transition: 0.3s;
}
.icon-boxa:hover.text{
/* 鼠标移入文本出现 */bottom: -35px;
opacity: 1;
}
.icon-boxa:hover.layer{
/* 鼠标移入,该元素旋转-35度并倾斜20度 */transform: rotate(-35deg) skew(20deg);
}
/* 鼠标移入,设置图标外的每一层边框的样式(不透明度+位置偏移) */.icon-boxa:hover.layeri:nth-child(1){
opacity: 0.2;
transform: translate(0,0);
}
.icon-boxa:hover.layeri:nth-child(2){
opacity: 0.4;
transform: translate(5px,-5px);
}
.icon-boxa:hover.layeri:nth-child(3){
opacity: 0.6;
transform: translate(10px,-10px);
}
.icon-boxa:hover.layeri:nth-child(4){
opacity: 0.8;
transform: translate(15px,-15px);
}
.icon-boxa:hover.layeri:nth-child(5){
opacity: 1;
transform: translate(20px,-20px);
}
/* 鼠标移入,设置每一层边框的阴影样式 */.icon-boxa:hover.layeri{
box-shadow: -1px1px3pxvar(--c);
}
/* 接下来为每一个按钮设置不同颜色 */.icon-boxa:nth-child(1) .layeri,
.icon-boxa:nth-child(1) .text{
/* --c是自定义属性,这里为颜色值,可通过var函数进行调用 */--c: #f52112;
}
.icon-boxa:nth-child(2) .layeri,
.icon-boxa:nth-child(2) .text{
--c: #2aae67;
}
.icon-boxa:nth-child(3) .layeri,
.icon-boxa:nth-child(3) .text{
--c: #e79115;
}
.icon-boxa:nth-child(4) .layeri,
.icon-boxa:nth-child(4) .text{
--c: #20fd20;
}
.icon-boxa:nth-child(5) .layeri,
.icon-boxa:nth-child(5) .text{
--c: #c02dc5;
}
</style></head><body><divclass="icon-box"><ahref="#"><divclass="layer"><i></i><i></i><i></i><i></i><iclass="fa fa-qq"aria-hidden="true"></i></div><divclass="text">QQ</div></a><ahref="#"><divclass="layer"><i></i><i></i><i></i><i></i><iclass="fa fa-weixin"aria-hidden="true"></i></div><divclass="text">微信</div></a><ahref="#"><divclass="layer"><i></i><i></i><i></i><i></i><iclass="fa fa-weibo"aria-hidden="true"></i></div><divclass="text">微博</div></a><ahref="#"><divclass="layer"><i></i><i></i><i></i><i></i><iclass="fa fa-renren"aria-hidden="true"></i></div><divclass="text">人人网</div></a><ahref="#"><divclass="layer"><i></i><i></i><i></i><i></i><iclass="fa fa-twitter"aria-hidden="true"></i></div><divclass="text">推特</div></a></div></body></html>
目录
相关文章
|
25天前
|
前端开发 JavaScript 数据处理
CSS 变量的作用域和 JavaScript 变量的作用域有什么不同?
【10月更文挑战第28天】CSS变量和JavaScript变量虽然都有各自的作用域概念,但由于它们所属的语言和应用场景不同,其作用域的定义、范围、覆盖规则以及与其他语言特性的交互方式等方面都存在明显的差异。理解这些差异有助于更好地在Web开发中分别运用它们来实现预期的页面效果和功能逻辑。
|
16天前
|
缓存 前端开发 JavaScript
优化CSS和JavaScript加载
Next.js和Nuxt.js在优化CSS和JavaScript加载方面提供了多种策略和工具。Next.js通过代码拆分、图片优化和特定的CSS/JavaScript优化措施提升性能;Nuxt.js则通过代码分割、懒加载、预渲染静态页面、Webpack配置和服务端缓存来实现优化。两者均能有效提高应用性能。
|
23天前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
29 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
2月前
|
前端开发 JavaScript API
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
本文通过构建一个 3D 翻卡动画深入探讨了 CSS Houdini 的强大功能,展示了如何通过 Worklets、自定义属性、Paint API 等扩展 CSS 的能力,实现高度灵活的动画效果。文章首先介绍了 Houdini 的核心概念与 API,并通过构建一个动态星空背景、圆形进度条以及交互式 3D 翻卡动画的实际示例,展示了如何利用 CSS Houdini 赋予网页设计更多创造力。最后,还演示了如何将这种 3D 翻卡效果集成到公司网站中,提升用户体验。CSS Houdini 的创新能力为网页设计带来了前所未有的灵活性,推动了前端开发迈向新的高度。
34 0
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
用CSS+JavaScript打造网页中的选项卡
用CSS+JavaScript打造网页中的选项卡
|
3月前
|
前端开发
CSS基础-13-垂直导航栏(详细创建过程)
CSS基础-13-垂直导航栏(详细创建过程)
|
4月前
|
移动开发 JavaScript 前端开发
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
这篇文章介绍了在UniApp H5项目中处理跨域问题的两种方法:通过修改manifest.json文件配置h5设置,或在项目根目录创建vue.config.js文件进行代理配置,并提供了具体的配置代码示例。
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
|
2月前
|
前端开发 Ubuntu Linux
CSS 修改鼠标图标样式
CSS 修改鼠标图标样式
43 0
|
4月前
|
前端开发
HTML+CSS动画实现动感3D卡片墙:现代Web设计的视觉盛宴
HTML+CSS动画实现动感3D卡片墙:现代Web设计的视觉盛宴
|
4月前
|
前端开发
导航栏也时尚:CSS缩放动画,让导航链接在鼠标经过时绽放!
导航栏也时尚:CSS缩放动画,让导航链接在鼠标经过时绽放!