首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

html5左侧弹出菜单怎样实现

发布网友 发布时间:2022-04-20 23:13

我来回答

11个回答

热心网友 时间:2022-04-20 01:07

这个可以通过绝对定位,配合left设置 或者translate去实现
left的方法:
比如让class为menu的元素宽为300px,高100%的,设置left为-300px;在这期间可以加一个过渡transition:left 0.3s ...;
然后让class为menu active的元素设置 left设置为0就可以了 ,在这期间可以加一个过渡transition:left 0.3s ...;

然后可以通过Jquery的toggleClass('active');来实现切换
translate
比如让class为menu的元素宽为300px,高100%的,设置left为-300px;在这期间可以加一个过渡transition:left 0.3s ...;
然后让class为menu active的元素设置 transform:translate3d(-300px,0,0) ,在这期间可以加一个过渡transition:left 0.3s ...;
然后可以通过Jquery的toggleClass('active');来实现切换

这个过程中 需要注意 body需要overflow:hidden; (不然会有滚动条,可设置overflow-x即可)
left 和 translate 最好用translate ,translate3d可以开启GPU硬件加速,性能会更好,体验会更流畅
我github有类似小组件样式
github: IFmiss
希望能解决你的问题

热心网友 时间:2022-04-20 02:25

纯HTML+CSS完成侧滑效果的话,主要的几点就是
1.overflow: hidden;
2.position: relative;
3.还有就是伪类,比如hover

代码如下(刚写的demo,菜单的样式可以根据需要自己调整)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="format-detection" content="telephone=no" />
<title>Demo</title>

<style>
*{
padding:0;
margin:0;
box-sizing: border-box;
}
html,body{
min-height: 100%;
}
body{
overflow-x: hidden;//超出隐藏,所以当整个滑块在body左边的时候就会隐藏 position: relative;//可写可不写,为了规范而已
}
.siderBox{
text-align: center;
position: absolute;
top: 80px;
width: 200px;
left: -200px;
-webkit-transition: all 2s;
-moz-transition: all 2s ;
-ms-transition: all 2s ;
-o-transition: all 2s ;
transition: all 2s ;
}
.nav{
width: 200px;
background-color: #fff;
height: 100%;
vertical-align: top;
}
.nav p{
padding: 10px;
background-color: #666;
color: #fff;
}
.navOpen{
position: relative; //为left前提条件
left: 115px;top:-80px; //定位置
width: 30px;
background: #333;
display: inline-block;
padding: 10px;
border-radius: 0 5px 5px 0;
color: #fff;
font-weight: bold;
cursor: pointer;
}
.navOpen p{//css3,过渡效果,IE8不支持
-webkit-transition: all 2s;
-moz-transition: all 2s ;
-ms-transition: all 2s ;
-o-transition: all 2s ;
transition: all 2s ;
}
.siderBox:hover{//鼠标滑过,整体向右移动200px
left: 0;
}
.siderBox:hover .navOpen p{//鼠标滑过,箭头转弯
transform: rotate(180deg);
}
</style>
</head>
<body>
<div class="siderBox">
<div class="nav">
<p>菜单1</p>
<p>菜单2</p>
<p>菜单3</p>
<p>菜单4</p>
</div>
<div class="navOpen"><p> > </p></div>
</div>
</body>
</html>

热心网友 时间:2022-04-20 04:00

hover事件,表示当鼠标移到该位置的样式。
a:hover
{
display:;
}

第一步:先把您要弹出的菜单使用display:none隐藏起来。
第二步:设置hover事件,把你要显示的菜单display属性改为可见。

热心网友 时间:2022-04-20 05:51

...好多种方法.. 先通过点击移动事件绑定一下,鼠标移动到什么地方发生时间
1.浮动或者定位把对象 弄到屏幕外,然后鼠标移过去时JS改变定位数值;

2.高不动,宽为0;然后通过JS宽度增加;
3.设为透明度0;然后慢慢增加到1;
4.简单粗暴,display=none;JS然后display=block;
.........十几二十种方法

热心网友 时间:2022-04-20 07:59

弹出菜单得靠div+css结合javascript才能够做出来。
1,写好一个菜单,包含样式或id,默认隐藏
2,给左侧向外拉动事件做监听,如果菜单已显示,不做处理,如果菜单隐藏,这时候改变为显示状态
3.为了给他更好的效果,左侧向内监听,如果菜单已显示,则隐藏

热心网友 时间:2022-04-20 10:24

用html是做不出来的,必须得靠div+css结合javascript才能够做出来。

热心网友 时间:2022-04-20 13:05

sui框架自带,复制代码就能用
原生js,就用div吧,left:-(div宽度)ps;
弹出时left: 0;使用jq添加动画

热心网友 时间:2022-04-20 19:18

---用js或者css3,html不能做这种交互操作

热心网友 时间:2022-04-20 22:49

去17素材网找吧,会找到你想要的

热心网友 时间:2022-04-21 02:37

坐公交车,

热心网友 时间:2022-04-21 06:42

首先,百度天空博客
我在博客里面发了教程
你可以看看,
望采纳

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com