1) 여러 개의 별표로 구성하는 것이 가장 좋습니다. 사용자는 별표를 마우스로 클릭하기만 하면 투표할 수 있습니다2) 투표 안 함, 투표 투표 완료 후 스타 스타일이 달라짐
3) 각 스타마다 '나쁨', '보통', '괜찮음', '좋음' 등의 프롬프트를 맞춤 설정할 수 있습니다
4) 투표가 완료되면 투표 결과가 애니메이션으로 표시되며 더 이상 투표는 허용되지 않습니다
2: 아이디어 설명
1, 3) 루프를 사용하면 최대값은 다음과 같습니다. 별 개수를 지정하고 각 루프 a> 문에 를 추가합니다. 이 하이퍼링크는 클래스를 통해 별 스타일을 지정하고, 루프가 완료된 후 마우스를 해당 위로 이동할 때 표시되는 텍스트를 지정합니다. , Jquery의 추가 기능을 통해 대상 콘텐츠 영역에 추가됩니다 2) Jquery의 addClass 및 RemoveClass를 통해 이 메소드는 별의 스타일을 동적으로 조정할 수 있습니다. 점수를 매길 때 마우스가 한 번에 별 쪽으로 이동할 때 주목할 가치가 있습니다. 특정 위치에 있는 별의 스타일을 추가해야 합니다. Jquery의 prevAll()을 사용하여 현재 위치 이전의 별을 가져온 다음 add($(this))를 사용하여 현재 위치에 있는 별의 참조를 가져올 수 있습니다. .
채점 전:



3: 구현 코드
1) 자바스크립트 코드편의상 세미 플러그인 형태로 만들었습니다. 그래도 AJAX 상호 작용을 위한 로직은 다음과 같습니다
$.fn.Rate = function (options) {
options = options || {};
var StarTip = options.StarTip || ['볼 가치가 없음', '보통', '신뢰할 수 있는 정보', '매우 도움이 됨', '훌륭한 정보']; >var ItemAmount | ItemAmount | 5;
var UnRateClassName || 'star';
var RateClassName = 'star_on'; || 'OriginalState';
var PostURL = options.PostURL ||
var DoAfterPost = options.DoAfterPost || function ()
var userID || ;
var messageID = options .messageID ||
var content = $(this)
var starList = ''
for (var i = 0; i starList = [''].join ('');
}
content.empty().append(starList).find('a').hover(function () {
$(this).prevAll().add( $(this)).addClass( RateClassName);
}, function () {
$(this).prevAll().add($(this)).removeClass(RateClassName)
}) .one('click', function () {
var Score =parseInt(content.children().index($(this))) 1;
$.ajax({
type: "POST ",
url: PostURL ,
data: "{messageID:" messageID ",userID:" userID ",Score:" 점수 "}",
contentType: "application/json; 8",
dataType: "json",
success: function (msg) {
var result = (jQuery.parseJSON(msg.d)).SuccessFlag;
DoAfterPost(result);
content.empty().removeClass();
$('').addClass(originalStateClassName).prependTo(content).animate({ 'width': 16 * 결과 'px', '불투명도': 1 }, '느림');
})
}); );
参数说明:
参数名称 | 描述 | 默认值 | 参数类型 |
StarTip | 鼠标移到星星上的文本提示 | ['不值一看', '平平无奇', '信息靠谱', '对我很有帮助', '极品信息'] | javascript数组 [tip]:数组元素个数必须要和星星个数一致 |
ItemAmount | 星星的个数 | 5 | 数字 |
UnRateClassName | 还没投票时星星的样式名称 | 'star' | 字符串 |
RateClassName | 投票中,鼠标移过时星星的样式 | 'star_on' | 字符串 |
originalStateClassName | 投票完成后,结果展示时星星的样式 | 'OriginalState' | 字符串 |
PostURL | ajax交互时,url参数 | '' | 字符串 |
DoAfterPost | 投票完成后,在投票页面使用自定义方法 | '' | 字符串 |
userID | ajax交互时用户ID,防止重复投票 | '' | 数字 |
messageID | ajax交互时文章ID | '' | 数字 |
$( '#왼쪽 테이블 tr :eq(1) td:eq(0) #StarRate').Rate({
PostURL: 'http://www.cnblogs.com/ServiceProvider/MessageInfoService.asmx/VoteMessage',
userID: UserID ,
messageID: messageID,
DoAfterPost: function (data) {
if (data > 0) {
$(voteResultContext).html(data); }
else {
ProcessNoticeShow('이미 투표하셨습니다');
}
}
})
}
.star_on{ 배경: url(../images/star.gif) 반복 없음 0 - 32px !important;}
.OriginalState{ 너비:0px;배경: url(../images/star.gif) 반복-x 0 -16px !important;opacity:0;height:16px; 디스플레이:블록;}
/// 메시지에 투표하세요. 0보다 큰 반환 값은 성공을 의미합니다.
/// /// 메시지 ID
/// UserID/// Score
///
[WebMethod]
공개 문자열 VoteMessage(int messageID, int userID ,int Score)
{
SQLCMD = new SqlCommand("MessageInfo_Add_VoteUsefull_MessageIDUserID", SQLConnect);
SQLCMD.CommandType = CommandType.StoredProcedure;
SQLCMD.Parameters.Add(new SqlParameter("@messageID",SqlDbType.Int)); SQLCMD.Parameters["@messageID"].값 = messageID;
SQLCMD.Parameters.Add(new SqlParameter("@userID",SqlDbType.Int))
SQLCMD.Parameters["@userID"]. Value = userID;
SQLCMD.Parameters .Add(new SqlParameter("@Score", SqlDbType.Int))
SQLCMD.Parameters["@Score"].Value = Score
float SuccessFlag; basicSQLAccess.ExeScalarReturnValueFloat(SQLCMD);
Hashtable HTFlag = new Hashtable();
HTFlag.Add("SuccessFlag", SuccessFlag)
return JsonConvert.SerializeObject(HTFlag);
JsonConvert.SerializeObject 정보 프런트 엔드 Jquery와의 상호 작용 및 콘텐츠에 대한 소개는 이전 기사
4:
다운로드 CSS, JS 및 별 이미지가 포함된 압축 패키지
다운로드하려면 클릭하세요

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
