侧边栏淡入淡出效果
想要同时操作透明度变化的动画以及display值的变化,淡出效果没问题,淡入的透明度变化显示不了,总是一下子就跳出来。而且跳出来有时候会再消失,推测是定时器造成的,不知如何解决。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>test</title> <style> .aside-nav { width: 50px; position: fixed; right: 0px; bottom: 50px; padding: 10px 8px; box-shadow: 0 0 3px 2px rgba(0,0,0,0.5); background: #FFF; display: none; } .aside-nav__items { display: block; width: 50px; height: 25px; line-height: 25px; margin: 5px 0; text-align: center; color:#000; } .aside-nav__items:hover { color:#FF0000; } .aside-nav { opacity:0; transition: all 1s linear; } .aside-nav-appear { opacity: 1; transition:all 1s linear; } </style> </head> <body> <div style="height: 2000px;background: grey;"></div> <nav class="aside-nav"><!-- 侧边导航 --> <a href="javascript:;" class="aside-nav__items">实</a> <a href="javascript:;" class="aside-nav__items">商</a> <a href="javascript:;" class="aside-nav__items">课</a> <a href="javascript:;" class="aside-nav__items">环</a> <a href="javascript:;" class="aside-nav__items">云</a> </nav> </body> <script type="text/javascript"> var asideNavItems=getEleAll(".aside-nav__items"), asideNav=getEle(".aside-nav"); window.onscroll=function(){ var top=getTop(); if (top>200){ addCls(asideNav,"aside-nav-appear"); asideNav.style.display="block"; } else { delCls(asideNav,"aside-nav-appear"); setTimeout(function(){ asideNav.style.display="none"; },1000); } } //获取元素函数 function getEle(sel){ return document.querySelector(sel); } function getEleAll(sel){ return document.querySelectorAll(sel); } //获取屏幕高度函数 function getTop(){ return document.documentElement.scrollTop || document.body.scrollTop; } //添加类名函数 function addCls(ele,cls){ var baseCls=ele.className; if (baseCls.indexOf(cls)==-1){ ele.className=baseCls+" "+cls; } } //删除类名函数 function delCls(ele,cls){ var baseCls=ele.className; if (baseCls.indexOf!=-1){ ele.className=baseCls.replace(cls,""); } } </script> </html>
0
收起
正在回答
2回答
transiton与display不能同时使用,可以给过渡变化添加一个定时器:
关于说的改变定位的right值,是可以同时和透明度实现的,可以再测试下。
HTML5与CSS3实现动态网页 2018
- 参与学习 1887 人
- 提交作业 4643 份
- 解答问题 5760 个
有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星