发表日期: 2021-04-28 12:51:23 浏览次数:97
项城小程序制作【项城企业邮箱】项城网站外包、项城微信商城开发、项城网店美工、项城淘宝设计
项城,位于河南省东南部,周口市下辖县级市,居黄河冲积平原南部,淮河主要支流沙颍河中游。位于河南、安徽两省交界处,大广高速、宁洛高速在市区交汇,106国道和5条省道穿越全境,漯阜铁路连接京广、京九,沙颍河航运直通长江,是豫东南较佳的人流、物流、资金流、信息流交汇点。
2018年,全市生产总值完成339.91亿元,同比增长8.7% [1] 。
项城以味精、皮革、医药、纺织为支柱的工业体系,是中国最大的手工鞋生产基地、中国著名的莲花味精所在地,中西部通往长三角最近的水运城市。2011年荣获“中国最佳投资城市”、“中国十大发展潜力城市”称号。 [2] 2019年2月2日,被国家中医药管理局评为县级全国基层中医药工作先进单位。 [3] 2020年1月22日,被住房和城乡建设部命名为国家园林城市。 [4-5] 2020年2月13日,获得2019年度全国“平安农机”示范县称号。 [6]
先看效果图
vue,js,css3
vue组件 可以直接使用
<template>
<div>
<ul :class="headerActive == 0 ? 'friend' : 'booklist'">
<li @click="headerChange(0)" :class="headerActive == 0 ? 'active' : ''">
书友
</li>
<li @click="headerChange(1)" :class="headerActive == 1 ? 'active' : ''">
书单
</li>
</ul>
</div>
</template>
<script>
export default {
components: {},
data() {
return {
headerActive: 0,
};
},
computed: {},
created() {},
mounted() {
//初始化抛发
this.$emit("change", this.headerActive);
},
methods: {
headerChange(index) {
this.headerActive = index;
this.$emit("change", index);
},
},
};
</script>
<style scoped>
.bookcircle-header {
height: 42px;
display: flex;
justify-content: center;
align-items: center;
.wrapper {
width: 286px;
font-size: 14px;
height: 29px;
color: #1489fe;
border: 1px solid #1489fe;
border-radius: 14px;
display: flex;
justify-content: center;
align-items: center;
position: relative;
box-sizing: border-box; // 解决边框溢出,将border包含在盒子内部
li {
flex: 1;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
z-index: 2;
}
.active {
color: white;
}
&::before {
content: "";
width: 143px;
height: 100%;
background-color: #1489fe;
position: absolute;
top: 0px;
left: 0px;
border-radius: 13px 0px 0px 13px;
z-index: 1;
transition: all 0.3s;
}
&.firend::before {
transform: translateX(0);
border-radius: 13px 0px 0px 13px;
}
&.booklist::before {
transform: translateX(100%);
border-radius: 0px 13px 13px 0px;
}
}
}
</style>
实现原原理:
使用ul,li以及弹性盒子,首先给父元素设置宽高,然后通过弹性盒子将子元素 li 水平方向展开, 给子元素 li 设置 flex:1,让子元素平分父元素的宽。
然后给父元素设置伪元素,以绝对定位的方式覆盖第一个 li 元素, 通过z-index属性,控制伪元素和子元素的层级显示关系。
然后给伪元素设置 transition 属性 搭配 transform: translateX(); 属性,让元素水平移动就可以了
注意点:
虽然切换的点击事件在子元素上,并且也给子元素添加 了active样式,但tab的切换效果并不是通过子元素来实现的,而是通过父元素的伪元素来实现切换效果。
必须要根据子元素的 index 给父元素设置动态class, 这样父元素的伪元素才能根据选中的子元素执行切换动画
本组件使用的是 淘宝amfe-flexible、 postcss适配,使用时注意适配问题
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: https://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878