クライアント コードから DropShadow プロパティを操作する (C#)

作成者: Christian Wenz

PDF のダウンロード

AJAX Control Toolkit の DropShadow コントロールは、ドロップ シャドウでパネルを拡張します。 このエクステンダー コントロールのプロパティは、クライアント JavaScript コードを使用して変更することもできます。

概要

AJAX Control Toolkit の DropShadow コントロールは、ドロップ シャドウでパネルを拡張します。 このエクステンダー コントロールのプロパティは、クライアント JavaScript コードを使用して変更することもできます。

手順

コードは、いくつかのテキスト行を含むパネルから始まります。

<asp:Panel ID="panelShadow" runat="server" CssClass="panel" Width="300px">
 ASP.NET AJAX is a free framework for quickly creating a new generation of more 
 efficient, more interactive and highly-personalized Web experiences that work 
 across all the most popular browsers.<br />
 ASP.NET AJAX is a free framework for quickly creating a new generation of more 
 efficient, more interactive and highly-personalized Web experiences that work 
 across all the most popular browsers.<br />
 ASP.NET AJAX is a free framework for quickly creating a new generation of more 
 efficient, more interactive and highly-personalized Web experiences that work 
 across all the most popular browsers.<br />
</asp:Panel>

関連付けられた CSS クラスは、パネルに適切な背景色を提供します。

<style type="text/css">
 .panel {background-color: navy;}
</style>

DropShadowExtender を追加して、ドロップ シャドウ効果でパネルを拡張し、不透明度を 50% に設定します。

<ajaxToolkit:DropShadowExtender ID="dse1" runat="server"
 TargetControlID="panelShadow"
 Opacity="0.5" Rounded="true" />

次に、ASP.NET AJAX ScriptManager コントロールを使用して、Control Toolkit が機能できるようにします。

<asp:ScriptManager ID="asm" runat="server" />

別のパネルには、ドロップ シャドウの不透明度を設定するための 2 つの JavaScript リンクが含まれています。マイナス リンクはシャドウの不透明度を下げ、プラス リンクは上げます。

<asp:Panel ID="panelControl" runat="server">
 <br />
 <label id="txtOpacity" runat="server">0.5</label>
 <a href="#" onclick="changeOpacity(-0.1); return false;">-</a>
 <a href="#" onclick="changeOpacity(+0.1); return false;">+</a>
</asp:Panel>

JavaScript 関数 changeOpacity() は、最初にページ上の DropShadowExtender コントロールを見つける必要があります。 ASP.NET AJAX は、まさにそのタスクのために $find() メソッドを定義します。 次に、get_Opacity() メソッドで現在の不透明度を取得し、set_Opacity() メソッドでそれを設定します。 次に、JavaScript コードによって、現在の不透明度の値が <label> 要素に格納されます。

<script type="text/javascript">
 function changeOpacity(delta) 
 {
 var dse = $find("dse1");
 var o = dse.get_Opacity();
 o += delta;
 o = Math.round(10 * o) / 10;
 if (o <= 1.0 && o >= 0.0) 
 {
 dse.set_Opacity(o);
 $get("txtOpacity").firstChild.nodeValue = o;
 }
 }
</script>

The opacity is changed on the client side

クライアント側で不透明度が変更されます (クリックするとフルサイズの画像が表示されます)