顯示具有 我的前端筆記 標籤的文章。 顯示所有文章
顯示具有 我的前端筆記 標籤的文章。 顯示所有文章

2016年6月29日 星期三

[筆記].net MVC 安裝Web Essentials 並 使用bundle功能將多個CSS or JS檔打包彙整成一個檔案

首先第一步 安裝:Web Essentials
https://visualstudiogallery.msdn.microsoft.com/56633663-6799-41d7-9df7-0f2a504ca361 

第二步 裝好之後 到下面這個網址
http://vswebessentials.com/features/bundling

第三步 複製畫面中的XML



第四步 在專案中加入bundle檔
例如:main.css.bundle

第五步 將剛剛複製的XML貼到bundle檔中,然後修改或加入你要匯入的檔案及路徑後存檔


第六步 在Visual Studio中先確定檔案已加入專案後點選Update All Bundles

完成了! 此時你會看到多了2隻CSS檔
依本範例為例會多出
main.css及main.min.css













2016年6月23日 星期四

[筆記]CSS3 filter blur 濾鏡特效

常常在一些網站上看到滑鼠移入時會出現圖片霧化個幾秒鐘
且同時底下的字或是小icon會移動或是變色

好奇看了一下之後做了一個類似的感覺還不賴

主要是靠CSS中的 @keyframes關鍵影格
以及CSS的一些事件來完成
搜尋關鍵字"css event another"也可以找到一些相關的文章

以下是我的小範例

See the Pen JKbPEg by AllenYu (@allenyjs) on CodePen.

2016年5月31日 星期二

[我的前端筆記] jQuery 綁定小範例

利用陣列(array)跟物件(object) 組成一個Model

接著再用keyup或是change...等監聽事件

當前端UI的資料有異動時事件被觸發時將Element上的值覆蓋回Model

在此範例中假設有接收到後端資料資料時去Call renderForm();

就會把Model 資料填到UI上 達到綁定的效果

See the Pen jQuery 綁定資料 by AllenYu (@allenyjs) on CodePen.


2016年5月23日 星期一

網址後面出現奇怪的url encode 字串"%E2%80%8B"

今天遇到了一個有點詭異的問題

在網頁上點連接時應該要連到下面這個網址
http://[某某網址]/index.html

結果連過去後卻發現異常無法顯示
實在是有點奇怪
難道是連結網址貼錯嗎???
立馬複製瀏覽器上的網址貼到記事本一看
http://[某某網址]/index.html%E2%80%8B

怎麼會多出了一段%E2%80%8B
於是又馬上去檢查檔案
<a herf="http://[某某網址]/index.html">

沒錯啊!!!~~~~~

那我看到的那段UrlEncode "%E2%80%8B" 又是怎麼一回事呢?

在google大神的大力相助一下
我找到了一些答案

應該是因為現在大家習慣Ctrl+C Ctrl+V

網址有可能來源是word 有時候存在記事本
也有可能是sublime Dreamweaver notepad++ ...等

大家複製來複製去的過程中不知道在哪個編輯器上順手就帶上了"%E2%80%8B"

我找到的答案應該是這樣 還望高人指點...

補充一下這兩篇也有提到這個問題 底下回覆有人是因為從MS word複製網址後出現"%E2%80%8B"

https://premium.wpmudev.org/forums/topic/something-is-breaking-my-links-with-

https://forums.digitalpoint.com/threads/why-are-some-of-my-urls-getting-appended-with-e2-80-8e.2716588/

如果是C#的話可以用以下方式解決這個麻煩
MailItem.Body.Replace("\u200B", "");
參考這篇:
http://stackoverflow.com/questions/24942167/simplest-way-to-get-rid-of-zero-width-space-in-c-sharp-string

如果是Javascript的話可以用正規式的方式處理
參考這篇:
http://zhi-yuan-chenge.blogspot.tw/2015/10/jsie-buge2808e.html

2016年3月10日 星期四

[筆記] 使用Compass Sprite x 自動合併圖片 x 自動產生background-position

