Translate

2011年12月26日 星期一

jquery教學語法網站

實現對焦圖片放大
http://www.wangyexx.com/s_img/991.html

簡單文字提示
http://www.wangyexx.com/s_mouse/990.html

滑鼠移向文字彈出說明文字
http://www.wangyexx.com/s_mouse/693.html

2011年12月23日 星期五

iframe loading 與優化

有時後一個版面會嵌入好幾個iframe
後面應該用css來分會比較好啦

暫時先來簡單的…

引用:http://www.cnblogs.com/micheng11/archive/2009/03/31/1425883.html

但是IE可行,放在Firefox(FF)就…轉個不停...

引用:http://www.cnblogs.com/lovko/archive/2009/01/04/1368013.html

結束了,最後做個小小的整理



               <script type="text/javascript">
                   function stateChangeIE(_frame,loadid) {
                       var b = document.getElementById(loadid.toString());
                       _frame.style.display = "none";
                       b.style.display = "block";
                       _frame.onreadystatechange = function() {
                           if (this.readyState == "complete") {
                               b.style.display = "none";
                               _frame.style.display = "block";
                           }
                       }
                   }
                   function stateChangeFirefox(_frame,loadid) {
                       var loader = document.getElementById(loadid.toString());
                       loader.style.display = "none";
                       _frame.style.display = "block";
                   }

               </script>


<div id="load" ><img src="http://sc.cnwebshow.com/upimg/allimg/070707/01294420.gif" /></div>
<iframe id="demoframe" onreadystatechange=stateChangeIE(this,'load') onload=stateChangeFirefox(this,'load') src="輸入連結網頁" ></iframe>



好文:
http://www.seomydream.com/seo-jiqiao/iframe.htm,如何優化iframe框架的技巧
http://www.cnblogs.com/tianguook/archive/2010/06/24/1764235.html,Frame、iFrame、noframe的區別和使用

FCKEditer比較其他網頁編輯器

引用:http://hi.baidu.com/dongchi/blog/item/b24307ce3d564d27f9dc614f.html

這邊暫時整理起來,倒是一個不錯的參考

2011年12月22日 星期四

浮水印文字

引用連結:http://digitalbush.com/projects/watermark-input-plugin/

當載好兩個js檔之後,放到同一個資料夾,就可以使用了


<head runat="server">

<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.watermarkinput.js" type="text/javascript"></script>

<script type="text/javascript">
    jQuery(function($) {
    $("#TextBox1").Watermark("輸入你要的字", "#dedede");
    });
</script>

</head>


<body>
<div>
<asp:TextBox ID="TextBox1" runat="server></asp:TextBox>

</div>
</body>

PS.請注意一下如果是.master記得id要變成


jQuery(function($) {
$("#ctl00_ TextBox1 ").Watermark("輸入你要的字", "#dedede");
   });

===
後續補充→發現這一篇可以做到更簡單去了解
ref→http://blog.roodo.com/esabear/archives/9329889.html
ref→http://blog.asflexer.com/jquery-textbox-watermark




 .waterMarkText  // 可以放你想要設定的任何浮水印效果
{
        color:#888888;
}

 <asp:TextBox ID="txbTitle" runat="server" tooltip="輸入浮水印文字"></asp:TextBox>



 <script type="text/javascript">
         $(function () {
             var txtbox = $('#<%=txbTitle.ClientID%>');
             txtbox.focus(function () {
                 if (txtbox.val() == this.title) {
                     txtbox.removeClass("waterMarkText");
                     txtbox.val("");
                 }
             });
             txtbox.blur(function () {
                 if (txtbox.val() == "") {
                     txtbox.addClass("waterMarkText");
                     txtbox.val(this.title);
                 }
             });
             txtbox.blur();
         });
       </script>

2011年12月16日 星期五

Mantis安裝篇

呼~最近因為需求而要架設Mantis,上網找了不少好文章
並將遇到的問題與解決方法丟上來,希望下次遇到少花點時間

