シェアボタンプラグインの使い方入門(拡張可能、開発・制作プロセス含む)_jquery
数日前、仕事の関係で共有ボタンを作成する必要があり、その後の他のプロジェクトで使用する可能性を考慮して、たまたま自分のプラグインとして作成する予定でした。プラグイン jquery.hooray 新しい機能で皆さんの時間を無駄にしないように、最初にデモをリリースします。これが使用できると思われる場合、または作成方法を学びたい場合は、続行してください。読む。 (デモ)
プラグインとなるため、高度なカスタマイズが可能であり、表示数を固定できない、共有ボタンの順序を固定できないなどの固定はできません。柔軟性が高すぎるため、プラグインにはなりません)。ここでの私の操作方法は...まずコードを見てください
< ;/a>
>
すべて共有します ボタンはすべて A タグで作成され、このコンテナ内で A タグが使用されている限り、div コンテナを使用してそれらをラップし、クラス名は私の規定に従って命名されます。 、表示はすべてOKです。数量、順序などは任意です。
などのボタン画像を結合するために CSS スプライトを使用したことに注意してください。
同時に、32*32の大きなアイコンバージョンも作成しました。もちろん、個人のニーズに応じて他のサイズも作成できます。以下はCSSコードです。紹介することはあまりありませんので、見てください。
.hr -share-16 a.hr-share-more{background-position:0 0}
.hr-share-16 a.hr-share-tsina{background-position:0 -16px}
.hr-share-16 a.hr-share-tqq{背景位置:0 -32px}
.hr-share-16 a.hr-share-qzone{背景位置:0 -48px}
.hr-share-16 a.hr-share-renren{背景位置:0 -64px}
.hr-share-16 a.hr-share-baidu{背景位置:0 -80px}
.hr-share-16 a.hr-share-115{背景位置:0 -96px}
.hr-share-16 a.hr-share-tsohu{背景位置:0 -112px}
.hr-share-16 a.hr-share-taobao{background-position:0 -128px}
.hr-share-16 a.hr-share-xiaoyou{background-position:0 -144px}
.hr-share-16 a.hr-share-hi{背景位置:0 -160px}
.hr-share-16 a.hr-share-fanfou{背景位置:0 -176px}
.hr-share-16 a.hr-share-sohubai{background-position:0 -192px}
.hr-share-16 a.hr-share-feixin{background-position:0 -208px}
.hr-share-16 a.hr-share-youshi{background-position:0 -224px}
.hr-share-16 a.hr-share-tianya{background-position:0 -240px}
.hr-share-16 a.hr-share-msn{背景位置:0 -256px}
.hr-share-16 a.hr-share-douban{背景位置:0 -272px}
.hr-share-16 a.hr-share-twangyi{background-position:0 -288px}
.hr-share-16 a.hr-share-mop{background-position:0 -304px}
ここでは、各ボタンのスタイルに接頭辞 .hr-share-16 を特別に追加しました。1 つ目の目的は、16*16 と 32*32 のアイコン スタイルを区別することです。2 つ目は、その後の操作を容易にすることです。 jsコード部分については後ほど説明します。
上記の 2 つの手順が完了したら、次は JS の作成に移ります。その前に、JS を書き終わった後に書き直さないようにアイデアを整理し、より良い方法を見つけてください。
まず、各 Web サイトには独自の共有リンク コードがあります。参考として、最近人気の Tencent Weibo や Sina Weibo などをランダムに 2 つ挙げてみましょう。
view sourceprint?http://v.t.qq.com/share/share.php?title=Share plug-in-jquery.HooRay-jQuery プラグイン-制作者: Hu Yirui丶&url=http://saw .caifutang.com/jquery .hooray/HRshare.html&appkey=118cd1d635c44eab9a4840b2fbf8b0fb
ソースプリントを表示?http://service.weibo.com/share/share.php?title=共有プラグイン - jquery.HooRay - jQuery プラグインin - 制作者: Hu Yirui丶&url=http://saw.caifutang.com/jquery.hooray/HRshare.html&source=bookmark&appkey=2992571369
見つかりましたか?はい、一般的な共有リンクには 2 つのパラメータのみが必要です。1 つはページのタイトルで、もう 1 つはページへのリンクです。Tencent Weibo と Sina Weibo の場合は、両方とも appkey が必要です。 appkey を申請する必要があり、手続きが少し面倒なので、提供されているもので十分です。
次に、これをマスターすれば操作は簡単で、各ボタンにクリックイベントをバインドし、指定したリンクに転送するだけでOKです。ただ、一つ一つ手動でバインドすると非常に面倒に感じますし、新たに共有を追加するとコードの変更量が少し多くなり、コード行数も多くなりそうです。したがって、ループを通じてボタン イベントをバインドします。いくつかのコードスニペットを見てみましょう。
まず、次の 2 つの配列を定義しました (ここではタブ キーのインデントが機能しません。それで済ませましょう):
var shareico = {
"tqq" :"http://v.t.qq.com/share/share.php?title={ title }&url={url}&appkey=118cd1d635c44eab9a4840b2fbf8b0fb",
"tsina" :"http://service.weibo.com/share/share.php?title={title}&url={url}&source=bookmark&appkey= 2992571369 ",
"qzone" :"http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url={url}&title={title}",
"renren" : " http://share.renren.com/share/buttonshare.do?link={url}&title={title}",
"baidu" :"http://cang.baidu.com/do/add ? it={title}&iu={url}&fr=ien#nw=1",
"115" :"http://sc.115.com/add?url={url}&title={title} " ,
"tsohu" :"http://t.sohu.com/third/post.jsp?url={url}&title={title}&content=utf-8",
"taobao" : " http://share.jianghu.taabao.com/share/addShare.htm?url={url}",
"xiaoyou" :"http://sns.qzone.qq.com/cgi-bin/ qzshare /cgi_qzshare_onekey?to=pengyou&url={url}",
"hi" :"http://apps.hi.baidu.com/share/?url={url}&title={title}",
"fanfou" :"http://fanfou.com/sharer?u={url}&t={title}"、
"sohubai" :"http://bai.sohu.com/share/blank/ add .do?link={url}",
"feixin" :"http://space3.feixin.10086.cn/api/share?title={title}&url={url}",
" youshi" :"http://www.ushi.cn/feedShare/feedShare!sharetomicroblog.jhtml?type=button&loginflag=share&title={title}&url={url}",
"tianya" :"http:/ / share.tianya.cn/openapp/restpage/activity/appendDiv.jsp?app_id=jiathis&ccTitle={title}&ccUrl={url}&jtss=tianya&ccBody=,
"msn" :"http://profile.live .com/P.mvc#!/badge?url={url}&screenshot=",
"douban" :"http://shuo.douban.com/!service/share?image=&href={url} &name ={title}",
"twangyi" :"http://t.163.com/article/user/checkLogin.do?source={title}&info={title} {url}&images=",
"mop" :"http://tk.mop.com/api/post.htm?url={url}&title={title}"
};
var shareiconame = {
" tqq" :"Tencent Weibo"、
"tsina" :"Sina Weibo"、
"qzone" :"QQ スペース"、
"renren" :"Renren"、
"baidu" :"Baidu Collection"、
"115" :"115"、
"tsohu" :"Sohu Weibo"、
"taobao" :"Taojianghu"、
"xiaoyou " :"Tencent Friends ",
"hi" :"Baidu Space"、
"fanfou" :"ファンフー"、
"sohubai" :"Sohu Baixie"、
"feixin" :"フェション"、
"tianya" :"Tianya Community"、
"youshi" :"Youshi.com"、
"msn" :"MSN"、
"douban" :"Douban "、
"twangyi " :"NetEase Weibo",
"モップ" :"Maopu Tike"
};
最初の配列は非常に明確です。これは、各共有ボタンに対応するリンク アドレスであり、タイトルと URL を {title} と {url} に置き換え、ループ バインディング中に正規表現で置き換えました。 2 番目の配列はそれぞれの中国語名に対応し、フロント デスクの各ボタンのタイトル (Tencent Weibo への共有、Sina Weibo への共有など) を表示するために使用されます。
jsには多次元配列の概念がないので、2つの配列を定義しました。次に、js コードの実装部分です (チュートリアルとして、誰でも理解しやすいようにいくつかのパラメーターを直接記述しました)。
$("div").addClass( "hr-share-16");
var title = document.title;
function eFunction(str){
return function(){
window.open(formatmodel(shareico[str],{title:title, url:url}));
}
}
for(si in shareico){
$(".hr -share- " si).die('click').live('click',eFunction(si)).attr("title","共有先" shareiconame[si]);
}
次に、document.title と window.location.href を通じて現在のページのタイトルとリンクをそれぞれ取得しました。次に、eFunction と呼ばれるメソッドがあります。これについては省略し、後で説明します。
以下は、クリック イベントをバインドするループの効果を実現する for ループです。ここで 2 つの点に注意する必要があります。 まず、プラグインとして作成しているため、共有ボタンがページ上の複数の場所で使用される可能性があります。イベントのバインドが繰り返されるのを防ぐために、die を使用してそれぞれのバインドを解除します。次に、バインドの代わりに live を使用します。これは、一部のプロジェクトの共有プラグインが、ページの読み込み後に ajax 経由で読み込まれることが懸念されるため、live で直接バインドします。
eFunction の問題についてもう一度話しましょう。なぜ eFunction のコンテンツがライブ クリック イベントに直接書き込まれないのかと疑問に思う人もいるでしょう。実際、最初はこれを実行しましたが、これを実行しなかった理由は非常に単純で、カスタム パラメーターを渡すことができませんでした。理由については、何人かの JS 専門家に尋ねたところ、クロージャの問題だったのでよく分からなかったので、解決する方法を見つけました。誰かがクロージャの問題を詳しく説明してくれるなら、とても感謝します。
これは先ほども書きましたが、{title}と{url}を置換するためのformatmodelメソッドがあり、これを参照して学習することができます。多くの場所で使用されています:
for(var k in model){
var re = new RegExp("{" k "}","g");
str = str.replace(re,model[ k]);
}
return str;
}
完全なプラグイン アドレスを表示します:
クリックして入力

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