1.開啟「命令提示字元」,建立compress專案


2.開啟compress設定檔,檢查設定

3.根據設定建立對應的images及icons資料夾

4.再資料夾中放入要合併的素材圖片
5.建立一個新的scss檔

6.在scss檔中寫入內容,完成後記得儲存檔案

7.儲存檔案後,在「命令提示字元」輸入指令compile 本範例輸入"compass compile test1"

8.完成後會自動在剛剛config.rb設定的相對路徑中generate相對應的css檔,預設是stylesheets資料夾

9.這個時候開啟sprite.css及images資料夾可以看到已經自動generate了css及合併後的圖檔

2015年8月11日 星期二

我的AngularJS初學筆記(三) Filters

利用AngularJS過濾器(Filters)
可以將資料轉換成大寫、小寫、貨幣格式
或達成排序、過濾篩選資料等效果


以下是我的練習範例
See the Pen AngularJS 練習範例3 Filters by AllenYu (@allenyjs) on CodePen.

2015年8月8日 星期六

我的AngularJS初學筆記(二) Controllers

練習用AngularJS透過Controllers來控制網頁
並且透過$scope物件做雙向設定
在網上有許多介紹$scope物件的文章
http://www.dotblogs.com.tw/blackie1019/archive/2013/09/21/119101.aspx
http://ithelp.ithome.com.tw/question/10133017

以下是我練習的範例
See the Pen AngularJs練習範例2 by AllenYu (@allenyjs) on CodePen.

我的AngularJS初學筆記(一) Expressions 與 Directives

在使用前必須先載入angular.js 在官網上可以下載
第一步在需要設為AngularJS管轄區域的html tag上加上 屬性data-ng-app
例如<body data-ng-app=""> 或 <div data-ng-app="">
以往用Javascript或Jquery需要數行的程式碼
用AngularJS只要做些簡單的屬性設定就可以完成

以下是我了練習範例
See the Pen angular練習範例1 by AllenYu (@allenyjs) on CodePen.

2015年8月4日 星期二

我的requireJS初學練習筆記

練習範例1

  • test1.html

    在HTML檔案中引入require.js並將data-main設為js資料夾中的common檔案,由於requireJS預設副檔名為js所以可以省略

              <html>
                <head>
                  <script data-main="js/common" src="js/require.js"></script>
                </head>
                <body>
                  123
                </body>
              </html>
              
  • js(Folder)
    • common.js
                require.config({
                    paths: {
                        jquery: 'jquery-2.1.4.min',
                        underscore: 'underscore',
                        backbone: 'backbone'
                    }
                });
                require(['test1']);
                
    • test1.js
                define(function (require) {
                    var $ = require('jquery');
                  var _ = require('underscore');
                  var backbone = require('backbone');
      
                    $(function(){
                        alert("a");
                        var JQv=$().jquery;
                        var BKv=Backbone.VERSION;
                        var Undv=_.VERSION;
      
                        var myView = Backbone.View.extend({
                            el: $("body"),
                            initialize: function () {
                                this.showLoadinfo(JQv,Undv,BKv);
                            },
                            showLoadinfo: function (JQv,BKv,Undv) {
                                var hStr="<h1>載入測試</h1><ul id='mylist'>";
                                hStr+="<li>1. JQuery版本:"+JQv+"</li>";
                                hStr+="<li>2. Backbone版本:"+Undv+"</li>";
                                hStr+="<li>3. underscore版本:"+BKv+"</li>";
                                hStr+="</ul>";
                                this.$el.html(hStr);
                            }
                        });
                        var myLoadinfoView = new myView();
      
                    });
                });
                

結果:

載入測試

  • 1. JQuery版本:2.1.4
  • 2. Backbone版本:1.2.1
  • 3. underscore版本:1.8.3

