整合營銷服務商

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

          免費咨詢熱線:

          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一区二区三区浪潮| 国产A∨国片精品一区二区| 国产福利微拍精品一区二区 | 国精品无码A区一区二区| 欧美日本精品一区二区三区| 亚洲AV色香蕉一区二区| 日韩人妻无码一区二区三区综合部| 无码人妻精品一区二区蜜桃| 91成人爽a毛片一区二区| 午夜福利av无码一区二区 | 一级特黄性色生活片一区二区| 日韩精品中文字幕无码一区| 97久久精品午夜一区二区| 视频精品一区二区三区| 精品成人一区二区三区免费视频| 亚洲中文字幕乱码一区| 亚洲一区二区免费视频| 亚洲中文字幕在线无码一区二区| 久久国产精品亚洲一区二区| 中文字幕在线无码一区| 久久精品国产免费一区| 精品视频无码一区二区三区| 日韩爆乳一区二区无码| 国产乱码精品一区二区三区四川 | 亚洲夜夜欢A∨一区二区三区| 成人免费一区二区三区| 亚洲乱码一区二区三区在线观看| 一区二区三区无码视频免费福利| 久久一区二区免费播放| 精品无码人妻一区二区三区品| 亚洲宅男精品一区在线观看| 日韩aⅴ人妻无码一区二区| 日本免费电影一区二区| 无码日韩精品一区二区免费| 中文字幕精品一区| 美女免费视频一区二区| 无码少妇一区二区性色AV |