顯示具有 CSS 標籤的文章。 顯示所有文章
顯示具有 CSS 標籤的文章。 顯示所有文章

2016年1月29日 星期五

[CSS]利用CSS3與JQuery達成開合面板特效

測試的chrome版本: 48.0.2564.97
其他版本或瀏覽器, 可能會有呈現上的差異, 請適當的修改各處的CSS

目的:用一張圖靜態的圖搞定特效

1.滑鼠移入時三角形變亮 
2.點擊時, 旋轉三角形與展開區域









下面是原料的原始碼

CSS
    <style type="text/css">
        /*補間動畫*/
        @keyframes arrow {
        0%   { transform:rotate(0deg);}   /*初始的呈現*/
        100% { transform:rotate(90deg); -webkit-filter: brightness(200%);} /*最終的呈現*/
        }
        @keyframes arrow_close {
        0%   { transform:rotate(90deg);}
        100% { transform: rotate(0deg); -webkit-filter: brightness(100%);}
        }

        /*圖片套用的樣式*/
        .test-arrow {
            animation-name: arrow; /*使用的補間動畫*/
            animation-duration: 0.5s; /*動畫時間長度*/
            transform:rotate(90deg); /*相對於原圖的旋轉角度*/
            -webkit-filter: brightness(200%); /*相對於原圖的亮度*/
        }

        .test-arrow-close {
            animation-name: arrow_close;
            animation-duration: 0.5s;
            transform:rotate(0deg);
            -webkit-filter: brightness(100%); /**/
        }
    </style>

●混雜著asp.nethtml(編譯到網頁時, 還是會回到html)
         <table class="fastFunc" style="width: 90%;">
           <tr style="background-color: #7292CC; color: #FFFFFF;">
                <td>
                    <img id="i_arrow" class="i_toggle" src="../BlueTriangle_glow.png" />快速停用
                </td>
           </tr>
           <tr>
<td>
               <asp:Panel id="arrow" CssClass="p_toggle" runat="server" BackColor="#C6DAF8">
                  //(自由發揮)
</asp:Panel>
               </td>
</tr>
        </table>


 重這邊開始有區別, 這裡是jQuery與js主要運作的地方

第一種, 較直觀的方法(直接指定ID)

優:簡單不容易指錯, 在測試和規劃初期可以減少需排除的錯誤, 相當適合只用一次的功能
缺:想重複使用功能時, 會需要寫進所需的code, 讓檔案大幅成長

    <script type="text/javascript">
        $(document).ready(function () {
            $("#arrow").hide();
            $("#i_arrow").mouseover(function () { $(this).css("-webkit-filter", "brightness(200%)") })
            $("#i_arrow").mouseout(function () { $(this).css("-webkit-filter", "brightness(100%)") })

            $("#i_arrow").click(function () {
                $(".fastFunc").slideToggle(300);
                if (this.className == "test-arrow") {
                    this.className = "test-arrow-close";
                }
                else
                    this.className = "test-arrow";
            });
        });
    </script>


第二種, 較抽象的方阿 (利用this與遍歷)

優:只需寫一次, 並透過適當的條件選擇, 就能套用在不同區塊
缺:不熟悉selector或架構尚未定型的開發中頁面, 使用此方法反而會增加困擾

    <script type="text/javascript">
        $(document).ready(function () {
            $(".p_toggle").hide();
            $(".fastFunc .i_toggle").mouseover(function () { $(this).css("-webkit-filter", "brightness(150%)") })
            $(".fastFunc .i_toggle ").mouseout(function () { $(this).css("-webkit-filter", "brightness(100%)") })

            $(".fastFunc .i_toggle").click(function () {
                $(this).parents("tr").next().find(".p_toggle").slideToggle(300);
                if (this.className == "test-arrow")
                    this.className = "test-arrow-close";
                else
                    this.className = "test-arrow";
            })
        });
    </script>

可以注意看其實程式碼差不多而是差別在selector的寫法

2015年6月7日 星期日

自訂PagerStyle (分頁樣式)


用VS提供的「自動化格式...」雖然可以迅速完成美化
但是要自訂樣式時, 可用UI操作的屬性就略顯不足

簡單來說,就是要從這樣(眼痛到有剩)
DayDateNo. TimeComments
1Jun/9/2016110:30test
2Jun/10/2016216:15test2
3Jun/11/20163
12
改變成成下方的樣式,其中應用了

  • 改變Pager的底色, 文字置中
  • 改變文字大小
  • 改變連結顏色


要達到這樣的效果, 大致上分成兩種
◎一種是純後台coding(asp.net & C#)
方法可參考:Custom Paging with the ASP.NET Repeater Control
此方法不是本篇重點, 就暫不介紹

◎另一種是比較簡單的前後台混合型(asp.net & css)
參考自:How to change gridview paging numbers size?
主要是為Pager附加CSS, 然後就可以做想做的事

1. 指定要應用的css, 並設定背景顏色和文字置中
<PagerStyle CssClass="fvPagerStyle" BackColor="#889999" HorizontalAlign="Center" />

2. 利用CSS改變文字大小
 .fvPagerStyle span {
            font-size:18px;
            color:white;
        }

3. 利用CSS設定超連結顏色
.fvPagerStyle a {
            color:#CCEEff;
        }

這樣就可以快速地自訂Pager, 也不怕改錯
DayDateNo.TimeComments
1Jun/9/2016110:30test
2Jun/10/2016216:15test2
3Jun/11/20163
12