練習範例2

  • test2.html

    在HTML檔案中引入require.js並將data-main設為js資料夾中的test2檔案,由於requireJS預設副檔名為js所以可以省略

              <html>
                <head>
                  <script data-main="js/test2" src="js/require.js"></script>
                </head>
                <body>
                  123
                </body>
              </html>
              
  • js(Folder)
    • common2.js
                require.config({
                    paths: {
                        jquery: 'jquery-2.1.4.min',
                        underscore: 'underscore',
                        backbone: 'backbone',
                        myTestFunc: 'myTestFunc'
                    }
                });
                require(['test1']);
                
    • test2.js
                require(['common2'], function (common){
                  require(['myTestFunc']);
                });
                
    • myTestFunc.js
                define(function (require) {
                    var $ = require('jquery');
                  var _ = require('underscore');
                  var backbone = require('backbone');
      
                    $(function(){
                        alert("a");
                        var JQv=$().jquery;
                        var BKv=Backbone.VERSION;
                        var Undv=_.VERSION;
      
                        var myView = Backbone.View.extend({
                            el: $("body"),
                            initialize: function () {
                                this.showLoadinfo(JQv,Undv,BKv);
                            },
                            showLoadinfo: function (JQv,BKv,Undv) {
                                var hStr="<h1>載入測試</h1><ul id='mylist'>";
                                hStr+="<li>1. JQuery版本:"+JQv+"</li>";
                                hStr+="<li>2. Backbone版本:"+Undv+"</li>";
                                hStr+="<li>3. underscore版本:"+BKv+"</li>";
                                hStr+="</ul>";
                                this.$el.html(hStr);
                            }
                        });
                        var myLoadinfoView = new myView();
      
                    });
                });
                

結果:

載入測試

  • 1. JQuery版本:2.1.4
  • 2. Backbone版本:1.2.1
  • 3. underscore版本:1.8.3

2015年7月29日 星期三

我的初學Backbone筆記

BackboneJS是一套前端 Javascript Framework 簡介可以參考維基百科 

網路上有很多前輩高手寫的詳細介紹及教學

使用前必須先載入Backbone.js及Underscore.js 

可於Backbone官方網站中找到Backbone 1.2.1 

Underscore的部分可以在Underscore官方網站中找到underscorejs1.8.3 

以下是我練習的範例

1. Model基本使用練習
//1.選告一個變數(Someone)為模型
var Someone = Backbone.Model.extend({
    initialize: function(){
        //此處為初始化時執行的動作
        document.write("Hello");
    }
});

//2.建立實體
var SomeoneObj_1 = new Someone();

//3.設定這個模型實體中的資料用JSON格式
SomeoneObj_1.set({ name: "Thomas", age: 67});

//4.用get取得指定的資料並印於畫面上
document.write(SomeoneObj_1.get("name"));
document.write(SomeoneObj_1.get("age"));

點選JS看完整範例


See the Pen 1.backbone Model練習 by AllenYu (@allenyjs) on CodePen.



2. Collection使用練習
//1.選告一個變數(person)為模型
var person = Backbone.Model.extend({
   defaults: {
      myname: "Allen",
      myaction: "eat"
    },
    initialize: function(){
        document.write(this.attributes.myname+" 初始化 ");
    }
});

//2.選告一個變數(people)為集合
var people = Backbone.Collection.extend({
  model: person
});

//3.建立模型實體
var personObj = new person();

//4.建立集合實體並帶入personObj
var peopleObj = new people({personObj});

//5.取出帶入的結果並印於畫面上
document.write(peopleObj.models[0].attributes.myname);
document.write(peopleObj.models[0].attributes.myaction);

點選JS看完整範例


See the Pen 2. Backbone Collection練習範例 by AllenYu (@allenyjs) on CodePen.



3. View使用練習Part1

See the Pen 3.backbone VIEW基礎應用練習 by AllenYu (@allenyjs) on CodePen.



4. View使用練習Part2

See the Pen 4.backbone VIEW進階應用練習 by AllenYu (@allenyjs) on CodePen.



5. 綜合練習

See the Pen 5.Backbone 綜合應用練習 by AllenYu (@allenyjs) on CodePen.

有了基本的了解後,後面其他進階的用法就可以參考Backbone官方網站上的範例啦~