楽なWebページレイアウトのためにjQueryを活用する:8本質的なプラグイン jQueryは、Webページのレイアウトを大幅に簡素化します。 この記事では、プロセスを合理化する8つの強力なjQueryプラグイン、特に手動のウェブサイトの作成に役立ちます

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

このチュートリアルでは、Ajaxを介してロードされた動的なページボックスの作成を示しており、フルページのリロードなしでインスタントリフレッシュを可能にします。 JQueryとJavaScriptを活用します。カスタムのFacebookスタイルのコンテンツボックスローダーと考えてください。 重要な概念: ajaxとjquery

10の楽しいjQueryゲームプラグインして、あなたのウェブサイトをより魅力的にし、ユーザーの粘着性を高めます! Flashは依然としてカジュアルなWebゲームを開発するのに最適なソフトウェアですが、jQueryは驚くべき効果を生み出すこともできます。また、純粋なアクションフラッシュゲームに匹敵するものではありませんが、場合によってはブラウザで予期せぬ楽しみもできます。 jquery tic toeゲーム ゲームプログラミングの「Hello World」には、JQueryバージョンがあります。 ソースコード jQueryクレイジーワードコンポジションゲーム これは空白のゲームであり、単語の文脈を知らないために奇妙な結果を生み出すことができます。 ソースコード jquery鉱山の掃引ゲーム

このJavaScriptライブラリは、Cookieに依存せずにセッションデータを管理するためにWindow.nameプロパティを活用します。 ブラウザ全体でセッション変数を保存および取得するための堅牢なソリューションを提供します。 ライブラリは、セッションの3つのコア方法を提供します

このチュートリアルでは、jQueryを使用して魅惑的な視差の背景効果を作成する方法を示しています。 見事な視覚的な深さを作成するレイヤー画像を備えたヘッダーバナーを構築します。 更新されたプラグインは、jQuery 1.6.4以降で動作します。 ダウンロードしてください
