- ベストアンサー
レイヤーのクリッピングを解除するにはどうすれば良いですか
- レイヤーのクリッピング解除方法について教えてください。
- クリッピングを解除するためのJavaScriptのコードを教えてください。
- クリッピングを解除する方法について分からないので、質問させていただきました。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
IEでしか調べていませんが、rectにautoを指定するともとに戻るようです。 しかしここで言う”もとに戻る”は指定されているスタイルシート(レイヤー?) の大きさに戻るという意味なので、 >document.all('lay').style.width=100; >document.all('lay').style.height=100; と指定されるとここに”戻る”ようです。 以下は私が書いたテストHtmlです。参考になれば幸いです。 <HTML> <HEAD> <TITLE>test</TITLE> <SCRIPT Language="JavaScript"> <!-- function fn1(){ htm="testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest" document.all('lay').innerHTML=htm; } function fn2(){ document.all('lay').style.clip='rect(0,100,100,0)'; } function fn3(){ document.all('lay').style.clip='rect(auto,auto,auto,auto)'; } // --> </SCRIPT> </HEAD> <BODY> <DIV ID='lay' STYLE="position:absolute;background-color:#CCCCFF"> </DIV> <BR><BR><BR><BR> <FORM> <INPUT TYPE="button" onClick="fn1()" VALUE="入力"> <INPUT TYPE="button" onClick="fn2()" VALUE="DoClip"> <INPUT TYPE="button" onClick="fn3()" VALUE="return"> </FORM> </BODY> </HTML>
その他の回答 (1)
- b-takeda
- ベストアンサー率33% (7/21)
参考にしていただいたようで良かったです。 少し気になったところと思いつたことが有ったので補足します。 クリッピングはレイヤーの表示する範囲を決めるだけなので、autoを使用しても、 元に戻る(クリッピングを解除する)と言うわけではなく、 auto(通常)の位置にクリッピングするだけだと思うんですね。 だからNNでも >document.layers['lay'].document.write(htm); を実行したとき、この時点のクリップの位置を(グローバル)変数に 取っておけば良いと思います。具体的には hensu1=document.layers['lay'].clip.left; hensu2=document.layers['lay'].clip.right; hensu3=document.layers['lay'].clip.bottom; hensu4=document.layers['lay'].clip.top; hensu5=document.layers['lay'].clip.width; hensu6=document.layers['lay'].clip.height; って感じです。 こうすれば、後でいろいろクリッピングしても、戻したいときに document.layers['lay'].clip.left=hensu1; document.layers['lay'].clip.right=hensu2; document.layers['lay'].clip.bottom=hensu3; document.layers['lay'].clip.top=hensu4; document.layers['lay'].clip.width=hensu5; document.layers['lay'].clip.height=hensu6; と指定すれば良いんじゃないかと思います。 この方法だとIEでも使えそうですね。 NNでは全くスクリプトを作ったことが無いので自信は有りませんが・・
お礼
凄いです!! 早速、IEで試してみると、 document.all('lay').style.width=0; document.all('lay').style.height=0; document.all('lay').style.clip='rect(auto,auto,auto,auto)'; で完全に元に戻りました。(凄すぎるぅぅぅ!!) 本当に本当にありがとうございました。 しかし、NNの方は auto を指定してもダメでした。 現在作成中のJavaScriptは、NNでも動作させたいので、 NNの方でご存知のお方は引き続きお待ちしております。 宜しくお願い致します。