BloggerADS

2013年1月28日 星期一

瀏覽器相容性問題(Safari) - Div排版問題:Width - Padding

問題 : 
在同一個div內設定width和padding會產生瀏覽器相容性問題

主要影響瀏覽器 : Safari ,IE 6或以下
不受影響瀏覽器 : Chorme , Firefox , IE 7,8,9

解決方法 : 
把width,padding 分開寫在兩個div

例子:
Chrome正常狀況

ie8 (正常)對比safari (上方排版有跑掉)



參考 : http://redwingteam.mysinablog.com/index.php?op=ViewArticle&articleId=1646341

2013年1月25日 星期五

jQuery plugin - countdown 縮小版倒數計時器


Jquery-countdown原檔案下載網站
 http://code.google.com/p/jquery-countdown/
功能介紹
縮小版倒數計時器
新增修改功能部分
計算設定日期到現在的倒數計時器( Chrome,IE,FF適用)
效果圖








程式碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery plugin - 縮小版倒數時鐘 範例</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.countdown.js"></script>
<script type="text/javascript">
var timer;
$(document).ready(function(){
counttime('2013-03-28 10:00:00');
});

//新增倒數計時器
function counttime(t)
{
    var partyd = mynewdate(t);
var time = diffdate("d",partyd)+"日"+diffdate("h",partyd)+"時"+diffdate("m",partyd)+"分"+diffdate("s",partyd)+"秒";
$('.din_time').countdown({
image: 'images/countdown_digits.png',
startTime: time,
digitWidth:27,
digitHeight:39,
format: 'dd日hh時mm分ss秒'
});
}

//計算時間差的Function
function diffdate(interval,objDate){
    var dtThis = new Date();
var d = parseInt((objDate - dtThis) / 86400000);
var h = parseInt((objDate - dtThis - d*86400000) / 3600000);
var m = parseInt((objDate - dtThis - d*86400000 - h*3600000) / 60000);
var s = parseInt((objDate - dtThis - d*86400000 - h*3600000 - m*60000) / 1000 );
if (d<0) d=0;
if (h<0) h=0;
if (m<0) m=0;
if (s<0) s=0;
switch (interval) {
case "s":return paddingLeft(s,2);
case "m":return paddingLeft(m,2);
case "h":return paddingLeft(h,2);
case "d":return paddingLeft(d,2);
}
}

//利用輸入日期格式(YYYY-MM-DD hh-mm-ss)變換成一個date格式
function mynewdate(str) {
    str = str.split(' ');
day = str[0].split('-');
time = str[1].split(':');
var date = new Date();
date.setUTCFullYear(day[0], day[1] - 1, day[2]-2);
date.setUTCHours(time[0]-8, time[1], time[2]);
return date;
}

//單位數補零成雙位數
function paddingLeft(num,lenght){
    if(num >= 10)
return num;
else
return ("0" +num);
}


</script>
</head>
<body>
2013-03-28 10:00:00 距離現在還有:<div class="din_time" style="padding-top: 0px;font-size: 16px;"></div>
</body>
</html>

倒數計時器的圖片
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHToiG-xadCIMSBWZ28Kl52WBAVrfbeBghBBmVQVTusMQZHZTFABF5lMJQGwc8RSKzwZ6PqwJywvtMyamtX2CmZUf8No8rPzSnlqFSSwetvmdr_04lpJGVXPrwzijCwFeXQtm4QFnWItRB/s320/countdown_digits.png

2013年1月16日 星期三

jQuery plugin - jCarousel Lite 多張圖片滑動轉換效果(圖片跑馬燈) 範例

這是一個多張圖片轉換的效果
之前想做類似的效果 但找不到想要的jQuery plugin
在Google裏找很久終於讓我找到他 - jCarousel Lite
原網站有展示他不同效果功能的DEMO
詳見:http://www.gmarwaha.com/jquery/jcarousellite/#demo
jCarousel Lite js download: http://www.gmarwaha.com/jquery/jcarousellite/#download
另外這裏有最新的版本 但我在使用時排版會跑掉
所以我沒有使用他 可提供大家參考
https://github.com/kswedberg/jquery-carousel-lite

