这个可以通过绝对定位,配合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
希望能解决你的问题
给你一个JQ的三级联动:
!doctype html
html
head
title/title
meta charset = "utf-8"/
/head
style
/style
body
select id="one"
option value=""请选择省份/option
/select
select id="two"
option value=""请选择城市/option
/select
select id="three"
option value=""请选择区域/option
/select
script type="text/javascript" src="js/jquery-1.12.0.js"/script
script type="text/javascript"
/*
1.搭建框架
2.给省份和城市绑定change事件
*/
$(function(){
var province = [
{"name" : "广东省" ,
"city" : [
{
"name" : "广州市" ,
"area" : ["越秀区","荔湾区","海珠区","天河区,白云区"]
},
{
"name" : "深圳市" ,
"area" : ["福田区","罗湖区","南山区","宝安区","龙岗区"]
}
]
},
{"name" : "浙江省" ,
"city" : [
{
"name" : "杭州市" ,
"area" : ["上城区","下城区","江干区","西湖区"]
},
{
"name" : "丽水" ,
"area" : ["莲都区","松阳县","遂昌县","云和县"]
}
]
},
{"name" : "江西省" ,
"city" : [
{
"name" : "南昌市" ,
"area" : ["东湖区","西湖区","青云谱区","湾里区"]
},
{
"name" : "九江市" ,
"area" : ["浔阳区","庐山区","瑞昌市","九江县"]
},
{
"name" : "赣州市" ,
"area" : ["章贡区","南康区","上犹县","赣县"]
}
]
},
];
// 二级联动
$("#two").change(function(){
var one_index = $("#one option:selected").index();
var two_index = $("#two option:selected").index();
var three = $("#three");
three.empty().append("option请选择区域/option");
if(two_index 0){
var area = province[one_index-1].city[two_index-1].area;
for(var i = 0 ; i area.length ; i++){
three.append("option"+area[i]+"/option");
}
}
});
// 一级联动
$("#one").change(function(){
var one_index = $("#one option:selected").index();
var two = $("#two");
console.log(one_index)
two.empty().append("option请选择城市/option");
$("#three").empty().append("option请选择区域/option");//清除
if(one_index 0){
var city = province[one_index-1].city;
console.log(province[one_index-1].city)
for(var i = 0 ; i city.length ; i++){
two.append("option"+city[i].name+"/option");
}
}
});
init();
function init(){
for(var i = 0 ; i province.length ; i++){
$("#one").append("option"+province[i].name+"/option");
}
}
});
/script
/body
/html
1)、普通下拉列表菜单
html代码如下:
form action="" method="get"
label1、普通下拉列表菜单/label
select name=""
option value="0"DIVCSS5/option
option value="1"DIVCSS5/option
/select
/form
2)、跳转下拉列表菜单(如常见点击后跳转到选择网站)
常常一些网站做友情链接,与部门之间使用select下拉标签实现网址跳转。下面我们通过代码与案例接受select跳转菜单应用。
跳转菜单html代码如下:
form action="" method="get"
label2、跳转的下拉列表菜单/label
select name="jumpMenu" id="jumpMenu"
onchange="MM_jumpMenu('parent',this,0)"
option value=""Rothur/option
option value=""Rothur/option
/select
/form
实现跳转还需要在head标签内加入Js脚本动作代码:
script type="text/javascript" !-- function MM_jumpMenu(targ,selObj,restore){ //v3.0 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'"); if (restore) selObj.selectedIndex=0; } //-- /script
!doctype html
html lang="en"
head
meta charset="UTF-8"
meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
meta http-equiv="X-UA-Compatible" content="ie=edge"
titleTEST/title
style
h1{
margin: 0;
}
body{
margin: 0;
height: 100%;
background-color: #f3f3f3;
}
.header {
padding: 15px 0;
background-color: #fff;
border-bottom: 1px solid #ccc;
text-align: center;
width: 100%;
}
.fiexd .header{
position: fixed;
top: 0;
}
.fiexd ul{
margin-top: 84px;
}
/style
/head
body
ul
li
h2列表 1/h2
/li
li
h2列表 2/h2
/li
li
h2列表 3/h2
/li
li
h2列表 4/h2
/li
li
h2列表 5/h2
/li
li
h2列表 6/h2
/li
li
h2列表 7/h2
/li
li
h2列表 8/h2
/li
/ul
div class="header"h1我是一个标题/h1/div
ul
li
h2列表 1/h2
/li
li
h2列表 2/h2
/li
li
h2列表 3/h2
/li
li
h2列表 4/h2
/li
li
h2列表 5/h2
/li
li
h2列表 6/h2
/li
li
h2列表 7/h2
/li
li
h2列表 8/h2
/li
li
h2列表 9/h2
/li
li
h2列表 10/h2
/li
li
h2列表 11/h2
/li
li
h2列表 12/h2
/li
li
h2列表 13/h2
/li
li
h2列表 14/h2
/li
li
h2列表 15/h2
/li
/ul
script
var header = document.getElementsByClassName('header')[0];
var body = document.body;
window.onscroll = function () {
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
console.log(scrollTop);
if(scrollTop 100) {
body.className = 'fiexd';
} else {
body.className = '';
}
}
/script
/body
/html
一共有4种侧滑动画特效。这款CSS3菜单的特点是鼠标划过时即可以各种动画方式展开和隐藏菜单项,该动画方式由CSS3中的transition-delay属性来完成
style type="text/css"
/*Fontawesome Iconfont*/
@import url();
@import url();
* {margin: 0; padding: 0;}
li {list-style-type: none;}
.grid {float: left;width:980px;margin: 0 auto;}
.grid li { width: 285px; height: 500px; overflow: hidden; float: left; margin: 20px 0 20px 30px; position: relative; }
.grid li:hover {box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.5);}
.gridli section {position: relative; transition: all 0.25s; width: 100%;}
.gridli h2 {font: bold 14px montserrat; color: #fff; text-transform: uppercase; position: absolute; text-align: center; width: 60%; left: 20%; top: 100px; padding: 10px 0; border: 2px solid white; border-radius: 4px;}
.sidenav { position: absolute; top: 0; left: 0; bottom: 0; background: linear-gradient(rgba(50,60,60, 1), rgba(50,60,60, 0.7)); width: 50px; transition: all 0.25s; overflow: hidden; padding-top: 100px;}
.sidenav li { _overflow: hidden; width: 150px; }
.sidenav a { text-decoration: none; color: #eee; display: block; line-height: 48px; }
.sidenav span {display: block;}
.sidenav b { padding-left 10px; display: block; color: white; font-family: Montserrat; font-size: 12px; line-height: 4; opacity: 0; }
.sidenav a i { display: block; float: left; font-size: 16px; line-height: 48px; width: 50px; text-align: center; }
/*All instances*/
.gridli:hover .sidenav {width: 150px;}
.gridli:hover section {margin-left: 150px;}
.gridli:hover b {opacity: 1;}
.sidenav li:nth-child(1) b, .sidenav li:nth-child(1) a {transition-delay: .08s;}
.sidenav li:nth-child(2) b, .sidenav li:nth-child(2) a {transition-delay: .16s;}
.sidenav li:nth-child(3) b, .sidenav li:nth-child(3) a {transition-delay: .24s;}
.sidenav li:nth-child(4) b, .sidenav li:nth-child(4) a {transition-delay: .32s;}
.sidenav li:nth-child(5) b, .sidenav li:nth-child(5) a {transition-delay: .40s;}
.sidenav li:nth-child(6) b, .sidenav li:nth-child(6) a {transition-delay: .48s;}
/*Three*/
.three .w {transform: perspective(100px) translateZ(-24px);}
.three b {transform: perspective(100px) rotateY(180deg) translateZ(24px) scale(0.5); }
.three:hover b {transform: perspective(100px) rotateY(0) translateZ(24px) scale(1); transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275); background: transparent;}
.three .sidenav {width: 150px;}
/*Two*/
.two .w {transform: perspective(100px) translateZ(-24px);}
.two b {transform: perspective(100px) rotateX(90deg) translateZ(24px) scale(1.5); opacity: 0; }
.two:hover b {transform: perspective(100px) rotateX(0) translateZ(24px) scale(1); transition: all .4s; opacity: 1;}
.two .sidenav {width: 150px;}
/*One*/
.one .w {transform: perspective(100px);}
.one b {transform: perspective(100px) rotateY(90deg); _opacity: 0; transform-origin: left center; _border: 1px solid white;}
.one:hover b {transform: perspective(100px) rotateX(0); transition: all .4s; opacity: 1;}
.one .sidenav {width: 150px;}
.one .sidenav span {float: left; width: 100px;}
/style
!--[if IE]
script src=""/script
![endif]--
/head
body
div class="htmleaf-container"
header class="htmleaf-header bgcolor-11"
div class="htmleaf-demo center"
a href="index.html"DEMO1/a
a href="index2.html" class="current"DEMO2/a
a href="index3.html"DEMO3/a
a href="index4.html"DEMO4/a
/div
div style="text-align:center;clear:both;"
script src="/gg_bd_ad_720x90.js" type="text/javascript"/script
script src="/follow.js" type="text/javascript"/script
/div
/header
div class="htmleaf-content bgcolor-8"
ul class="grid"
li class="one"
ul class="sidenav"
liai class="fa fa-check"/ispan class="w"bTasks/b/span/a/li
liai class="fa fa-inbox"/ispan class="w"bMessages/b/span/a/li
liai class="fa fa-pencil"/ispan class="w"bNew Post/b/span/a/li
liai class="fa fa-cog"/ispan class="w"bSettings/b/span/a/li
liai class="fa fa-star"/ispan class="w"bStarred/b/span/a/li
liai class="fa fa-power-off"/ispan class="w"bLogout/b/span/a/li
/ul
section
h2Door Opening/h2
img src="img/mb1.png"/
/section
/li
li class="two"
ul class="sidenav"
liai class="fa fa-check"/ispan class="w"bTasks/b/span/a/li
liai class="fa fa-inbox"/ispan class="w"bMessages/b/span/a/li
liai class="fa fa-pencil"/ispan class="w"bNew Post/b/span/a/li
liai class="fa fa-cog"/ispan class="w"bSettings/b/span/a/li
liai class="fa fa-star"/ispan class="w"bStarred/b/span/a/li
liai class="fa fa-power-off"/ispan class="w"bLogout/b/span/a/li
/ul
section
h2Flip Down/h2
img src="img/mb2.png"/
/section
/li
li class="three"
ul class="sidenav"
liai class="fa fa-check"/ispan class="w"bTasks/b/span/a/li
liai class="fa fa-inbox"/ispan class="w"bMessages/b/span/a/li
liai class="fa fa-pencil"/ispan class="w"bNew Post/b/span/a/li
liai class="fa fa-cog"/ispan class="w"bSettings/b/span/a/li
liai class="fa fa-star"/ispan class="w"bStarred/b/span/a/li
liai class="fa fa-power-off"/ispan class="w"bLogout/b/span/a/li
/ul