jsホームページの効果-3
4276 ワード
js特殊効果-Day 3
一、client家族
1.1 clientWidthとclient Heightページの可視領域の幅:Dcument.body.client Width; ページの可視エリアが高いです.document.body.clientHeight; 1.2 clientLeftとclientTop clientLeft、clientTop は、要素の枠のborder Widthを返します. 枠が指定されていない場合、または変更要素が位置決めされていない場合、その値は0 です.
1.3 offset、clientとscrollの違い分析 leftとtop分析: clientLeft:左枠の幅;clientTop:上枠の幅 offset Left:現在の要素距離は親の箱の左側の距離があります.offset Top:現在の要素距離は、親の箱の上にある距離 です. scrollLeft:左にスクロールする長さ;scrollTop:上のスクロールの長さ. widthとheight分析 clientWidth/Height:コンテンツ+内縁距離 offset Width/Height:コンテンツ+内縁距離+外枠 scrollwidth/Height:スクロール内容の幅と高さ 二、画面の可視領域を取得する ie 9およびそれ以上のバージョン、最新のブラウザ 標準モードブラウザ 怪異モード 一般的な書き方 ウィンドウまたはフレームのサイズが変更されると呼び出します. オンスリゼは、一般的に適応ページレイアウトなどの多画面適応シーンに使用される. アプリケーション:画面の幅>=960の時、ページの背景色は赤色です.画面の幅>=640の時、ページの背景色は青です.画面の幅<640の場合、ページの背景色は緑色ですか? 追加:スクリーンの解像度を取得する:window.screen.width window.screen.height 四、JSの事件伝達メカニズム
4.1発泡メカニズム気泡は水底から上昇し、深いものから浅いものまで上に上がる.上昇する過程で,気泡は異なる深さ層の水を通過する.それに対して、この気泡は私達のところのイベントに相当します.水は私達のdomツリー全体に相当します.事件はdomツリーの下の層から、domのルートノードに伝達されるまで、上の層に伝達される. IE 6.0: div->body->>document 他のブラウザ: div->body->>document->window 注意:すべての事件が泡を立てることができるのではありませんて、以下の事件は泡を立てません:blur、focus、ロード、unload 4.2発泡防止の方法標準ブラウザとieブラウザ w 3 c:event.stopPropagation()プロモーション伝達 IE:event.ccell Bbble=true bubble発泡キャンセル 準拠の書き方
新版のGoogle、火狐、ieの高バージョンもcancel Bbbleをサポートしています.今は新版のブラウザには互換性がありません.
4.3現在の操作対象を取得する開発において、イベントを実行する時、このイベントをトリガする対象は誰かを知る必要がありますか?では、どうやって取得しますか? 火狐、Google event.target e 678 event.srcerement は一般的にこのオブジェクトのIDを取得するものです.互換性のある書き方は以下の通りです. 標準ブラウザ window.get Select() ieは、選択された文字 を取得する. document.selection.reat Range().text; 互換性の書き方 ミニブログ は開発の過程で、多くのアニメーションに接触します.例えば、フレームアニメーション、コアアニメーション、回転アニメーションなど、複雑なアニメーションは簡単なアニメーションパッケージで作られています. 均等速アニメーション関数パッケージ:
一、client家族
1.1 clientWidthとclient Height
1.3 offset、clientとscrollの違い分析
window.innerWidth, window.innerHeight
document.documentElement.clientWidth, document.documentElement.clientHeight
document.body.clientWidth, document.body.clientHeight
function client() {
if(window.innerWidth){ // ie9
return{
width: window.innerWidth,
height: window.innerHeight
}
}else if(document.compatMode != 'CSS1Compat'){ //
return{
width: document.body.clientWidth,
height: document.body.clientHeight
}
}
//
return{
width: document.documentElement.clientWidth,
height: document.documentElement.clientHeight
}
}
三、よく使う窓口事件-onresize4.1発泡メカニズム
if(event && event.stopPropagation){ // w3c
event.stopPropagation();
}else{ // IE IE 678
event.cancelBubble = true;
}
最新の結論:新版のGoogle、火狐、ieの高バージョンもcancel Bbbleをサポートしています.今は新版のブラウザには互換性がありません.
4.3現在の操作対象を取得する
var targetId = event.target ? event.target.id : event.srcElement.id;
4.4ユーザが選択した内容を取得するvar selectedText;
if(window.getSelection){ //
selectedText = window.getSelection().toString();
}else{ // IE
selectedText = document.selection.createRange().text;
}
http://v.t.sina.com.cn/share/share.php?searchPic=false&title=' + shareText + '&url=https://github.com/xuanzhihua'
五、総合アニメーション機能パッケージ//
function animate(obj, target, speed) {
// 1.
clearInterval(obj.timer);
// 2.
var dir = target > obj.offsetLeft ? speed : -speed;
obj.timer = setInterval(function () {
obj.style.left = obj.offsetLeft + dir + 'px';
// 2.1 --> offsetLeft ==
if (Math.abs(target - obj.offsetLeft) <= speed) {
clearInterval(obj.timer);
//
obj.style.left = target + 'px';
}
}, 10);
}