共安裝了以下軟體
安裝順序也如下…
1.mysql-5.5.19-winx64.msi
2.php-5.3.8-Win32-VC9-x86.msi
3.phpMyAdmin-2.5.7-pl1
4.mantisbt-1.2.8

參考網址:http://www.php5.idv.tw/html.php?mod=article&do=show&shid=19

大部份按照上面裝的應該就少很多了…

測試一下mysql跟php是否連結,這個問題真的很煩人…@@a

認證可以參考:http://php.net/manual/en/function.mysql-connect.php
做一個測試頁面丟上去測…

<?php
$link = mysql_connect('localhost', '帳號', '密碼');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

如果出現成功非常恭喜您,很不幸的跟我一樣失敗的話,建議先到
安裝PHP的資料夾看一下

更詳細一點可以看:http://micki.blogbus.com/logs/30395887.html
或者:http://www.dreamweaver.com.tw/index.php?fid=2&viewtopic=3436
1.MySQL Server 5.5\lib\libmysql.dll 丟到php\ext\底下
2.重開你的阿法器

##中間如果你的阿法器重開失敗,建議把MYSQL停用,亂放的php.ini檔先砍了,然後應該就能重開了= =;;

大致上安裝好沒問題就收案了XD


接下來只要將phpMyAdmin-2.5.7資料夾丟進去,也能順利開啟
詳細的話也可看:http://www.cnbruce.com/blog/showlog.asp?log_id=1211
這個也很不錯:http://www.chweng.idv.tw/serverguide/phpmyadmin.php

mantisbt配置說明可看:http://micki.blogbus.com/logs/38031962.html
mantisbt-1.2.8的資料夾也丟進去,開啟安裝頁面,輸入帳密也能開啟

預設為administrator /pwd: root

大概接下來可能會遇到還有上面的紅字問題:(php.ini )
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
新增這一段→  date.timezone = PRC 


整理了一下比較詳細的設定mantis\config_inc.php
參考:http://www.prudentman.idv.tw/2009/01/mantis-13.html


# 時區設定,不加首頁會有warning
date_default_timezone_set("Asia/Taipei");
# 設定語系為繁體中文
$g_default_language = "chinese_traditional";

# 設定是否讓人註冊帳號(系統使用者都加入帳號以後可以改成OFF)
$g_allow_signup = ON;
# 選用SMTP模式
$g_phpMailer_method= PHPMAILER_METHOD_SMTP ;
$g_smtp_host= 'smtp.gmail.com';
$g_smtp_username = 'xxx@gmail.com';
$g_smtp_password = 'xxx';
$g_smtp_connection_mode = 'ssl';
$g_smtp_port = 465;

//File Upload
$g_file_upload_method = DISK;
$g_absolute_path_default_upload_folder = 'C:/mantis/upload/'; //記得手動建立這個目錄
$g_max_file_size = 5000000; //上傳檔案最大5MB, 與php.ini有關, 若有需要記得調整php.ini內的upload_max_filesize
$g_disallowed_files = 'php,php3,phtml,html,class,java,exe,pl'; //不允許上傳的檔案類型


如果要直接開啟的話是在Apache2.2\conf\httpd.conf

最尾頁加上

Alias /mantis "c:/mantis/"
<Directory "c:/mantis/">
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>

然後找
DirectoryIndex index.html
→DirectoryIndex index.html index.html index.html.var index.php

這樣就會轉頁面了XDD

改中文的話→管理→管理使用者→點一個使用者→語件→選中文(恩…自已翻英文)

然後要新增專案的話
可以到管理專案→看到左上角有一個『新增專案』的按鈕,不是新增類別喔T_T

2011年12月14日 星期三

