ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery を使用して TabPanel エフェクトを作成する code_jquery

jQuery を使用して TabPanel エフェクトを作成する code_jquery

WBOY
WBOYオリジナル
2016-05-16 18:26:401307ブラウズ

たとえば、大量の情報を表示する場合、Web ページでマルチウィンドウ フレームワークを使用するときに使用されます。現在、インターネット上には、idtabs が非常に多くあります。私が以前に使用したものは比較的シンプルで実用的で、より柔軟でもありますが、複雑な状況ではより多くのコーディングが必要になり、単純すぎます。 jquery UI のタブ コントロールもあります (使ったことはありません。jquery ui にはあまり興味がありません)。最近少し人気のある easyui のタブ コントロールは、javaeye で初めて見られました。 、インターフェイスは非常に美しいです。これまでオープンソース化されていなかったため、フォローしていませんでした(最近オープンソース化されたようです。数日前にダウンロードして見ました。コーディングスタイルはプロトタイプに少し似ていて、jquery の影が見えません。なぜ jquery easyui と呼ばれているのかわかりません (笑)。詳しくは勉強していないので、他の評価を行うのは簡単ではありません。)そうは言っても、本題に戻りましょう。さまざまな理由から、自分たちで開発することを考えなければなりません。この記事では、まずその効果を見てみましょう。

下の図は、単一の Web ページのマルチウィンドウ フレームのレンダリングです

jQuery を使用して TabPanel エフェクトを作成する code_jquery

下の写真は、記事の最後に記載されている呼び出し例のスクリーンショットです。

jQuery を使用して TabPanel エフェクトを作成する code_jquery

ExtJ を使用した効果がわかります。実際、CSS は基本的に CSS の直接コピーです。もちろん、実際に使ってみると、それぞれの見方ができると思います

まずは HTML から始めましょう

注: 最初に制御するという私の考えは、常に最初に HTML 構造を決定し、次にスタイルを決定し、最後に js によって実装されるイベント メソッドを決定することです。

実際、この図を見ると、タブ コントロールには主に HTML の 2 つの部分があることがわかります。1 つはタブを配置するために使用されるヘッダー、もう 1 つはコンテナーであるボディです。内容的には。次に、2 つの Div コンテナーがあり、タブ コントロールはヘッダーとボディの 2 つの部分に分かれています。

ヘッダー部分には複数のタブが含まれており、ul liの連携が考えられやすいです。ヘッダー内の実際の HTML 構造を見てみましょう

jQuery を使用して TabPanel エフェクトを作成する code_jquery

li をタブとして渡すことにより、最初の a は閉じるボタン、2 番目の a は実際のコンテンツとなり、左右の背景画像設定はネストされたタグによって実現されます (このアプローチがより一般的です)。もちろん、良い結果を得るには CSS サポートが必要です。 CSS に関するある程度の知識が必要です。

Body の構造はより単純で、div 内に div がネストされているだけです。

2 番目の CSS スタイルシート

CSSはEXTJSからコピーしたものなので詳しくは紹介しません。コードのダウンロードで実際のコードを確認できます。ご質問がある場合は、

までお問い合わせください。

3 番目: 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 = $("