整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          CSS3導航欄展開動畫效果

          CSS3導航欄展開動畫效果

          SS3導航欄展開動畫效果,實現不一樣的手風琴菜單展開收縮動畫效果!效果如下:

          實現代碼

          html:

          css:

          javascript:

          例簡介

          本文介紹利用JQ實現垂直導航功能,可點擊左導航欄切換右邊數據,也可滾動右邊數據切換左導航欄標簽,實現左右聯動效果,效果如下:



          實現過程

          html、css和js代碼如下:

          1、html和css代碼相對比較簡單,可自行查看;

          2、js代碼:

          1)$(window).scroll實現滾動右邊數據切換左導航欄的標簽:

          11、“($(this).offset().top-$(window).innerHeight()/2))”影響滾動位置切換;

          12、scroll_t定時器必須加,不然點擊切換會有抖動效果;

          2)tabs.children('li').click實現點擊左導航欄切換右邊數據。


          <svg width="0" height="0">
          			<defs>
          				<filter id="goo">
          					<feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur" />
          					<feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 19 -9" result="goo" />
          					<feComposite in="SourceGraphic" in2="goo" operator="atop" />
          				</filter>
          			</defs>
          		</svg>
          		<div class="target">
          			<div>
          				<i id="ball1" class="ball"></i>
          				<i id="ball2" ref="ball2" class="ball"></i>
          			</div>
          		</div>
          <div class="menu">
          			<div class="menu-item" @click="updageMenuItem(0)">
          				首頁
          				<span :class="{'menu-item-bg': menuActive==0}">
          					<i class="iconfont"></i>
          				</span>
          			</div>
          			<div class="menu-item" @click="updageMenuItem(1)">
          				發現
          				<span :class="{'menu-item-bg': menuActive==1}">
          					<i class="iconfont"></i>
          				</span>
          			</div>
          			<div class="menu-item" @click="updageMenuItem(2)">
          				消息
          				<span :class="{'menu-item-bg': menuActive==2}">
          					<i class="iconfont"></i>
          				</span>
          			</div>
          			<div class="menu-item" @click="updageMenuItem(3)">
          				我的
          				<span :class="{'menu-item-bg': menuActive==3}">
          					<i class="iconfont"></i>
          				</span>
          			</div>
          		</div>
          
          <script>
          updageMenuItem(index) {
          			this.menuActive=index;
          			let ball2=this.$refs.ball2;
          			Array(4)
          				.fill(0)
          				.map((item, it)=> {
          					ball2.classList.remove('active' + it);
          				});
          			setTimeout(()=>{
          				ball2.classList.add('active' + index);
          			},100)
          		}
          </script>
          
          <style lang="less" scoped>
          .profile {
          	height: 100%;
          	background: #aaaa7f;
          	font-size: 14px;
          	.menu,
          	.target {
          		position: absolute;
          		bottom: 0;
          		width: 100%;
          		height: 50px;
          		left: 0;
          	}
          	.target > div {
          		filter: url('#goo');
          	}
          	.menu {
          		display: flex;
          		z-index: 5;
          		background: #fff;
          		.menu-item {
          			flex: 1;
          			color: #333;
          			display: flex;
          			justify-content: center;
          			align-items: flex-end;
          			padding-bottom: 10px;
          			position: relative;
          			span {
          				position: absolute;
          				height: 35px;
          				width: 35px;
          				background: #aaaa7f;
          				border-radius: 50%;
          				left: 0;
          				right: 0;
          				margin: auto;
          				top: 0;
          				opacity: 0;
          				display: flex;
          				align-items: center;
          				justify-content: center;
          				i {
          					color: #fff;
          					font-size: 20px;
          				}
          				&.menu-item-bg{
          					animation: menuItemBg .5s .2s forwards;
          				}
          			}
          		}
          	}
          	.ball {
          		width: calc(100% + 60px);
          		height: 50px;
          		border-radius: 0;
          		background-color: #fff;
          		position: absolute;
          		left: -30px;
          		margin: auto;
          		z-index: 1;
          	}
          	#ball2 {
          		left: 0;
          		top: 0px;
          		width: 50px;
          		height: 50px;
          		margin: auto;
          		border-radius: 50%;
          		&.active0 {
          			left: calc(((100% / 4) - 50px) / 2);
          			animation: ballUp .5s forwards;
          		}
          		&.active1 {
          			left: calc(((100% / 4) - 50px) / 2 + 100% / 4);
          			animation: ballUp .5s forwards;
          		}
          		&.active2 {
          			left: calc(((100% / 4) - 50px) / 2 + (100% / 4) * 2);
          			animation: ballUp .5s forwards;
          		}
          		&.active3 {
          			left: calc(((100% / 4) - 50px) / 2 + (100% / 4) * 3);
          			animation: ballUp .5s forwards;
          		}
          	}
          }
          @keyframes ballUp {
          	from {
          		top: 0;
          	}
          	to {
          		top: -25px;
          	}
          }
          @keyframes menuItemBg {
          	from {
          		top: 0;
          		opacity: 0;
          	}
          	to {
          		top: -15px;
          		opacity: 1;
          	}
          }

          主站蜘蛛池模板: 亚洲国产情侣一区二区三区| 日韩电影一区二区三区| 亚洲av无码一区二区三区天堂古代 | 精品国产亚洲第一区二区三区| 美女福利视频一区| 久久一区二区精品综合| 亚洲AV无码第一区二区三区| 中文字幕人妻丝袜乱一区三区| 香蕉视频一区二区| 日韩精品一区二区亚洲AV观看 | 久久久精品日本一区二区三区| 国内精自品线一区91| 久久精品国内一区二区三区| 麻豆va一区二区三区久久浪| 无码人妻AⅤ一区二区三区水密桃| 高清一区二区在线观看| 国产激情精品一区二区三区| 亚洲AV无码一区二区乱孑伦AS| 亚洲综合无码一区二区三区| 国产精品一区二区久久精品无码| 久久一区二区精品| 久久精品日韩一区国产二区| 日本韩国黄色一区二区三区 | 午夜AV内射一区二区三区红桃视 | 国产凸凹视频一区二区| 久久国产午夜精品一区二区三区 | 日韩人妻不卡一区二区三区| 久久精品日韩一区国产二区| 一区二区三区免费电影| 久久久无码精品国产一区| 国产Av一区二区精品久久| 国产自产V一区二区三区C| 国产福利酱国产一区二区| 熟女性饥渴一区二区三区| 国产乱人伦精品一区二区| 国产成人AV一区二区三区无码| 国产一国产一区秋霞在线观看| 99精品高清视频一区二区| 无码精品久久一区二区三区| 色噜噜狠狠一区二区三区果冻| 福利国产微拍广场一区视频在线 |