머리말:
최근에는 특히 js의 플러그인 캡슐화에 관심이 많습니다. 현재 기술로는 아직 js를 완전히 캡슐화하는 것이 어렵기 때문에 jQuery 기반으로 작은 플러그인을 캡슐화하고 이를 기반으로 개발했습니다. 객체 수준. 전역 메서드를 추가하지 않습니다. 고급 구문이 거의 없습니다. 개체 인스턴스 자체를 반환하는 return: foreach() 메서드와 매개 변수 개체의 속성을 확장하는 확장() 함수도 조정 후 개체 연결을 용이하게 하기 위한 것입니다. 내 방법.
플러그인 패키지 다운로드 주소: 다운로드하려면 여기를 클릭하세요
플러그인 이름: Dynamic Cloud Tag
플러그인 기능:
지정된 블록 수준 요소 내에서 태그를 동적으로 생성
라벨의 높이, 너비, 위치, 레이어 수, 배경색을 임의로 제어 가능
라벨이 페이드 인/아웃되며 초기 투명도를 변경할 수 있습니다
라벨 생성 속도, 이동 속도 조절 가능(타이머)
라벨 이동의 단계 크기를 제어할 수 있습니다(각 주기에서 이동하는 거리)
마우스를 올리면 투명도가 최대화되고 레이어 수가 가장 많은 상태로 애니메이션이 중지됩니다. 마우스가 떠나면 이전 상태가 복원됩니다.
문제 발생:
현재 플러그인은 정상적으로 실행이 되지만, 브라우저 탭을 전환하여 플러그인 페이지가 표시되지 않고, 잠시 후 다시 전환하면 렉이 발생할지는 모르겠습니다. 아직 상황은 어떤지 아시는분 조언 부탁드립니다. 최적화해야 할 부분이 많네요. 좋은 아이디어 있으면 바로 수정하겠습니다. 적시에.
애니메이션 효과:
칸 : gif 이미지가 좀 클 수도 있고 좀 지나면 움직일 것 같아요. 인내심을 가지세요
JS 코드 조각:
(함수($){
$.fn.activiTag = 기능(옵션) {
opts = $.extend({
move_step:2, // 요소 이동 단계 크기--px
move_speed:40, // 요소 이동 속도--ms
init_speed:1000,//요소 생성 속도--ms
> min_opacity:0, max_grain: 10, // 최대 입자 크기
// 라벨 배열 > a_List: ["요소를 추가하세요","Spring Jpa 자세한 설명","javamailmail"], // 태그 문자열 배열
// 배경색 배열
Color_list: ['#cd2626', '#8b4513', '#696969', '#ff8c00', '#6495ed'] // 태그 색상 배열
},opts||{});
var aTag = $(this); // 현재 컨테이너 객체
var T_width = aTag.width(), T_height = aTag.height() // 컨테이너 높이, 너비
return this.each(function(){
~ 함수 settatagcss () {// 해당 CSS 설정
aTag.css({position:'relative',overflow:'hidden'});
}
~ function getRandomNum(Min, Max){ // 두 간격 내에서 난수 가져오기
Min = 새 숫자(Min);Max = 새 숫자(Max);
var 범위 = 최대 - 최소 1;
var Rand = Math.random();
Min Math.floor(Rand * Range)를 반환합니다.
}
~ 함수 getrandomxy (num) {//양수/음수 매개변수를 무작위로 반환
num = 새 숫자(num); If(Math.random() num = -num;
반환 번호
}
~ /**
* 컨테이너 너비의 1/3 너비로 태그를 무작위로 생성한 후 자체 기준으로 너비의 1/5
* 높이는 너비의 1/3, 그 다음은 1/3
*/
함수 createATag() {
var i = getRandomNum(0,opts.a_List.length-1);
var a = $(opts.a_List[i]); aTag.append(a);
반환;
}
~ /**태그 CSS 스타일 설정 **/
함수 setCss(a) {
var w = Math.ceil(T_width/3) getRandomXY(T_width/60);
var h = Math.ceil(w/3) getRandomXY(w/36) // 행 높이
var zIndex = Math.ceil(Math.random()*400); var rdmOpcy = getRandomNum(new Number(opts.min_opacity),0);
// 줄 높이, 레이어 수, 투명도
a.css({
불투명도:rdmOpcy,
zIndex: zIndex,
lineHeight:h 'px',
위치: '절대',
textDecoration:'없음',
textAlign:'center',
borderRadius: '3px',
색상:'#FFFFFF',
공백: 'nowrap',
});
반환;
}
~ /**컨테이너를 기준으로 라벨의 초기 위치 계산(X_Y 좌표) **/
함수 setXY(a) {
var x = getRandomNum(0,(T_width-a.width()));
var y = getRandomNum(0,T_height/10);
a.css({왼쪽:x 'px', 아래쪽:y 'px'});
반환;
}
~ /**임의의 배경색 설정 **/
함수 setColor(a) {
var i = Math.ceil(Math.random()*opts.color_List.length -1);
a.css({배경색상:opts.color_List[i]})
}
~ /**생성자 항목 **/
함수 구성() {
var a = createATag();
setCss(a); setColor(a) // 색상
setXY(a); 반환;
}
~ /**애니메이션 타이머 기능 **/
함수 interVal(a,s_opcy,botm,n,space,s) {
var opcy = a.css('opacity') // 투명도
var botm_ = a.css('bottom').replace('px','') // 실시간 바닥 거리
var opcy_ =parseFloat(new Number(a.css('opacity'))) s_opcy; var _opcy_ = parsFloat(new Number(a.css('opacity'))) - s_opcy; var fall = botm_ - botm // 이동 거리
botm_ = 새 번호(botm_) 새 번호(opts.move_step);
a.css({
표시: '차단',
하단: botm_,
});
If(fall {A.CSS({OPACITY: OPCY_})}
그렇지 않으면 (2*n & lt; fall)
~ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ~ If (botm_ >= space)
{
~ ~ a.remove();
}
}
~ 함수 init() {
If(aTag.children('a').length >= new Number(opts.max_grain))
반품
var a = 구성();
var opcy = a.css('opacity') // 투명도
var zInx = a.css('zIndex'); var botm = a.css('bottom').replace('px','') // 바닥까지의 초기 거리
var space = T_height - a.height() - a.css('bottom').replace('px','') // 이동할 거리
var n = 공백/3; var 단계 = 1-opcy; var sec = n/opts.move_step*opts.move_speed/1000; // 거리/단일 단계 길이 * 단일 단계 길이 초 = 필요한 초 수
var s_opcy = opts.move_speed/1000/sec * step; // 각 루프에서 변환해야 하는 투명도 값
var speed_ = getRandomNum(new Number(opts.move_speed)-30,new Number(opts.move_speed) 30);
Var Curropcy; // 마우스가 움직일 때 투명도를 기록합니다
// console.log(opts.move_speed '....' speed_)
/**요소 이동 루프 **/
var s = setInterval(function(){
interVal(a,s_opcy,botm,n,space,s);
}, 속도_)
A.Mouseover(함수() {//마우스 이동
currOpcy = a.css('opacity');
~ ~ $(this).css({
zIndex: 401,
불투명도: 1
});
});
a.mouseout(function(){ // 마우스 아웃
$(this).css({
zIndex: zInx,
불투명도: currOpcy
});
s= setInterval(function(){
interVal(a,s_opcy,botm,n,space,s);
},속도_);
});
}
setATagCss();
setInterval(init,opts.init_speed);
});
}
})(jQuery)
HTML:
코드 복사
ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
http://www.w3.org/1999/xhtml">
"type="text/javascript" charset="utf-8">
$(함수(){
$('#tag').activiTag({});
});
#태그{
테두리:1px 점선 회색;
너비:250px;
높이:250px;
상단: 50px;
왼쪽: 300px;
}
와{
패딩:0px 3px;
글꼴 크기:12px;
공백: nowrap;
디스플레이:없음;
}
스타일>
머리>
본문>

实现方法: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内部的开始处增加元素。

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

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

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를 무료로 생성하십시오.

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

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

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