ZIP靨縮(子資料夾循迴

引用:http://blog.sina.com.cn/s/blog_456cc2c401000c70.html


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.IO;
using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.GZip;
/// <summary>
/// ZipFloClass 的摘要说明
/// </summary>
public class ZipFloClass
{
    public void ZipFile(string strFile, string strZip)
    {
        if (strFile[strFile.Length - 1] != Path.DirectorySeparatorChar)
            strFile += Path.DirectorySeparatorChar;
        ZipOutputStream s = new ZipOutputStream(File.Create(strZip));
        s.SetLevel(6); // 0 - store only to 9 - means best compression
        zip(strFile, s, strFile);
        s.Finish();
        s.Close();
    }

    private void zip(string strFile, ZipOutputStream s, string staticFile)
    {
        if (strFile[strFile.Length - 1] != Path.DirectorySeparatorChar) strFile += Path.DirectorySeparatorChar;
        Crc32 crc = new Crc32();
        string[] filenames = Directory.GetFileSystemEntries(strFile);
        foreach (string file in filenames)
        {
            if (Directory.Exists(file))
            {
                zip(file, s, staticFile);
            }
            else // 否则直接压缩文件
            {
                //打开压缩文件
                FileStream fs = File.OpenRead(file);
                byte[] buffer = new byte[fs.Length];
                fs.Read(buffer, 0, buffer.Length);
                string tempfile = file.Substring(staticFile.LastIndexOf("\\") + 1);
                ZipEntry entry = new ZipEntry(tempfile);
                entry.DateTime = DateTime.Now;
                entry.Size = fs.Length;
                fs.Close();
                crc.Reset();
                crc.Update(buffer);
                entry.Crc = crc.Value;
                s.PutNextEntry(entry);
                s.Write(buffer, 0, buffer.Length);
            }
        }
    }
}

、、、、、、、、、、、、、、、
using System;
using System.Data;
using System.Web;
using System.Text;
using System.Collections;
using System.IO;
using System.Diagnostics;
using System.Runtime.Serialization.Formatters.Binary;
using ICSharpCode.SharpZipLib.BZip2;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Zip.Compression;
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
using ICSharpCode.SharpZipLib.GZip;
using ICSharpCode.SharpZipLib.Checksums;

/// <summary>
/// UnZipFloClass 的摘要说明
/// </summary>
public class UnZipFloClass
{
    public string unZipFile(string TargetFile, string fileDir)
    {
        string rootFile = " ";
        try
        {
            //读取压缩文件(zip文件),准备解压缩
            ZipInputStream s = new ZipInputStream(File.OpenRead(TargetFile.Trim()));
            ZipEntry theEntry;
            string path = fileDir;                  
            //解压出来的文件保存的路径
            string rootDir = " ";                      
            //根目录下的第一个子文件夹的名称
            while ((theEntry = s.GetNextEntry()) != null)
            {
                rootDir = Path.GetDirectoryName(theEntry.Name);                        
                //得到根目录下的第一级子文件夹的名称
                if (rootDir.IndexOf("\\") >= 0)
                {
                    rootDir = rootDir.Substring(0, rootDir.IndexOf("\\") + 1);
                }
                string dir = Path.GetDirectoryName(theEntry.Name);                  
                //根目录下的第一级子文件夹的下的文件夹的名称
                string fileName = Path.GetFileName(theEntry.Name);                  
                //根目录下的文件名称
                if (dir != " " )                                                      
                //创建根目录下的子文件夹,不限制级别
                {
                    if (!Directory.Exists(fileDir + "\\" + dir))
                    {
                        path = fileDir + "\\" + dir;                                              
                        //在指定的路径创建文件夹
                        Directory.CreateDirectory(path);
                    }
                }
                else if (dir == " " && fileName != "")                                            
                 //根目录下的文件
                {
                    path = fileDir;
                    rootFile = fileName;
                }
                else if (dir != " " && fileName != "")                                            
                    //根目录下的第一级子文件夹下的文件
                {
                    if (dir.IndexOf("\\") > 0)                                                          
                        //指定文件保存的路径
                    {
                        path = fileDir + "\\" + dir;
                    }
                }
                if (dir == rootDir)                                                                                
                //判断是不是需要保存在根目录下的文件
                {
                    path = fileDir + "\\" + rootDir;
                }

                //以下为解压缩zip文件的基本步骤
                //基本思路就是遍历压缩文件里的所有文件,创建一个相同的文件。
                if (fileName != String.Empty)
                {
                    FileStream streamWriter = File.Create(path + "\\" + fileName);
                    int size = 2048;
                    byte[] data = new byte[2048];
                    while (true)
                    {
                        size = s.Read(data, 0, data.Length);
                        if (size > 0)
                        {
                            streamWriter.Write(data, 0, size);
                        }
                        else
                        {
                            break;
                        }
                    }
                    streamWriter.Close();
                }
            }
            s.Close();
            return rootFile;
        }
        catch (Exception ex)
        {
            return "1; " + ex.Message;
        }
    }  
}

2011年12月2日 星期五

學習 ASP.NET MVC

http://www.microsoft.com/taiwan/msdn/aspdotnet/mvc/learn/

http://blog.sanc.idv.tw/2011/08/aspnet-mvc-4.html

好用的小工具系列

簡單又好用的檔案同步工具


http://pcuser.pixnet.net/blog/post/26889114


簡單易上手的電子記帳本


http://pcuser.pixnet.net/blog/post/26861082

Visual C# 或 Microsoft Visual Basic 使用者入門教學課程

http://msdn.microsoft.com/zh-tw/library/dd492171.aspx
MSDN提供的教學課程,共有四種,適合初學者磨刀…

引用內容如下:

教學課程 1:建立圖片檢視器

建置一個從檔案載入圖片並將圖片顯示在視窗中的程式。 了解如何拖曳表單上的控制項 (例如按鈕和圖片方塊)、設定其屬性,以及使用容器來順暢地調整表單的大小。 開始撰寫程式碼。

教學課程 2:建立迷宮程式

建置一個迷宮遊戲,使用者必須移動滑鼠指標而不能碰觸到任何圍牆。 了解如何使用 Panel 容器來配置表單、使用 Label 控制項建置迷宮、撰寫程式碼來顯示訊息方塊、設定滑鼠事件的事件處理常式、讓程式播放音效,以及使用類別來組織程式碼。

教學課程 3:建立數學測驗

建置一個計時的數學測驗遊戲,玩家必須在指定的時間內回答四個隨機的算術問題。 了解如何使用 Random 類別產生隨機數字、使用 Timer 控制項觸發事件、使用 if else 陳述式控制程式流程,以及執行基本的算術運算。

教學課程 4:建立配對遊戲

建置一個配對遊戲,而遊戲玩家必須配對隱藏的圖示。 了解如何使用 List 物件來保留物件、使用 foreach 迴圈、使用參考變數追蹤表單的狀態、建置可用於多個物件的事件處理常式,以及讓計時器於啟動時剛好引發一次。


從一些基本的地方,總能收獲很多呀…XDD

2011年12月1日 星期四

文字連續跑馬燈


在網路上找了許久,本來想以jquery製作,不過發現比較像「段落式」的跑馬燈
一下就跑一段而如果有原本的html語法的跑馬燈的話,則是會在結束後留下一大段空白

需求是:【文字/連續/尾接頭】

最後發現了一篇還不錯

可以參考如下

<DIV id=all style="OVERFLOW: hidden; WIDTH: 210px; HEIGHT: 120px">
<DIV id=m1>
<TABLE height=15 cellSpacing=0 cellPadding=0 width=210 align=center border=0>
<TBODY>
<TR>
<TD>
一段話<BR>
二段話<BR>
三段話<BR>
</TD>
</TR>
</TBODY>
</TABLE>
</DIV>
<DIV id=m2></DIV>
</DIV>

<SCRIPT type=text/javascript>
var speed=45
m2.innerHTML=m1.innerHTML
function Marquee(){
if(m2.offsetTop-gg.scrollTop<=0)
all.scrollTop-=m1.offsetHeight
else{
all.scrollTop++
}
}
var MyMar=setInterval(Marquee,speed)
all.onmouseover=function() {clearInterval(MyMar)}
all.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</SCRIPT>

補充一點,如果FireFox看不到效果的話,最好增加一些語法

var m2= document.getElementById('m2');
var m1= document.getElementById('m1');
var all= document.getElementById('all');

引用:

參考:
http://blog.hsin.tw/2008/javascript-vertical-carousel/