이 프로젝트의 데모 웹사이트 http://wijmo.com/Wijmo-Open/samples/
/*
* wijprogressbar Widget. V1.0
*
* Copyright (c) Componentone Inc.
*
* Depends:
* Jquery-1.4.2.js
* jquery.ui.core.js
* jquery.ui.widget.js
*
*Optional dependence for effect settings:
* jquery.effects.core.js
* jquery.effects.blind.js
* jquery.effects.bounce.js
* jquery.effects.clip.js
* jquery.effects.drop.js
* jquery.effects.explode.js
* jquery.effects.fold.js
* jquery.effects.hightlight.js
* jquery.effects.pulsate.js
* jquery.effects.scale.js
* jquery.effects.shake.js
* jquery.effects.slide.js
* jquery.effects.transfer.js
* HTML:
*
*/
(함수 ($) {
$.widget("ui.wijprogressbar", $.ui.progressbar, {
옵션: {
///
///진행률 표시줄의 라벨 정렬 값은 "east", "west", "center", "north", "south" 또는 "running"이어야 합니다.
///기본값: "center".
///유형:String.
///코드 샘플:$('.selector').wijprogressbar('option','labelAlign','center'). //
labelAlign: "center",
///
///진행률 표시줄의 값, 유형은 숫자여야 합니다.
// /기본값:0.
///유형:숫자
///코드 샘플:$('.selector').wijprogressbar('option','value',60)// /
maxValue: 100,
///
///진행률 표시줄의 최소값, 유형은 숫자여야 합니다.
///기본값 :0.
///유형:숫자.
///코드 샘플:$('.selector').wijprogressbar('option','minValue',0)///< ;/summary>
minValue: 0,
///
///진행률 표시줄의 채우기 방향. 값은 "동쪽", "서쪽", "북쪽"이어야 합니다. 또는 "남쪽".
///기본값: "동쪽".
///유형:문자열.
///코드 샘플:$('.selector').wijprogressbar('option','fillDirection','east').
///요약>
fillDirection: "동쪽",
///
///진행률 표시줄의 방향입니다. 값은 '수평' 또는 '수직'이어야 합니다.
///기본값: "가로".
///유형:문자열.
///코드 샘플:$('selector').wijprogressbar('option','orientation','horizontal').
///요약>
///방향: "가로",
///
///라벨 텍스트의 형식을 설정합니다. 사용 가능한 형식은 다음과 같습니다.
///{0} 또는 {ProgressValue}는 현재 진행 값을 나타냅니다.
///{1} 또는 {PercentProgress}는 진행률 표시줄의 현재 백분율을 나타냅니다.
///{2} 또는 {RemainingProgress}는 진행률 표시줄의 남은 진행률을 표현합니다.
///{3} 또는 {PercentageRemaining}은 진행률 표시줄의 남은 비율을 표현합니다.
///{4} 또는 {Min}은 진행률 표시줄의 최소 값을 표현합니다.
///{5} 또는 {Max}는 진행률 표시줄의 최대 값을 표현합니다.
///기본값:"{1}%".
///유형:문자열.
///코드 샘플:$('.selector').wijprogressbar('option','labelFormatString','{0}%').
///요약>
labelFormatString: "{1}%",
///
///진행률 표시줄의 도구 설명 형식을 설정합니다. labelFormatString과 같은 형식 표현입니다.
///기본값:"{1}%".
///유형:문자열.
///코드 샘플:$('.selector').wijprogressbar('option','toolTipFormatString','{1}%').
///요약>
toolTipFormatString: "{1}%",
///
///진행 표시줄 표시기의 증가분입니다.
///기본값:1.
///유형:숫자.
///요약>
///코드 샘플:$('.selector').wijprogressbar('option','indicatorIncrement',10).
indicatorIncrement: 1,
///
///지시자의 이미지 URL입니다.
///기본값:"".
///유형:문자열.
///코드 샘플:$('.selector').wijprogressbar('option','indicatorImage','images/abc.png').
///요약>
indicatorImage: "",
///
///진행률 표시줄 애니메이션의 지연입니다.
///기본값:0.
///유형:숫자.
///코드 샘플:$('.selector').wijprogressbar('option',
///
animationDelay: 0,
///
///Default:"{animated:'progress',duration:500}"
///Type:Options. ///코드 샘플:$('.selector').wijprogressbar('option','animationOptions',{animated:'progress',duration:600})
///
animated: 'progress',
duration: 500
}
},
//옵션을 설정할 때 이 메서드를 트리거합니다.
_setOption: function(key. , value) {
var val, self = this;
switch(key) {
case "value":
val =parseInt(value)
self.options[key] = val;
self._refreshValue(val);
break;
case "maxValue":
case "minValue":
self.options[ key] = val;
self[key === "maxValue" ? "max" : "min"] = val;
self._refreshValue()
case "labelFormatString" :
case "toolTipFormatString":
self.options[key] = value
self._refreshValue();
//$.Widget.prototype._setOption.apply(this, 인수);
휴식;
case "orientation":
case "fillDirection":
case "labelAlign":
case "indicatorImage":
self.options[key] = value;
self._initElements();
self._refreshValue();
//$.Widget.prototype._setOption.apply(this, 인수);
휴식;
case "indicatorIncrement":
value = (value == 0 ? 1 : value);
self.options[키] = 값;
self._initElements();
self._refreshValue();
휴식;
기본값: 중단;
}
$.Widget.prototype._setOption.apply(self, 인수);
},
///위젯 생성
_create: function () {
var self = this;
self.min = self.options.minValue;
self.max = self.options.maxValue;
self.element.addClass("ui-wijprogressbar");
$.ui.progressbar.prototype._create.apply(self, 인수);
self.label = $("").addClass("ui-progressbar-label ui-corner-left").appendTo(self.valueDiv);
self._initElements();
self._isInit = true;
self._refreshValue();
},
///프레스바 이벤트를 트리거합니다.
_triggerEvent: 함수(eventName, oldValue, newValue, cancel) {
var ea = $.Event(eventName);
ea.data = {
oldValue: oldValue,
newValue: newValue,
취소: 취소
};
this._trigger(eventName, ea);
ea.data.cancel을 반환합니다.
},
//진행률 값을 새로 고칩니다.
_refreshValue: 함수() {
var self = this;
if (!self._isInit) {
return;
}
var value = self.value();
var 퍼센트 = (값 - self.min) / (self.max - self.min) * 100;
var o = self.options;
var cancel = self._triggerEvent("beforeProgressChanging", self.element.attr("aria-valuenow"), value, false);
if (취소) {
return;
}
self.valueDiv.css({
너비: "",
높이: ""
});
// 애니메이션이 있는 경우.
if (o.animationOptions.animated && o.animationOptions.duration > 0) {
setTimeout($.proxy(function () {
var o = self.options.animationOptions;
var animateOptions = {
content: self.valueDiv,
complete: $.proxy(function () {
self._triggerEvent("progressChanged", self.element.attr("aria-valuenow"), value , false);
}, self),
단계: $.proxy(function (ovalue) {
self._performAnimating(ovalue);
}, self),
processValue: 퍼센트
}
var animations = $.ui.wijprogressbar.animations;
var Duration = o.duration;
var easing = o.animated
if(easing && !animations[easing] ) {
easing = "진행";
}
if (!animations[easing]) {
animations[easing] = function (options) {
this.progress(options, {
easing,
기간: 기간 || 1000
})
}
}
animateOptions, self.options.animationOptions);
}, self), o.animationDelay);
}
else {
//progressChanged 이벤트를 트리거합니다.
var oldValue = self.element.attr("aria-valuenow");
self._refreshProgress(퍼센트);
self._triggerEvent("progressChanged", oldValue, value, false);
}
},
///진행 표시줄의 라벨 위치를 설정합니다.
_setLabelSide: function () {
var self = this;
var fillDirection = self.options.fillDirection;
var labelAlign = self.options.labelAlign;
if (self._isHorizontal()) {
if (labelAlign === "west" || labelAlign === "east" || labelAlign === "center") {
self.label .css("너비", self.element.width() 'px');
}
else
if (labelAlign === "running") {
self.label.css("width", "auto");
}
else {
self.element.css("line-height", "normal");
self.valueDiv.css("line-height", "normal");
self.label.css("height", labelAlign === "north" ? self.element.height() 'px' : "auto");
}
}
else {
if (labelAlign === "west" || labelAlign === "east" || labelAlign === "center") {
self. label.css({ "line-height": self.element.height() 'px', "width": self.element.width() 'px' });
}
else
if (labelAlign === "running") {
self.label.css({ "height": "auto", "width": self.element.width( ) 'px' });
}
else {
self.element.css("line-height", "normal");
self.valueDiv.css("line-height", "normal");
self.label.css("height", labelAlign === "north" ? self.element.height() 'px' : "auto");
}
}
},
///진행률 표시줄의 진행 방향을 가져옵니다.
_isHorizontal: function () {
return this.options.fillDirection === "west" || this.options.fillDirection === "동쪽";
},
///진행 시작
startTask: function () {
///
if ($(":animated", this.element).length == 0) {
var value = this.value();
this._refreshValue(값);
}
},
///진행 중지
stopTask: function () {
///
this.valueDiv.stop();
},
//진행률 표시줄 초기화
_initElements: function () {
var self = this;
var o = self.options;
self.element.removeClass("ui-wijprogressbar-west ui-wijprogressbar-east ui-wijprogressbar-north ui-wijprogressbar-south").addClass("ui-wijprogressbar-" o.fillDirection);
var height = self.element.height();
self.valueDiv.css("line-height", "");
self.label.removeClass("lb_west lb_east lb_south lb_north lb_center lb_running").addClass("lb_" o.labelAlign)
.css("line-height", "").css({
왼쪽: "",
오른쪽: "",
상단: "",
하단: ""
});
if (self._isHorizontal()) {
self.valueDiv.height(height)
.css("line-height", height "px");
}
else {
self.valueDiv.width(self.element.width());
}
self._setLabelSide();
if (self.options.indicatorImage !== "") {
self.valueDiv.css("Background", "transparent url(" self.options.indicatorImage ") 반복 고정");
}
},
///진행 새로고침
_refreshProgress: function (value) {
var self = this;
var ea = new $.Event('progressChanging');
var nowValue = value * (self.max - self.min) / 100 self.min;
var o = self.options;
var cancel = self._triggerEvent("progressChanging", self.element.attr("aria-valuenow"), nowValue, false);
if (취소) {
return;
}
if (self._isHorizontal()) {
self.valueDiv.toggleClass(o.fillDirection === "east" ? "ui-corner-right" : "ui-corner-left" , 값 === self.max).width(value "%");
}
else {
self.valueDiv.toggleClass(o.fillDirection === "south" ? "ui-corner-bottom" : "ui-corner-top", value === self. 최대).높이(값 "%");
}
self.element.attr("aria-valuenow", nowValue);
var txt = self._getFormatString(o.labelFormatString, value);
self._setLabelsText(txt);
var _tooTip = self._getFormatString(o.toolTipFormatString, value);
self.element.attr("title", _tooTip);
},
///진행 애니메이션을 재생합니다.
_performAnimating: 함수(obj) {
var self = this;
var len = Math.floor(obj / self.options.indicatorIncrement);
obj = len * self.options.indicatorIncrement;
var o = self.options;
self._refreshProgress(obj);
if (o.labelAlign === "실행 중") {
if (self._isHorizontal()) {
var eleWidth = self.element.width();
var labelWidth = self.label.outerWidth();
var ProgressWidth = self.valueDiv.outerWidth();
var left = eleWidth === ProgressWidth ? eleWidth - labelWidth : obj * eleWidth / 100 - labelWidth labelWidth * (eleWidth - ProgressWidth) / eleWidth;
self.label.css(o.fillDirection === "동쪽" ? "왼쪽" : "오른쪽", 왼쪽);
}
else {
var eleHeight = self.element.height();
var labelHeight = self.label.outerHeight();
var ProgressHeight = self.valueDiv.outerHeight();
var top = eleHeight === ProgressHeight ? eleHeight - labelHeight : obj * eleHeight / 100 - labelHeight labelHeight * (eleHeight - ProgressHeight) / eleHeight;
self.label.css(o.fillDirection === "south" ? "top" : "bottom", top);
}
}
},
//set the label'text
_setLabelsText: function (text) {
if (!this._isHorizontal() && this.options.labelAlign === "rightOrBottom") {
this.label.html('' 텍스트 '');
반환;
}
this.label.html(text);
},
//텍스트 서식 지정
_getFormatString: function (format, val) {
var self = this;
var processValue = parsInt(self.element.attr("aria-valuenow"));
var 잔여Process = self.max - processValue
var PercentProgress = val;
var 백분율Remaining = 100 - val;
var r = /{0}/g;
format = format.replace(r, processValue.toString());
r = /{ProgressValue}/g;
format = format.replace(r, processValue.toString());
r = /{1}/g;
format = format.replace(r, PercentProgress.toString());
r = /{PercentProgress}/g;
format = format.replace(r, PercentProgress.toString());
r = /{2}/g;
format = format.replace(r, 남은Process.toString());
r = /{남은 진행률}/g;
format = format.replace(r, 남은Process.toString());
r = /{3}/g;
format = format.replace(r, PercentageRemaining.toString());
r = /{남은 백분율}/g;
format = format.replace(r, PercentageRemaining.toString());
r = /{4}/g;
format = format.replace(r, self.min);
r = /{최소}/g;
format = format.replace(r, self.min);
r = /{5}/g;
format = format.replace(r, self.max);
r = /{최대}/g;
format = format.replace(r, self.max);
반환 형식;
},
///위젯을 파괴합니다.
destroy: function () {
this.element.empty()
this.element.removeClass("ui-wijprogressbar ui-widget ui-widget -content ui-corner-all ui-wijprogressbar-h").removeAttr("title");
$.Widget.prototype.destroy.apply(this, 인수);
}
});
///진행률 표시줄 애니메이션. 사용자가 맞춤 애니메이션을 작성하려면 애니메이션 옵션을 재정의할 수 있습니다. 그리고 애니메이션을 옵션 키로 설정하세요.
$.extend($.ui.wijprogressbar, {
animations: {
진행: 함수(옵션, 추가) {
options = $.extend({
easing: "swing",
기간: 1000
}, 옵션, 추가);
options.content.stop(true, true).animate({
widthvalue: options.processValue
}, options)
}
}
}); })(jQuery);
이 진행률 표시줄 자체는 jQuery ui 진행률 표시줄에서 상속되었습니다. 오픈소스이기 때문에 좋은 아이디어만 있으면 필요한 기능을 추가할 수 있습니다.

JavaScript는 웹 페이지의 상호 작용과 역학을 향상시키기 때문에 현대 웹 사이트의 핵심입니다. 1) 페이지를 새로 고치지 않고 콘텐츠를 변경할 수 있습니다. 2) Domapi를 통해 웹 페이지 조작, 3) 애니메이션 및 드래그 앤 드롭과 같은 복잡한 대화식 효과를 지원합니다. 4) 성능 및 모범 사례를 최적화하여 사용자 경험을 향상시킵니다.

C 및 JavaScript는 WebAssembly를 통한 상호 운용성을 달성합니다. 1) C 코드는 WebAssembly 모듈로 컴파일되어 컴퓨팅 전력을 향상시키기 위해 JavaScript 환경에 도입됩니다. 2) 게임 개발에서 C는 물리 엔진 및 그래픽 렌더링을 처리하며 JavaScript는 게임 로직 및 사용자 인터페이스를 담당합니다.

JavaScript는 웹 사이트, 모바일 응용 프로그램, 데스크탑 응용 프로그램 및 서버 측 프로그래밍에서 널리 사용됩니다. 1) 웹 사이트 개발에서 JavaScript는 HTML 및 CSS와 함께 DOM을 운영하여 동적 효과를 달성하고 jQuery 및 React와 같은 프레임 워크를 지원합니다. 2) 반응 및 이온 성을 통해 JavaScript는 크로스 플랫폼 모바일 애플리케이션을 개발하는 데 사용됩니다. 3) 전자 프레임 워크를 사용하면 JavaScript가 데스크탑 애플리케이션을 구축 할 수 있습니다. 4) node.js는 JavaScript가 서버 측에서 실행되도록하고 동시 요청이 높은 높은 요청을 지원합니다.

