import { css } from "@linaria/core"; import { ArrowRightOutlined } from "@ant-design/icons-vue"; import { TabPane, Tabs } from "ant-design-vue"; import { defineComponent, reactive } from "vue"; export default defineComponent({ setup() { const tabs = [ { title: "产品设计", key: "1", }, { title: "视觉传达", key: "2", }, { title: "美术艺术", key: "3", }, { title: "环境设计", key: "4", }, { title: "动画", key: "5", }, ]; const state = reactive({ activeKey: "1", }); return () => (
{{ renderTabBar: () => { return (
师生作品/ Works
{tabs.map((e) => { return (
{ state.activeKey = e.key; }} > {e.title}
); })}
); }, default: () => { return tabs.map((item) => { return ( ); }); }, }}
); }, }); const page = css` position: relative; background: url("@/assets/bg_works.png") no-repeat center top/100% auto; .talent_tab { z-index: 2; .ant-tabs-nav { margin-bottom: 40px; &::before { display: none; } .home_lay_title { margin-bottom: 0; } } .ant-tabs-tab { padding: 14px 0; font-size: 18px; color: rgba(255, 255, 255, 0.8); & + .ant-tabs-tab { margin: 0 0 0 60px; } &.ant-tabs-tab-active { .ant-tabs-tab-btn { color: #fff; } &::after { position: absolute; content: ""; bottom: 0; left: 50%; transform: translateX(-50%); width: 28px; height: 2px; background-color: #fff; } } } .tab_list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; .list_item { height: 800px; .item_lay { height: 388px; &:first-child { margin-bottom: 24px; } } .item_link { display: block; position: relative; width: 100%; height: 100%; overflow: hidden; .item_txt { position: absolute; left: 0; bottom: 0; padding: 30px 40px; width: 100%; color: #fff; background: linear-gradient( 180deg, rgba(0, 0, 0, 0) 0%, #000000 100% ); opacity: 0; overflow: hidden; .name { font-size: 20px; font-weight: 600; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .authors { margin-top: 4px; font-size: 14px; font-weight: 400; } } &:hover { img { transform: scale(1.2); } .item_txt { animation: fadeInUp 0.3s ease-in-out; animation-fill-mode: forwards; } } } img { width: 100%; height: 100%; object-fit: cover; transition: all 0.3s ease-in-out; } } } } .list_more { margin-top: 35px; text-align: center; a { color: var(--vt-c-primary); } .arrow { margin-left: 8px; padding: 2px; border: 1px solid var(--vt-c-primary); font-size: 12px; border-radius: 50%; } } @keyframes fadeInUp { from { opacity: 0; transform: translate3d(0, 100%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } `;