vue+less 를 사용 하여 간단 한 스킨 케 어 기능 을 실현 하 는 예제
우선,먼저 나의 최초의 생각 을 말 해 보 자.
제 최초의 생각 은 less 정의 변 수 를 사용 한 다음 에 js 를 통 해 변 수 를 전환 하고 전환 하 는 변 수 를 통 해 피부 전환 효 과 를 얻 는 것 입 니 다.
먼저 theme.less 파일 을 새로 만 들 었 습 니 다.코드 는 다음 과 같 습 니 다.
@theme:@themea;
@themea:pink;
@themeb:blue;
@themec:gray;
제 가 처음에 생각 했 던 것 처럼 이 벤트 를 클릭 해서 변수@theme 의 값 을 바 꿔 야 합 니 다.저 는 element-ui 라 는 프레임 워 크 를 사 용 했 기 때문에 드 롭 다운 메뉴 의 코드 도 복잡 하지 않 습 니 다.
<el-dropdown class="colorBtn " trigger="click" @command="changeColor">
<span class="el-dropdown-link " > </span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="a" @click="change_type(a)"> </el-dropdown-item>
<el-dropdown-item command="b" @click="change_type(b)"> </el-dropdown-item>
<el-dropdown-item command="c" @click="change_type(c)"> </el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
이벤트 의 리 셋 이 벤트 를 command 이벤트 에 연결 하려 면 클릭 하 십시오.changeColor 방법 을 정 의 했 습 니 다.
changeColor(command){
console.log(command);// command
}
그래서 문제 가 생 겼 습 니 다.이벤트 클릭 을 통 해@theme 의 값 을 어떻게 바 꿉 니까?나 는 깊 은 생각 에 잠 겼 다.마침내 우회 적 으로 문 제 를 해결 하 는 방법 을 찾 았 다.사실 처음에는 생각 도 문 제 없 었 지만 다시 포장 해 야 했다.어떻게 포장 할 까요?우 리 는 비록 잠시 변수 값 을 제어 할 수 없 지만,우 리 는 원소 의 클래스 이름 을 제어 할 수 있다.
우 리 는 스킨 을 바 꾸 는 부분 을 less 함수 로 추출 하여 theme.less 코드 를 아래 코드 로 바 꿀 수 있다.
그 중에서@backcolor 는 배경 색 이 고@fcolor 는 글꼴 색 입 니 다.
.theme(@backcolor:#EEA2AD,@fcolor:#fff) {
.header {
color: @fcolor;
background: @backcolor;
width: 100%;
height: 2rem;
position: relative;
h4 {
width: 100%;
text-align: center;
line-height: 2rem;
font-size: 1rem;
}
.go-back {
width: 2rem;
height: 2rem;
text-align: center;
color: #fff;
font-size: 0.8rem;
float: left;
line-height: 2rem;
margin-left: 1rem;
position: absolute;
left: 0;
top: 0;
}
.header-cont {
width: 100%;
text-align: center;
line-height: 2rem;
font-size: 1rem;
color: #fff;
}
.colorBtn {
width: 2rem;
height: 2rem;
text-align: center;
color: #fff;
font-size: 0.8rem;
line-height: 2rem;
margin-right: 1rem;
position: absolute;
top: 0;
right: 0;
}
}
}
color.less 를 새로 만 들 고 다양한 피부 스타일 을 설정 합 니 다.여기 서 다른 피부 스타일 입 니 다.저 는 themea,themeb,themec...로 구성 요소 의 command 값 을 표시 합 니 다.내 가 분홍색 을 클릭 할 때,상응하는 함 수 를 호출 하여 원소 에 상응하는 클래스 이름 을 추가 합 니 다.인용 theme.less 잊 지 마 세 요.
@import url('./theme.less');
.themea{
.theme();//
}
.themeb{
.theme(blue,#fff);
}
.themec{
.theme(#111,#999);
}
스킨 을 바 꾸 는 드 롭 다운 메뉴 를 클릭 할 때 사용 하 는 changeColor 방법 은 요소 에 서로 다른 이름 을 추가 해 야 합 니 다.물론 color.less 파일 은 참조 하 십시오.
changeColor(command){
console.log(command);
document.getElementById('app').className ='theme'+command ;
}
이 부분 에서 처음에 저도 문제 가 생 겼 습 니 다.바로 제 가 처음에 이 페이지 의 스타일 만 따로 뽑 았 기 때문에 다른 구성 요소 의 머리 스타일 은 변 하지 않 았 습 니 다.제 첫 번 째 생각 은 쿠키 를 사용 하 는 것 이 었 습 니 다.어,나중에 한 페이지 인 이상 저 는 스타일 을 비교적 꼭대기 층 의 요소 에 연결 하면 되 지 않 을까요?결과,뻔 해!!!
지난번 에 바 뀐 피 부 를 기억 하려 면 localstorage 를 사 용 했 습 니 다.매번 스킨 을 바 꾸 는 주 제 를 기록 한 다음 에 페이지 가 렌 더 링 되 기 전에 이 주제 가 있 는 지 판단 하면 됩 니 다.효 과 는 다음 과 같다.
위 에서 vue+less 를 사용 하여 간단 한 스킨 케 어 기능 을 실현 하 는 예 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.