這個範例主要是修改他本來的功能 去取得我想要的效果
jCarousel Lite 有預設auto的參數去自動變換圖片
但我希望是當滑鼠移動到圖片時才執行圖片跑馬燈的效果
他會一直循環轉換圖片直至滑鼠移開停止
以下是我的範例


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery plugin - jCarousel Lite 範例</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script src="js/jquery.jcarousellite.js"></script> <script type="text/javascript"> var timer; $(document).ready(function(){        //執行jCarouselLite $(".jCarouselLite").jCarouselLite({                 btnNext : ".carousel .next", btnPrev : ".carousel .prev", visible : 3, speed : 1000 });      //滑鼠移入移出啟動和暫停效果     $("#pic").live( 'mouseenter', function() {    timer = setInterval(nextpic,800); }); $("#pic").live( 'mouseleave', function() { clearInterval(timer); }); }); function nextpic() {       $(".carousel .next").click(); } </script> </head> <body> <div class="carousel auto"><span class="prev"></span><span class="next"></span> <div class="jCarouselLite"><ul> <li><img id="pic" style="width:104px;height:80px;margin-right:5px;" src="images/pic-1.jpg" /></li> <li><img id="pic" style="width:104px;height:80px;margin-right:5px;" src="images/pic-2.jpg" /></li> <li><img id="pic" style="width:104px;height:80px;margin-right:5px;" src="images/pic-3.jpg" /></li> <li><img id="pic" style="width:104px;height:80px;margin-right:5px;" src="images/pic-4.jpg" /></li> <li><img id="pic" style="width:104px;height:80px;margin-right:5px;" src="images/pic-5.jpg" /></li> </ul></div> </div> </body> </html>
備註
jCarousel Lite的參數
btnPrev : 上一頁的按鈕
btnNext : 下一頁的按鈕
btnGo : 針對滑動到那一個圖片的按鈕
mouseWheel : 能不能用滑鼠的滑輪去更換圖片
auto : 自動換轉的速度 不能自動換轉則為0 預設為0
speed : 換轉的速度 停止jCarousel Lite則為0
easing : 轉換的效果
vertical : 是不是直的 預設為橫的
circular : 是不是循環的 預設為true
visible : 可見多少張圖 (可設1,1.5,2...)
start : 設定第一張圖是哪一張 預設為0 (可設1,2,3...)
scroll : 設定轉換一次移動多少張圖 預設為1 
beforeStart : 開始前執行的function
afterEnd : 結束後執行的function

文筆于是太好 詳細還是看原網站的demo比較清楚



Google Maps Javascript API V3- 地址查詢地圖 範例

Google 提供 Google Maps Javascript API 以提供網頁設計者使用
詳見: https://developers.google.com/maps/documentation/javascript/tutorial?hl=zh-tw
但對於他強大的多項功能並沒有一個整合的範例
以下是一個利用 Google Maps Javascript API V3 的範例
利用地址去查詢地圖 用一個新視窗去顯示 並標籤其地名

index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Google Maps API - 地址查詢地圖 範例</title><script type="text/javascript">

<script type="text/javascript">
//跳出地圖新視窗
function popupMap( addr , name)
{
window.open('googlemap.php?addr='+addr+'&name='+name,'GoogleMap','toolbar=no,location=no,directories=no,status=no,bar=no,scrollbars=no,resizable=yes,copyhistory=no,width=600,height=450,screenX=150,screenY=150,top=150,left=150')
}

</script>
</head>
<body>

<div>
   <a href="javascript:popupMap('110台灣 台北市信義區信義路五段7號', 'Taipei 101')">
      <img src="http://hotel.network.com.tw/images/GmapTw.png" alt="google map btn" border="0">
   </a>
</div>
</body>
</html>



googlemap.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas { height: 100% }
</style>
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
var addr = <? echo $_GET["addr"]; ?>;
var name = <? echo $_GET["name"]; ?>;
$(document).ready(function(){
//利用地址換轉成座標  
var dat={};
  dat.address = addr;
  dat.sensor = "false";
  $.ajax({
url: 'http://maps.googleapis.com/maps/api/geocode/json',
type: 'GET',
dataType: 'html',
data: dat,
async: false,
success: function(data){
callback(data);
}
});
});
function callback(data)
{
var o=eval('(' + data + ')');
if(o.status=="OK")
{
var lat = o.results[0].geometry.location.lat;
var lng = o.results[0].geometry.location.lng;
initialize(lat,lng);
}
 }


//初始化地圖
function initialize(lat,lng) {
  var latlng = new google.maps.LatLng(lat, lng);
  var myOptions = {
  zoom: 15,
  center: latlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP  
  };

//標註地址
  var map = new google.maps.Map(document.getElementById("map_canvas"),
  myOptions);
    var marker = new google.maps.Marker({
position: latlng, 
map: map, 
title:name
});
}


</script>
</head>
<body>
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>

2013年1月10日 星期四

Facebook API - 回覆討論貼文串 範例

以下分享的是很常在網站看到的有些網站或文章下方可加入FB的回覆貼文串
參考了不同網站 發現其實做法很簡單
首先必須在FB 登記屬於自己的APP
並取得其APP的ID
然後可以把這個API套用到自己網站上
P.S. 你的網站URL不能為IP位置 這樣會出錯

YOUR_URL.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Facebook API - 回覆討論貼文串 範例</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="可以輸入你需要顯示的標題">
<meta property="og:description" content="可以輸入你需要顯示的簡介">
<meta property="og:image" content="可以輸入你需要顯示的圖片"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    var location = window.location.href;
    $("#fbcomment").append('<fb:comments href="'+location+'" width="610" num_posts="4"></fb:comments>');
});
</script>
</head>
<body>
<div>你的網站內容</div>
<div id="fbcomment">
<div id="fb-root"></div>
<script src="http://connect.facebook.net/zh_TW/all.js#appId=YOUR_FB_APP&xfbml=1">
</script>
</div>
</body>
</html>