> 웹 프론트엔드 > JS 튜토리얼 > jQuery를 사용하여 TabPanel 효과 만들기 code_jquery

jQuery를 사용하여 TabPanel 효과 만들기 code_jquery

WBOY
풀어 주다: 2016-05-16 18:26:40
원래의
1342명이 탐색했습니다.

예를 들어 많은 양의 정보를 볼 때 웹 페이지에서 다중 창 프레임워크를 사용할 때 사용됩니다. 요즘 인터넷에는 idtabs라는 jquery 기반 탭 컨트롤이 많이 있습니다. 이전에 사용해 본 방법은 비교적 간단하고 실용적이며 유연성도 더 뛰어납니다. 하지만 복잡한 상황에서는 더 많은 코딩이 필요하므로 너무 간단합니다. jquery UI에도 탭 컨트롤이 있는데(한 번도 사용해본 적 없고, jquery ui에는 별 관심이 없습니다), 최근 좀 유행하고 있는 easyui의 탭 컨트롤이 javaeye에서 처음으로 눈에 띄었습니다. , 인터페이스가 꽤 예쁘네요. 이전에 오픈소스가 아니어서 팔로우를 안했는데(최근에 오픈소스가 된거 같네요. 며칠전에 다운받아서 살펴봤는데요. 코딩스타일은 .. 프로토타입과 비슷하고 jquery의 그림자가 보이지 않습니다. 왜 jquery easyui라고 불리는지 모르겠습니다. 하하) 깊이 연구하지 않았고 다른 평가를 하기가 쉽지 않기 때문입니다. 그렇다면, 여러 가지 이유로 다시 주제로 돌아가서 우리 스스로 개발하는 것에 대해 생각해야 합니다. 그럼 이번 글은 여기까지입니다. 먼저 효과를 살펴보겠습니다.

아래 사진은 단일 웹페이지 멀티 윈도우 프레임을 렌더링한 것입니다

jQuery를 사용하여 TabPanel 효과 만들기 code_jquery

아래 사진은 기사 마지막 부분에 제공되는 호출 예시의 스크린샷입니다.

jQuery를 사용하여 TabPanel 효과 만들기 code_jquery

ExtJ를 사용하면 효과를 볼 수 있습니다. 실제로 CSS는 기본적으로 CSS의 직접적인 복사본입니다. 물론 실제 사용해보면 다들 자기 멋대로 볼 수 있을 것 같아요

먼저 HTML부터 시작하겠습니다

참고: 먼저 제어한다는 생각은 항상 HTML 구조를 먼저 결정한 다음 스타일을 결정하고 마지막으로 js에서 구현하는 이벤트 메서드를 결정하는 것입니다.

사실 그림을 보면 기본적으로 탭 컨트롤이 HTML의 두 부분으로 구성되어 있음을 확인할 수 있습니다. 하나는 탭 탭을 배치하는 데 사용되는 헤더이고 다른 하나는 컨테이너인 본문입니다. 내용을 위해. 그런 다음 두 개의 Div 컨테이너가 있습니다. 탭 컨트롤은 헤더와 본문의 두 부분으로 나뉩니다.

헤더 부분에는 여러 개의 탭이 포함되어 있어 울리의 협력을 생각하기 쉽습니다. 헤더의 실제 HTML 구조를 살펴보겠습니다

jQuery를 사용하여 TabPanel 효과 만들기 code_jquery

li를 탭으로 전달하면 첫 번째 a는 닫기 버튼이고 두 번째 a는 실제 콘텐츠이며 왼쪽과 오른쪽의 배경 이미지 설정은 중첩된 태그를 통해 이루어집니다(이 접근 방식이 더 일반적임). 물론 좋은 결과를 얻으려면 여전히 CSS 지원이 필요합니다. CSS에 대한 지식이 있어야 합니다.

본문의 구조는 더 간단합니다. 즉, div 내에 div가 중첩되어 있을 뿐입니다.

두 번째 CSS 스타일시트

CSS는 EXTJS를 카피한 것이기 때문에 자세히 소개하지는 않겠습니다. 코드 다운로드에서 실제 코드를 확인하실 수 있습니다. 궁금한 점이 있으면 소통하세요.

셋째: JS 작성 시작

기존 규칙은 약 500줄의 코드로 구성된 완전한 JS 코드로 시작하는 것입니다. 사실 저는 줄을 바꾸는 데 더 부지런하며 실제로 코드의 양은 상대적으로 적습니다.

코드 복사 코드는 다음과 같습니다.

; (function ($) {
$.fn.tabpanel =function(option){
var dfop ={
items:[], //选项卡数据项 {id,text,classes,disabled,closeable,content,url,cuscall,onactive}
width:500,
height:400,
scrollwidth:100,//如果存在滚动条,点击按钮次每次滚动的距离
autoscroll:true //当选项卡宽度大于容器时自动添加滚动按钮
};
var headerheight=28;
$.extend(dfop, option);
var me =$(this).addClass("x-tab-panel").width(dfop.width);
innerwidth = dfop.width-2;
//构建Tab的Html
var tcs= dfop.autoscroll?"x-tab-scrolling-top":"";
var header = $("
");
var stripwrap = $("
");
var scrollerright = $("