博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给我的个人简历添加动态效果
阅读量:6891 次
发布时间:2019-06-27

本文共 3004 字,大约阅读时间需要 10 分钟。

个人简历

添加加载页动画

效果预览

css:.loading{  height:200px;width:200px;  position:relative;}.loading::before, .loading::after{  content:'';  position:absolute;  top:0;right:0;bottom:0;left:0;  background:gray;  border-radius:50%;  margin:auto;  animation: s 2s linear infinite;}.loading::after{animation-delay: 0.75s;}@keyframes s{  0%{width:0;height:0;opacity:1} 100%{width:100px;height:100px;opacity:0}}复制代码

说明

使用伪类写两个圈,他们的变化都是由小变大,由深变浅,同时after延迟0.75s

部署

将script写在最后(如果都加载出来了才能执行script),通过classList在两个css块中切换(display:flex,display:none)。

html:
css:.site-welcome{display: none;position:fixed;width:100%;height:100%;top:0;left:0;z-index: 1;justify-content: center;align-items: center;}.site-welcome.active{display: flex;}js:siteWelcome.classList.remove('active')复制代码

检测

使用开发者工具

Network→online→slow3G

Network→online→custom→add

假装部署(延迟消失)

setTimeout(function(){        siteWelcome.classList.remove('active')},2500    )复制代码

会变的导航栏

用js控制class,不同的class对应不同的css,

window.onscroll = function(xxxx){        if(window.scrollY > 0 ){            topNavBar.classList.add('sticky')            console.log(1)        }else{            topNavBar.classList.remove('sticky')        }    }复制代码

小型动画

将下划线变成从左划到右边

.topNavBar nav>ul>li>a:hover::after{content:'';display:block;position:absolute;top:100%;left:0;width:100%;background:#E6686A;height:3px;transform: all 0.75s;animation:meauSlide linear 1s}@keyframes meauSlide{0%{width:0}100%{width:100%}}复制代码

注意下图是bottom:0和top:100%的区别图,top:100%正确,其在依附元素外边而不是在里边紧贴底部。

添加二级菜单

<li><a href="#">SKILLS</a></li> 尽量加在a标签外面,<li><a href="#">SKILLS</a><ul> <li>作品1</li> <li>作品2</li> <li>作品3</li> </ul></li>

因为ul li是块级元素,所以会另起一行。同时他们不是绝对定位,会导致li宽度包裹住ul。绝对定位不受父元素影响,也不会影响父元素

加入绝对定位之后,会导致

因为li是一个浮动定位,其特点是能有多瘦就有多瘦,其中包含a作品文档流元素,所以其宽度能够包住(作品)即可,能有多瘦有多瘦。ul是一个绝对定位元素,没有宽度的话能缩多瘦缩多瘦。
.topNavBar .submeau>li{white-space: nowrap;}

此时遇到的问题:有多个meau需要加submeau,但是一个一个加会导致代码过于冗杂,

html:
  • BLOG
    • 博客1
    • 博客2
    • 博客3
  • SKILLS
    • 作品1
    • 作品2
    • 作品3
  • js:let aTags = document.getElementsByClassName('meauTigger')for(let i=0;i

    将a全部取出,利用循环来监听每一个a,使用function函数来确定当前监听的a,使用递归取nextSibling来准确确定ul(规避a与ul之间的文本),在ul上使用classList增删active;

    这时候出现一个问题,当鼠标移入submeau时,submeau会消失。因为此时移出了a。解决办法:把在a上的class加在a和ul共同的父标签li上即可

    js:let liTags = document.getElementsByClassName('meauTigger')for(let i=0;i

    li.getElementsByTagName('ul')[0]其中如果不加[0],取出来的是一个包含ul 和li的数组,但是我们只需要ul(对他自己进行操作),所以使用[0]。

    最后,因为移动到submeau时,红色下划线会消失,所以将active加在li标签上会更好

    总结

    1. 不要尝试第一次就做出来,做的过程中会发现更好的办法
    2. 解决一个问题的关键是马上开始!会错一次,错两次,错三次,最终会发现最合适的办法。

    导航栏点击跳转

    因为有一个问题:我们的顶部导航栏是absolute,如果直接用a标签的href跳转会导致相关的模块顶在最顶部,导航栏会遮住他们。如果每个模块都加padding会丑而且不容易维护。

    let aTags = document.querySelectorAll('nav > ul > li > a')for(let i=0;i

    此时对应关系为#+内容 内容→ID

    另外加上

    let top = element.offsetTop //获取指定元素的绝对高度    window.scrollTo(0 , top - 70) //滚动到(指定元素的高度-70)复制代码

    要注意的:console.log(a.href)http://192.168.206.1:8080/index.html# console.log(a.getAttribute('href'))#

    一个是被浏览器处理过的,一个是写了什么就是什么

    转载于:https://juejin.im/post/5cd11fd86fb9a0322b5c0f21

    你可能感兴趣的文章
    JavaScript 堆内存分析新工具 OneHeap
    查看>>
    朝九晚五的程序员如何提高开发技能
    查看>>
    7亿美金!易到用车或委身乐视体育
    查看>>
    普渡大学创造 DeepHand,用深度学习开发 AR 新技术
    查看>>
    对于Netty ByteBuf的零拷贝(Zero Copy) 的理解
    查看>>
    数据加速攻略:选择Server Flash还是全闪存阵列?
    查看>>
    应用商店成恶意APP滋生新温床 190款感染应用让你措不及防
    查看>>
    重装系统最关键一步:如何做好备份
    查看>>
    安全人员发现第一种全平台远程访问木马
    查看>>
    理论与现实的差异,多核心芯片软开发瓶颈何在?
    查看>>
    C语言中Static和Const关键字的的作用
    查看>>
    用数据说话:北京房价数据背后的数据
    查看>>
    智能家庭本周锋闻:微软眼镜HoloLens带你环游火星
    查看>>
    BlackHat(世界黑帽大会)官方APP出现两个逻辑漏洞
    查看>>
    美国国防部:133支网络部队已全部具备初步作战能力
    查看>>
    安卓内核UAF漏洞利用探秘
    查看>>
    美国电信运营商Verizon关闭公有云平台
    查看>>
    交行信用卡总经理王卫东:信用卡互联网转型有五大基础
    查看>>
    从信息公开到政府数据开放:大数据时代新要求
    查看>>
    墨西哥第二次可再生能源拍卖 光伏成最大赢家
    查看>>