Python은 데이터 과학 및 자동화에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 데이터 처리 및 모델링을 위해 Numpy 및 Pandas와 같은 라이브러리를 사용하여 데이터 과학 및 기계 학습에서 잘 수행됩니다. 2. 파이썬은 간결하고 자동화 및 스크립팅이 효율적입니다. 3. JavaScript는 프론트 엔드 개발에 없어서는 안될 것이며 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축하는 데 사용됩니다. 4. JavaScript는 Node.js를 통해 백엔드 개발에 역할을하며 전체 스택 개발을 지원합니다.

C와 C는 주로 통역사와 JIT 컴파일러를 구현하는 데 사용되는 JavaScript 엔진에서 중요한 역할을합니다. 1) C는 JavaScript 소스 코드를 구문 분석하고 추상 구문 트리를 생성하는 데 사용됩니다. 2) C는 바이트 코드 생성 및 실행을 담당합니다. 3) C는 JIT 컴파일러를 구현하고 런타임에 핫스팟 코드를 최적화하고 컴파일하며 JavaScript의 실행 효율을 크게 향상시킵니다.

실제 세계에서 JavaScript의 응용 프로그램에는 프론트 엔드 및 백엔드 개발이 포함됩니다. 1) DOM 운영 및 이벤트 처리와 관련된 TODO 목록 응용 프로그램을 구축하여 프론트 엔드 애플리케이션을 표시합니다. 2) Node.js를 통해 RESTFULAPI를 구축하고 Express를 통해 백엔드 응용 프로그램을 시연하십시오.

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

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

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

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