먼저, 아래 그림과 같이 실행 효과를 살펴보세요.
별 위로 마우스를 이동하면 별 앞에 있는 모든 별이 켜집니다. 마우스를 클릭하면 클릭한 별의 개수가 기록되고 앞에 있는 모든 별이 켜집니다.
1. 원리
이 프로그램의 원리는 다음과 같습니다: "ul" 레이블, 레이블 배경은 회색 별, 표시할 "ul" 레이블의 너비를 제어합니다. 별의 수. 예를 들어 별 그림의 너비가 23px인 경우 별 10개를 표시하려면 "ul"의 너비는 별 10개를 표시하는 230px입니다.
n "li" 태그, n은 표시하려는 별 수를 나타냅니다. 예를 들어 별 10개를 표시하려면 "li" 태그가 10개가 됩니다. 그런 다음 이 10개 레이블의 너비는 별 1개의 경우 23px, 별 2개의 경우 46px, 별 10개의 경우 230px입니다. 이 "li" 태그의 배경은 파란색 별입니다.
마우스로 클릭한 별표나 초기 설정을 기록하는 "li" 태그도 있습니다.
이 라벨은 모두 겹쳐져 있습니다. 별 개수를 기록하려면 클릭하여 라벨의 스택 순서를 전환하세요.
2. 소스코드
$.fn.studyplay_star=function(options,callback){
//기본 설정
var settings ={
MaxStar :20,
StarWidth :23,
CurrentStar :5,
활성화됨 :true
};
if(options) { jQuery.extend(설정, 옵션) }
var 컨테이너 =
container.css ({"position" :"relative"})
.html('
')
.find('.studyplay_starBg').width(settings .MaxStar*settings.StarWidth)
.html('
li>');
if(settings.Enabled)
{
var ListArray = ""
for(k=1;k{
ListArray =' ';
}
container.find('.studyplay_starBg').append(ListArray)
.find('.studyplay_starON').hover(function(){
$ ("#studyplay_current" ).hide();
$(this).removeClass('studyplay_starON').addClass("studyplay_starovering")
},
function(){
$( this).removeClass( 'studyplay_starovering').addClass("studyplay_starON")
$("#studyplay_current").show()
})
.click(function(){
var Studyplay_count = settings.MaxStar - $(this).css("z-index") 1;
$("#studyplay_current").width(studyplay_count*settings.StarWidth)
//콜백 함수
if (콜백 유형 == '함수') {
callback(studyplay_count);
return ;
}
})
}
}
이 플러그인에는 두 가지가 있습니다. 첫 번째 매개변수는 플러그인의 일부 기본 설정을 나타내는 옵션이고, 콜백 함수는 사용자가 선택한 별 개수를 나타내는 매개변수를 갖습니다.
3. 사용
ID가 "z"인 div에 별 5개를 표시하려면 기본적으로 별 1개가 선택되고 별 개수를 선택하는 대화 상자가 나타납니다. 다음과 같이 팝업됩니다. 코드 작성:
평가 결과를 표시하려면 활성화를 false로 설정하면 됩니다.
4. 코드 다운로드
네티즌들은 이 문제가 Firefox에 존재한다고 보고했습니다. 수정했습니다. 주된 이유는 스타일의 li 태그 높이가 정의되지 않았기 때문입니다. 이제 수정되었습니다. 감사합니다. Firefox 개정판 다운로드 주소:
star2.rar
네티즌 여러분께 진심으로 감사드립니다
세 번째 수정: 0.5점 채점 기능 추가사용 지침: 반은 0입니다. 1포인트 증가하면 1은 0.5 증가를 의미합니다.
예: $("#z").studyplay_star({MaxStar:12,CurrentStar:2,Enabled:true,Half:1},function(value){ 경고(값)});
다운로드 주소:
halfstar2.rar