>웹 프론트엔드 >프런트엔드 Q&A >반응에서 별 5개 평가를 달성하는 방법

반응에서 별 5개 평가를 달성하는 방법

藏色散人
藏色散人원래의
2023-01-03 10:46:452164검색

React에서 별 5개 평가를 구현하는 방법: 1. 5개의 요소를 설정하고 점수에 따라 다양한 스타일을 부여하고 "starNum:['star0','star0','star0','star0과 같은 코드를 구현합니다. ','star0'] ..."; 2. 두 요소를 설정하고 점수에 따라 하위 요소의 너비를 설정하여 상위 요소의 배경 이미지를 차단합니다. 구현 코드는 "let num=(Math .round(this.props.star)/2).. ."

반응에서 별 5개 평가를 달성하는 방법

이 튜토리얼의 운영 환경: Windows 10 시스템, 반응 버전 18.0.0, Dell G3 컴퓨터.

React에서 별 5개 리뷰를 구현하는 방법

React 구성 요소 캡슐화: 별 5개 리뷰 표시

3.7 및 7.8과 같은 평점을 기반으로 별 5개 리뷰를 표시하는 두 가지 간단한 방법

React로 캡슐화 그게 다입니다

첫 번째 아이디어: 다섯 개의 요소를 설정하고 점수에 따라 다양한 스타일을 제공합니다. 두 번째 아이디어: 두 개의 요소를 설정하면 상위 요소에 무색의 다섯개 별이 부여되고, 등급은 상위 요소의 배경 이미지를 덮도록 하위 요소의 너비를 설정합니다

방법 1: 다양한 등급에 따라 다른 CSS 스타일을 설정합니다

세 가지 배경 이미지: star0.png, star1.png, star2.png

1) CSS 코드: 필요에 따라 스타일을 수정할 수 있습니다.

.star{
    display: inline-block;
}.star>span{
    display: inline-block;
    width: 10px;
    height: 10px;
    background-size: 10px 10px;
}.star0{
    background-image: url(img/star0.png);
}.star1{
    background-image: url(img/star1.png);
}.star2{
    background-image: url(img/star2.png);
}

2) 컴포넌트 js 코드:

import React,{Component} from 'react'class Star extends Component{
    constructor(props){
        super(props);        this.state={
            starNum:['star0','star0','star0','star0','star0'] //设置默认背景图        }
    }
    componentDidMount(){        this.getStar(Math.round(this.props.star)/2+1); //将传过来的类似7.3数字进行四舍五入再除2,得到的是类似2,3.5,6这种值    }
    getStar(num){
        let newStar = this.state.starNum.map((item)=>{ //当num=3.5时遍历后newStar数组变成['star2','star2','star2','star1','star0','star0']
            --num;            return num>=1?'star2':((num>0)?'star1':'star0'); //两次三目运算        })        this.setState({
            starNum:newStar  //设置state为遍历后的新数组        })
    }
    render(){        return (<span className="star">
            {                this.state.starNum.map((item, index)=>{                    return <span className={item} key={index}></span>                })
            }        </span>)    }
}
export default Star;

3) 다른 구성 요소에서 Star 구성 요소를 호출하고 매개 변수를 전달합니다.

<Star star={4} />     页面显示为

<em id="__mceDel"><em id="__mceDel"><Star star={7.3} /></em></em> 페이지는 로 표시됩니다.

페이지는 다음과 같이 표시됩니다. 이 방법에는 소량의 계산이 필요합니다.

방법 2: 하위 요소의 너비를 사용하여 상위 요소 차단

상위 요소의 배경 이미지는 무색의 다섯개 별이고, 하위 요소의 배경 이미지는 색칠된 다섯개 별

배경 이미지:

css 코드:

.newstar ul{
    background-image: url(component/img/ico.png);
}.newstar ul li{
    height: 60px;
    background: url(component/img/ico.png) left -62px;
}

구성요소 js 코드:

import React,{Component} from 'react'class Star extends Component{
    render(){
        let num=(Math.round(this.props.star)/2)*20+'%'; //根据评分计算子元素的宽度
        return (<div className="newstar">
            <ul>
                <li style={{width:num}}></li>
            </ul>
        </div>)    }
}
export default Star;

3) 호출 및 전달 매개변수 <별별={4} /> ; 페이지

로 표시됩니다:

페이지는 다음으로 표시됩니다:

🎜🎜이 방법을 사용하려면 상위 및 하위 요소의 배경 이미지가 정확히 일치해야 합니다. 동일한 크기와 다섯개 별의 수에 해당하는 하위 요소의 너비를 정확하게 계산해야 합니다🎜🎜추천 학습: "🎜 반응 비디오 튜토리얼🎜》🎜

위 내용은 반응에서 별 5개 평가를 달성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.