diff --git a/src/animations.scss b/src/animations.scss new file mode 100644 index 000000000..f6058a585 --- /dev/null +++ b/src/animations.scss @@ -0,0 +1,47 @@ +@keyframes itemUp { + 0% { + top: var(--offsetTop) + } + + to { + top: 0 + } +} + +@keyframes bgOpacity { + 0% { + opacity: 1 + } + + to { + opacity: 0 + } +} + +@keyframes voiceScale { + 0% { + transform: scale(0) + } + + 58% { + transform: scale(1.28) + } + + to { + transform: scale(1) + } +} + +@keyframes voiceRotate { + 0% { + transform: rotate(0) + } + + 55% { + transform: rotate(6deg) + } + + to { + transform: scale(-4deg) + } +} \ No newline at end of file diff --git a/src/common/UrlTool.js b/src/common/UrlTool.js index 1a2e87706..620a48e83 100644 --- a/src/common/UrlTool.js +++ b/src/common/UrlTool.js @@ -9,15 +9,11 @@ if (!__SERVER__) { } const isDev = __SERVER__ ? false : window.location.port == 3007; const isdev2= __SERVER__ ? false : window.location.hostname ==='www.educoder.net' -export const TEST_HOST = "http://172.20.32.202:4000/" +export const TEST_HOST = "https://testforgeplus.trustie.net/" export function getImageUrl(path) { - // https://www.educoder.net - // https://testbdweb.trustie.net - // const local = 'http://localhost:3000' path && !path.startsWith('/') && !path.startsWith('http') && (path = '/'.concat(path)); - const local = 'http://172.20.32.203:4000'; if (isDev) { - return `${local}${path}` + return `${TEST_HOST}${path}` } return `${path}`; } @@ -38,14 +34,10 @@ export function isPhone(){ } export function getImageUrlAbsolute(path) { - // https://www.educoder.net - // https://testbdweb.trustie.net - // const local = 'http://localhost:3000' path && !path.startsWith('/') && !path.startsWith('http') && (path = '/'.concat(path)); - const local = 'http://172.20.32.202:4000/'; - const prod = __SERVER__ ? local : window.location.origin; + const prod = __SERVER__ ? TEST_HOST : window.location.origin; if (isDev) { - return `${local}${path}` + return `${TEST_HOST}${path}` }else{ return `${prod}${path}`; } @@ -69,13 +61,9 @@ export function numFormat(num, digits){ } export function getImage(path) { - // https://www.educoder.net - // https://testbdweb.trustie.net - // const local = 'http://localhost:3000' - const local = 'http://172.20.32.202:4000//'; if(path.indexOf("http://")===-1){ if (isDev) { - return `${local}/images/${path}` + return `${TEST_HOST}/images/${path}` } return `/${path}`; }else{ @@ -84,14 +72,9 @@ export function getImage(path) { } export function getcdnImageUrl(path) { - // https://www.educoder.net - // https://testbdweb.trustie.net - // const local = 'http://localhost:3000' - const testlocal = 'https://testali-cdn.educoder.net' - const local='https://ali-cdn.educoder.net' let firstStr=path.substr(0,1); if (isdev2) { - return `${local}/${path}`; + return `${TEST_HOST}/${path}`; }else{ if(firstStr=="/"){ return `${path}` @@ -103,20 +86,18 @@ export function getcdnImageUrl(path) { } export function setcndImagesUrl(path){ - const testlocal = 'https://testali-cdn.educoder.net' - const local='https://ali-cdn.educoder.net' let firstStr=path.substr(0,1); if(firstStr=="/"){ if (!isdev2) { return `${path}` } - return `${local}${path}`; + return `${TEST_HOST}${path}`; //return isDev?`${testlocal}${path}`:`${local}${path}`; }else{ if (!isdev2) { return `/${path}` } - return `${local}/${path}`; + return `${TEST_HOST}/${path}`; // return isDev?`${testlocal}/${path}`:`${local}/${path}`; } } diff --git a/src/forge/projectHome/explore/index.jsx b/src/forge/projectHome/explore/index.jsx index 6726e9e4a..3a9eec2fe 100644 --- a/src/forge/projectHome/explore/index.jsx +++ b/src/forge/projectHome/explore/index.jsx @@ -138,7 +138,7 @@ function ProjectHomePage(props) {
技术赋能
开源软件仓库
-
护航菌事数智发展
+
服务可信资源共享
汇聚全球顶尖开源力量,构建安全、协同、创新的软件生态
{/*
·护航菌事数智
*/} @@ -262,7 +262,9 @@ function ProjectHomePage(props) { {/* {i.author && i.author.login === "gh_mirrors" && i.topics && !i.topics.length && 华中科技大学} */} {i.topics.slice(0, 2).map(item => {item.name})} } - +
+ +
})} : } diff --git a/src/forge/projectHome/explore/index.scss b/src/forge/projectHome/explore/index.scss index 1fd45eea4..1c9e12092 100644 --- a/src/forge/projectHome/explore/index.scss +++ b/src/forge/projectHome/explore/index.scss @@ -105,6 +105,7 @@ padding: 20px 30px; background-image: url('../image/icon17.png'); background-size: 100% 100%; + width: 100%; } .cate_item { @@ -191,6 +192,7 @@ border: 1px solid #f1f6ff; position: relative; box-shadow: 0 0 12px rgba(92, 102, 193, 0.05); + overflow: hidden; .task-hide-2 { word-break: break-all; @@ -226,6 +228,18 @@ // border-color: #2149d4; } + .detail-but-black-box{ + width: 100%; + position: absolute; + opacity: 0; + bottom: -10px; + transition: bottom 0.2s ease-out, opacity 0.2s ease-out; + margin-left: -15px; + border-radius: 0px 0px 10px 10px; + text-align: center; + padding-top: 6px; + background: linear-gradient(180deg, rgb(255 255 255 / 29%), rgba(255, 255, 255, 1)); + } .detail-but-black { line-height: 32px; @@ -233,10 +247,6 @@ color: #ffffff; background-color: #091221; border: none; - position: absolute; - opacity: 0; - bottom: 0px; - transition: bottom 0.2s ease-out, opacity 0.2s ease-out; overflow: hidden; } @@ -245,8 +255,8 @@ display: none; } - .detail-but-black { - bottom: 10px; + .detail-but-black-box { + bottom: 0px; opacity: 1; } @@ -258,7 +268,7 @@ width: 100%; height: 100%; background: linear-gradient(120deg, rgba(255, 255, 255, 0)0%, rgba(255, 255, 255, 0.5)50%, rgba(255, 255, 255, 0)100%); - animation: flowLight 0.5s ease-in-out; + animation: flowLight 1s ease-in-out 0.1s; } } } diff --git a/src/forge/projectHome/image/pro_item3.png b/src/forge/projectHome/image/pro_item3.png index 7648ef30d..1da5c9101 100644 Binary files a/src/forge/projectHome/image/pro_item3.png and b/src/forge/projectHome/image/pro_item3.png differ diff --git a/src/forge/projectHome/projectList/index.jsx b/src/forge/projectHome/projectList/index.jsx index f4ad6402b..6dd538d3b 100644 --- a/src/forge/projectHome/projectList/index.jsx +++ b/src/forge/projectHome/projectList/index.jsx @@ -6,6 +6,7 @@ import { Link } from "react-router-dom"; import { getImageUrl, timeAgo } from "educoder"; import Nodata from "../../Nodata"; import { HoverUnderline } from "../../../components/title"; +import ActionItem from "../../../factory/resource/components/ActionItem"; const { Panel } = Collapse; // 开源协作首页 @@ -106,36 +107,38 @@ function ProjectList() { return
{/* 推荐仓库 */}
-
开源协作·共建生态
- {setSearchValue(e.target.value)}} suffix={{setSearch(searchValue)}}> - - } onSearch={(value)=>{ - setSearch(value) - }}/> +
开源协作·共建生态
+ + {setSearchValue(e.target.value)}} suffix={{setSearch(searchValue)}}> + + } onSearch={(value)=>{ + setSearch(value) + }}/> + {bannerProjects[0] &&
{bannerProject(bannerProjects[0])} -
+
{bannerProjects[0].author && }
} {bannerProjects[1] &&
{bannerProject(bannerProjects[1])} - {bannerProjects[1].author && } + {bannerProjects[1].author &&
}
} {bannerProjects[2] &&
{bannerProject(bannerProjects[2])} -
+
{bannerProjects[2].author && }
} {bannerProjects[3] &&
{bannerProject(bannerProjects[3])} - {bannerProjects[3].author && } + {bannerProjects[3].author &&
}
}
@@ -145,7 +148,7 @@ function ProjectList() { const url = i.author ? `/${i.author.login}/${i.identifier}${i.author.login === "gh_mirrors" ? "/about" : "/about"}` : `` const { author = {} } = i; return
- {i.topics &&
+ {i.topics &&
{i.topics.map(item => {item.name})}
}
{author.name}/{i.name}
@@ -154,7 +157,7 @@ function ProjectList() { {i.description}
} - {author &&
+ {author &&
{author.image_url && } {author.name}   {timeAgo(i.updated_on)}更新 @@ -250,7 +253,7 @@ function ProjectList() { })}
- + {projectsListByHot.map(project => { return
{project.description || '暂无数据'}
diff --git a/src/forge/projectHome/projectList/index.scss b/src/forge/projectHome/projectList/index.scss index ca44e2990..79cc530d8 100644 --- a/src/forge/projectHome/projectList/index.scss +++ b/src/forge/projectHome/projectList/index.scss @@ -1,3 +1,4 @@ +@import '../../../animations.scss'; .project_home { font-family: "alibabaReg"; color: #091221; @@ -19,6 +20,19 @@ .p_h_title { font-family: "DouyinSansBold"; letter-spacing: 4px; + &>:first-child { + --duration: 200ms; + --delay: 240ms + } + &>:nth-child(2) { + --duration: 200ms; + --delay: 400ms; + } + &>*{ + position: relative; + --offsetTop: 56px; + animation: itemUp var(--duration) ease-in-out var(--delay) forwards, bgOpacity var(--duration) linear var(--delay) reverse backwards + } } .p_h_title_text { @@ -27,6 +41,35 @@ -webkit-text-fill-color: transparent; } + .search_p_h_box{ + display: inline-block; + margin: 0 auto; + border: 4px solid rgba(9, 18, 33, 0); + --offsetTop: 26px; + animation: itemUp .4s ease-in-out .76s forwards, bgOpacity .4s linear .76s reverse backwards; + &:before { + animation: rotate 8s linear 1.5s infinite; + background: conic-gradient( + from 180deg at 50% 50%, + #9a8bff 0deg, + #ffac8b 45deg, + transparent 90deg, + transparent 180deg, + #9a8bff 180deg, + #ffac8b 225deg, + transparent 270deg + ); + z-index: 0; + } + &:hover{ + border: 4px solid rgba(9, 18, 33, 0.1); + &:before{ + animation: none; + background: #091221; + } + } + } + .search_p_h { width: 660px; height: 52px; @@ -62,6 +105,21 @@ .project_home_banner { position: relative; + &_img1, &_img2, &_project1, &_project2, &_project3, &_project4 { + --scale-during: 0.5s; + --scale-delay: 0.96s; + --rotate-during: 0.5s; + --rotate-delay: 0.96s; + --opacity-during: 0.5s; + --opacity-delay: 0.96s; + animation: voiceScale var(--scale-during) ease-in-out var(--scale-delay), bgOpacity var(--opacity-during) ease-in-out var(--opacity-delay) reverse backwards; + // animation: voiceScale var(--scale-during) ease-in-out var(--scale-delay), voiceRotate var(--rotate-during) ease-in-out var(--rotate-delay), bgOpacity var(--opacity-during) ease-in-out var(--opacity-delay) reverse backwards; + } + .author_img_box{ + --rotate-during: 0.5s; + --rotate-delay: 0.96s; + animation: voiceRotate var(--rotate-during) ease-in-out var(--rotate-delay); + } &_img1 { position: absolute; @@ -72,7 +130,7 @@ &_img2 { position: absolute; top: 45%; - right: 14%; + right: 12%; } &_project1 { @@ -83,6 +141,10 @@ .bannerProject { right: 45px; top: 44px; + animation-delay: 1s !important; + } + .author_img{ + animation-delay: 1s !important; } } @@ -94,17 +156,17 @@ .bannerProject { right: 90px; top: 0px; - animation-delay: 4s !important; + animation-delay: 4.5s !important; } .author_img{ - animation-delay: 4s !important; + animation-delay: 4.5s !important; } } &_project3 { position: absolute; top: 22%; - right: 22%; + right: 20%; .icon8_img { margin-top: -20px; @@ -113,34 +175,35 @@ .bannerProject { left: 47px; top: 0px; - animation-delay: 8s !important; + animation-delay: 8.5s !important; } .author_img{ - animation-delay: 8s !important; + animation-delay: 8.5s !important; } } &_project4 { position: absolute; bottom: -10%; - right: 20.3%; + right: 18.3%; .bannerProject { left: 47px; top: 0px; - animation-delay: 12s !important; + animation-delay: 12.5s !important; } .author_img{ - animation-delay: 12s !important; + animation-delay: 12.5s !important; } } .author_img { width: 38px; height: 38px; - border: 1.5px solid white; + border: 2px solid white; background-color: #F6F6F6; - animation: scalemax 2s forwards; + animation: scalemax 17s infinite; + filter: drop-shadow(13px 13px 13px rgba(110, 170, 166, .15)) drop-shadow(2.5px 2.5px 7.5px rgba(19, 75, 83, .1)); } .bannerProject { @@ -150,7 +213,7 @@ padding: 10px 12px; width: 238px; opacity: 0; - animation: slideLeftFadeIn 3s forwards; + animation: slideLeftFadeIn 17s infinite; .icon-66 { background-image: linear-gradient(180deg, rgba(33, 73, 212, 0.04) 0%, rgba(33, 73, 212, 0.14) 100%); @@ -169,6 +232,9 @@ display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); + position: relative; + --offsetTop: 36px; + animation: itemUp .4s ease-in-out 1.05s forwards, bgOpacity .4s linear 1.05s reverse backwards; } .project_list_top_item { @@ -215,6 +281,9 @@ padding: 40px 0 100px; background-image: linear-gradient(179.88deg, #ffffff 0%, rgba(255, 255, 255, 0.62) 16.1%, rgba(255, 255, 255, 0) 100%); border-radius: 40px 40px 0 0; + position: relative; + --offsetTop: 66px; + animation: itemUp .4s ease-in-out 1.35s forwards, bgOpacity .4s linear 1.35s reverse backwards; .cate_list_box { display: flex; @@ -273,6 +342,16 @@ &:hover { background-color: #f7f9fd; font-weight: bold; + position: relative; + a{ + color:#27254c; + } + &::before{ + content: '\e8d6'; + font-family: 'iconfont'; + position: absolute; + left: 0; + } } &:not(:last-of-type) { @@ -392,9 +471,12 @@ 0%{ scale: 1; } - 40%{ + 5%{ scale: 1.28; } + 25.1%{ + scale: 1; + } 100%{ scale: 1; } @@ -405,12 +487,18 @@ opacity: 0.4; width: 200px; } - 20%{ + 5%{ width: 238px; } - 50%{ + 20%{ opacity: 1; } + 25%{ + opacity: 0; + } + 25.1%{ + opacity: 0; + } 100%{ opacity: 0; } diff --git a/src/forums/list/index.jsx b/src/forums/list/index.jsx index 43bf00335..b80cd9227 100644 --- a/src/forums/list/index.jsx +++ b/src/forums/list/index.jsx @@ -137,11 +137,11 @@ function List(props) {
-
论坛交流·解锁头脑风暴
-
开源动态,社区前言新闻速递,开启开源新视野
+
论坛交流·开始思想的联接与互动
+
需求反馈 技术交流 创意分享
{forumsDoMain && rollingButton({href: `${forumsDoMain}/forums/new`, name: '发布帖子', hoverName: '发布帖子', classname: "add-forums"})}
-
+
{forumsImgList && !!forumsImgList.length && {setActiveId(nextId)}}> {forumsImgList.map((item, index)=>{ return diff --git a/src/forums/list/index.scss b/src/forums/list/index.scss index 5af82a51a..1dfcb2601 100644 --- a/src/forums/list/index.scss +++ b/src/forums/list/index.scss @@ -1,3 +1,4 @@ +@import '../../animations.scss'; .forums-list-box { color: #091221; background-color: #f1f6fd; @@ -21,13 +22,40 @@ .forums-banner-title1 { font-family: 'DouyinSansBold'; line-height: normal; + + &>:first-child { + --duration: 200ms; + --delay: 240ms + } + &>:nth-child(2) { + --duration: 200ms; + --delay: 400ms; + } + &>:nth-child(3) { + --duration: 200ms; + --delay: 600ms; + } + &>*{ + position: relative; + --offsetTop: 56px; + animation: itemUp var(--duration) ease-in-out var(--delay) forwards, bgOpacity var(--duration) linear var(--delay) reverse backwards + } } .carousel-text { - background-image: linear-gradient(313.07deg, #d62ece 0%, #1664ff 65.83%, #06050e 100%); + background-image: linear-gradient(313.07deg, #d62ece 0%, #1664ff 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; + &:nth-of-type(2){ + background-image: linear-gradient(313.07deg, #1664ff 0%, #06050e 100%); + } + } + + .forums-banner-title2{ + position: relative; + --offsetTop: 26px; + animation: itemUp .4s ease-in-out .86s forwards, bgOpacity .4s linear .86s reverse backwards; } .add-forums { @@ -36,6 +64,9 @@ border-radius: 30px; border: 4px solid #CCD3E8; line-height: 52px; + position: relative; + --offsetTop: 26px; + animation: itemUp .4s ease-in-out 1.16s forwards, bgOpacity .4s linear 1.16s reverse backwards; &:hover { span { @@ -105,7 +136,7 @@ } .forums-list-item:hover, .forums-list-item-active { - background-image: linear-gradient(180deg,#f7f9fd00 0%, #f7f9fd 100%); + background-image: linear-gradient(180deg,#f7f9fd00 0%, #f7f9fd 100%); border-radius: 4px; font-weight: bold; @@ -126,12 +157,21 @@ .forums-list2 { padding: 0 25px 12px 25px; } + + .forums-hot-list{ + position: relative; + --offsetTop: 56px; + animation: itemUp .4s ease-in-out 1.36s forwards, bgOpacity .4s linear 1.36s reverse backwards; + } } .forums-list3-box { padding: 80px 0 60px; background-image: linear-gradient(179.88deg, #ffffff 0%, rgba(255, 255, 255, 0.62) 16.1%, rgba(255, 255, 255, 0) 100%); border-radius: 40px; + position: relative; + --offsetTop: 66px; + animation: itemUp .4s ease-in-out 1.56s forwards, bgOpacity .4s linear 1.56s reverse backwards; .user-img{ width:24px; height:24px; diff --git a/src/modules/403/Shixunauthority.js b/src/modules/403/Shixunauthority.js index ede7d0996..c86b23731 100644 --- a/src/modules/403/Shixunauthority.js +++ b/src/modules/403/Shixunauthority.js @@ -16,10 +16,11 @@ class Shixunauthority extends Component { {(!current_user || !current_user.login) && (

您可尝试登录

)} - 返回首页,也可以通过 + 返回首页 + {/* ,也可以通过 QQ向我们反馈 + className="color-blue">QQ向我们反馈 */}

{/*
*/} diff --git a/src/modules/404/Shixunnopage.js b/src/modules/404/Shixunnopage.js index 6ce753e1d..f8adb4327 100644 --- a/src/modules/404/Shixunnopage.js +++ b/src/modules/404/Shixunnopage.js @@ -17,10 +17,10 @@ class http500 extends Component {

您可尝试登录

)} 返回首页 - ,也可通过 + {/* ,也可通过 QQ向我们反馈 + className="color-blue">QQ向我们反馈 */}

{/*
*/} diff --git a/src/modules/500/http500.js b/src/modules/500/http500.js index 9d5c28b52..87d7d79c1 100644 --- a/src/modules/500/http500.js +++ b/src/modules/500/http500.js @@ -12,10 +12,10 @@ class Shixunnopage extends Component {

服务器异常,请稍后重试

您可尝试刷新页面返回首页 - ,也可以通过 + {/* ,也可以通过 QQ向我们反馈 + className="color-blue">QQ向我们反馈 */}

diff --git a/src/news/list/index.jsx b/src/news/list/index.jsx index a01014340..8b701f44f 100644 --- a/src/news/list/index.jsx +++ b/src/news/list/index.jsx @@ -55,8 +55,8 @@ function List() { return (
-
社区动态·洞见速递
-
开源动态,社区前言新闻速递,开启开源新视野
+
社区动态·实时感知开源脉搏
+
技术前沿 精彩活动 项目动态
阅见精要×新闻精髓
diff --git a/src/news/list/index.scss b/src/news/list/index.scss index 6a3d8e209..cbc568bcd 100644 --- a/src/news/list/index.scss +++ b/src/news/list/index.scss @@ -1,3 +1,4 @@ +@import '../../animations.scss'; .community-news-box{ color: #091221; background-color: #f1f6fd; @@ -12,6 +13,26 @@ -webkit-text-fill-color: transparent; background-clip: text; } + .community-news-title1{ + &>:first-child { + --duration: 200ms; + --delay: 240ms + } + &>:nth-child(2) { + --duration: 200ms; + --delay: 400ms; + } + &>*{ + position: relative; + --offsetTop: 56px; + animation: itemUp var(--duration) ease-in-out var(--delay) forwards, bgOpacity var(--duration) linear var(--delay) reverse backwards + } + } + .community-news-title2{ + position: relative; + --offsetTop: 26px; + animation: itemUp .4s ease-in-out .46s forwards, bgOpacity .4s linear .46s reverse backwards; + } } .community-news-1{ margin-top: 60px; @@ -20,6 +41,8 @@ background-image: url('../image/bk5.png'); background-size: 100% 100%; position: relative; + --offsetTop: 56px; + animation: itemUp .4s ease-in-out .76s forwards, bgOpacity .4s linear .76s reverse backwards; .community-news-title{ position: absolute; top: 0; @@ -152,6 +175,9 @@ .activities-box{ background-image: url('../image/bk6.png'); background-size: 100% 100%; + position: relative; + --offsetTop: 56px; + animation: itemUp .4s ease-in-out .96s forwards, bgOpacity .4s linear .96s reverse backwards; } .activity-list-box{ display: grid;