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;