Hiệu ứng tuyết rơi cho con trỏ trên Blog

Người đăng: chaobuoisang on Thứ Tư, 24 tháng 11, 2010

Có nhiều kiểu hiệu ứng cho con trỏ trên trang web. Ở đây xin giới thiệu hiệu ứng tuyết rơi khi rê con trỏ trên khắp các vị trí của trang web.

Bạn chỉ cần đặt đoạn javascript dưới đây vào trước thẻ </head>. Đối với Blogger có thể đặt trong một tiện ích HTML/JavaScript.

<script type='text/javascript'>
// <![CDATA[
var colour="blue";
var sparkles=100;

var x=ox=400;
var y=oy=300;
var swide=800;
var shigh=600;
var sleft=sdown=0;
var tiny=new Array();
var star=new Array();
var starv=new Array();
var starx=new Array();
var stary=new Array();
var tinyx=new Array();
var tinyy=new Array();
var tinyv=new Array();
window.onload=function() { if (document.getElementById) {
var i, rats, rlef, rdow;
for (var i=0; i<sparkles; i++) {
var rats=createDiv(3, 3);
rats.style.visibility="hidden";
document.body.appendChild(tiny[i]=rats);
starv[i]=0;
tinyv[i]=0;
var rats=createDiv(5, 5);
rats.style.backgroundColor="transparent";
rats.style.visibility="hidden";
var rlef=createDiv(1, 5);
var rdow=createDiv(5, 1);
rats.appendChild(rlef);
rats.appendChild(rdow);
rlef.style.top="3px";
rlef.style.left="0px";
rdow.style.top="0px";
rdow.style.left="3px";
document.body.appendChild(star[i]=rats);
}
set_width();
sparkle();
}}
function sparkle() {
var c;
if (x!=ox || y!=oy) {
ox=x;
oy=y;
for (c=0; c<sparkles; c++) if (!starv[c]) {
star[c].style.left=(starx[c]=x)+"px";

star[c].style.top=(stary[c]=y)+"px";
star[c].style.clip="rect(0px, 5px, 5px, 0px)";
star[c].style.visibility="visible";
starv[c]=50;
break;
}
}
for (c=0; c<sparkles; c++) {
if (starv[c]) update_star(c);
if (tinyv[c]) update_tiny(c);
}
setTimeout("sparkle()", 40);
}
function update_star(i) {
if (--starv[i]==25) star[i].style.clip="rect(1px, 4px, 4px, 1px)";
if (starv[i]) {
stary[i]+=1+Math.random()*3;
if (stary[i]<shigh+sdown) {
star[i].style.top=stary[i]+"px";
starx[i]+=(i%5-2)/5;
star[i].style.left=starx[i]+"px";
}
else {
star[i].style.visibility="hidden";
starv[i]=0;
return;
}

}
else {
tinyv[i]=50;
tiny[i].style.top=(tinyy[i]=stary[i])+"px";
tiny[i].style.left=(tinyx[i]=starx[i])+"px";
tiny[i].style.width="2px";
tiny[i].style.height="2px";
star[i].style.visibility="hidden";
tiny[i].style.visibility="visible"
}
}
function update_tiny(i) {
if (--tinyv[i]==25) {
tiny[i].style.width="1px";
tiny[i].style.height="1px";
}
if (tinyv[i]) {
tinyy[i]+=1+Math.random()*3;
if (tinyy[i]<shigh+sdown) {
tiny[i].style.top=tinyy[i]+"px";
tinyx[i]+=(i%5-2)/5;
tiny[i].style.left=tinyx[i]+"px";
}
else {


tiny[i].style.visibility="hidden";
tinyv[i]=0;
return;
}
}
else tiny[i].style.visibility="hidden";
}
document.onmousemove=mouse;
function mouse(e) {
set_scroll();
y=(e)?e.pageY:event.y+sdown;
x=(e)?e.pageX:event.x+sleft;
}
function set_scroll() {
if (typeof(self.pageYOffset)=="number") {
sdown=self.pageYOffset;
sleft=self.pageXOffset;
}
else if (document.body.scrollTop || document.body.scrollLeft) {
sdown=document.body.scrollTop;
sleft=document.body.scrollLeft;
}
else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {
sleft=document.documentElement.scrollLeft;
sdown=document.documentElement.scrollTop;
}
else {
sdown=0;
sleft=0;
}
}
window.onresize=set_width;
function set_width() {
if (typeof(self.innerWidth)=="number") {
swide=self.innerWidth;
shigh=self.innerHeight;
}
else if (document.documentElement && document.documentElement.clientWidth) {
swide=document.documentElement.clientWidth;
shigh=document.documentElement.clientHeight;
}
else if (document.body.clientWidth) {
swide=document.body.clientWidth;
shigh=document.body.clientHeight;
}
}
function createDiv(height, width) {
var div=document.createElement("div");
div.style.position="absolute";
div.style.height=height+"px";
div.style.width=width+"px";
div.style.overflow="hidden";
div.style.backgroundColor=colour;
return (div);
}
// ]]>
</script>

Bạn có thể thay đổi màu sắc (white, green, yellow, red, brown...) cho tuyết rơi trong dòng var colour="blue". Chú ý đoạn javascript này có dùng trục tọa độ ox, oy nên sẽ gây xung đột code CSS đối với một số Blogger Template. Ví dụ điển hình là ở trang sachtroi.blogspot.com có sử dụng hiệu ứng này dẫn đến hậu quả là một khoảng trống dài thăm thẳm phía sau phần Footer và xuất hiện thanh cuộn nằm ngang trên công cụ trình duyệt Internet Explorer 8, như hình minh họa bên dưới.

Cách khắc phục lỗi như vậy đối với trang này chỉ có một cách đơn giản là loại bỏ đoạn javascript ở trên ra khỏi Template.
More about

TỐI ƯU HÓA VIDEO VÀ DOWNLOAD YOUTUBE

Người đăng: chaobuoisang

SPEEDBIT VIDEO ACCELERATOR là một ứng dụng tuyệt vời giúp bạn xem video trên YouTube cùng với hơn 165 Website video khác như Metacafe, Vimeo hay Yahoo video với độ sắc nét cao, hình ảnh mượt mà, đặc biệt hơn nữa là bạn có thể download các phim trên YouTube với tốc độ không thua kém IDM hiện nay và hoàn toàn miễn phí.
Bạn có thể download ứng dụng TẠI ĐÂY. Sau khi tải về bạn cài đặt bình thường như mọi chương trình khác. Khi mở ứng dụng, bạn sẽ thấy biểu tượng của ứng dụng trên khay hệ thống (hình giống như 3 đầu mũi tên với 3 màu xanh đỏ vàng). Bấm chuột phải vào biểu tượng và chọn Settings. Tại đây bạn có lựa chọn các thiết lập cho ứng dụng, chẳng hạn như khởi động khi vào Windows, kích hoạt tính năng video theo thời gian thực cũng như thiết lập các proxy để tăng tốc độ tải trang...
Sau khi lựa chọn xong thiết lập cho ứng dụng, khi bạn chọn play một video bất kỳ trên những trang Web chia sẻ, chẳng hạn như YouTube bạn sẽ thấy cùng lúc với việc trình chiếu video là một hình ảnh động nhỏ xuất hiện ở góc dưới cùng bên phải là do ứng dụng đang thực thi tối ưu hóa video. Nếu không muốn hình ảnh này xuất hiện bạn có thể tắt nó bằng cách nhấn vào nút X trên cùng, mặc dù bị tắt hình ảnh này nhưng nó vẫn chạy nền trong hệ thống vẫn có tác dụng nâng cao chất lượng cho video. Lần sau nếu muốn hình ảnh này không xuất hiện nữa bạn có thể mở cửa sổ thiết lập của ứng dụng và bỏ chọn mục Show Now Accelerating Message.

Khi sử dụng công cụ này, nếu bạn chú ý sẽ thấy sự thay đổi về tốc độ tải video và hình ảnh được trình chiếu sẽ mượt mà hơn, rõ nét hơn. Ngoài ra, bạn sẽ thấy thẻ download trên thanh trình duyệt xuất hiện, muốn download bạn cứ nhấn vào đó, ứng dụng sẽ lập tức thực thi download video cho bạn (qua thử nghiệm, tốc độ download không kém IDM).

 (Sưu tầm từ báo LBVMVT)
More about

Tạo Contact Form cho blog với Foxyform

Người đăng: chaobuoisang

Trên Blogger, bạn không thể tạo một Contact Form một cách độc lập mà phải nhờ đến các website chuyên cung cấp dịch vụ tạo Contact Form miễn phí. Ở đây tôi xin giới thiệu trang FoxyForm.

Vào trang http://www.foxyform.com/. Chọn các option như hình bên dưới.

Điền địa chỉ email của bạn để dùng cho việc nhận email liên hệ. Sau đó nhấn nút Create Formular. Bạn sẽ được chuyển đến trang lấy code cho Contact Form. Đoạn code đó thường có dạng như sau:
<!-- Do not change code! -->
<table cellspacing="0" cellpadding="0" border="0"><tr><td><iframe width="400" height="490" frameborder="0" src="http://www.foxyform.com/form.php?id=XXXXX&sec_hash=XXXXXXXXXXX"></iframe></td></tr><tr><td align="center"><a style="font:8px Arial;color:#5C5C5C;" href="http://www.foxyform.com">foxyform.com</a></td></tr></table>
<!-- Do not change code! -->
Bạn có thể xóa đi đoạn code được đánh dấu màu đỏ. Sau đó đặt toàn bộ phần code còn lại vào một trang tĩnh (static page) để tạo trang Liên hệ cho blog của bạn.

More about

TẠO HIREN'S LÊN USB

Người đăng: chaobuoisang on Thứ Ba, 23 tháng 11, 2010

Hiện nay, đĩa  Hiren's BootCD là một trong những "dụng cụ" cần thiết đối với người sử dụng vi tính nhưng đâu phải máy tính nào cũng có ổ đĩa CD/DVD, tại sao bạn không tích hợp Hiren's vào USB để đem bên mình phòng khi máy tính có sự cố?  không gì tiện bằng USB (nhỏ, gọn và bạn hay đem theo bên mình) và máy tính nào cũng có ít nhất 1 cổng USB.
Để tích hợp Hiren's vào USB, các bạn cần có các phần mềm sau:
- Công cụ Unetbootin (dung lượng 4.3MB) hoàn toàn miễn phí, tải TẠI ĐÂY.
- Tập tin ISO chứa chương trình Hiren's BootCD 10.2 (dung lượng 180MB) hoàn toàn miễn phí, tải TẢI ĐÂY. Bạn cũng có thể kiếm trên mạng các phiên bản Hiren's khác.
- Và dĩ nhiên, bạn phải có 1 USB (tối thiểu là 1GB).
Sau khi tải về xong, các bạn gắn USB vào máy tính, tiếp theo, bạn nhấn đôi chuột vào file unetbootin-windows-408.exe để khởi động chương trình.
Từ giao diện chính của Unetbootin, bạn kích chuột chọn mục Diskimage, sau đó nhấn nút ba chấm (...) ở góc phải và chọn file ISO của Hiren's BootCD đã tải về. Trong ô Type, bạn chọn USB Drive và trong ô Drive bạn chọn ký tự của đĩa USB đang gắn vào máy tính (nếu như chỉ có 1 USB đang cắm vào máy thì bạn cứ để  yên, mặc định chương trình tự nhận). 

Sau cùng, bạn nhấn OK để xác nhận và bắt đầu quá trình tạo đĩa USB Hiren's Boot. Sau vài giây quá trình khởi tạo kết thúc, bạn nhấn Exit để thoát hoặc Reboot lại máy.

Bây giờ, bạn có thể kiểm tra lại kết quả và sử dụng  USB Hiren's  Boot "tự tui" rồi đó (nhớ chọn ưu tiên khởi động từ USB).
Ngoài ra, với cách làm tương tự như trên bạn cũng có thể tự mình tạo USB BitDefender (diệt virus của chương trình BitDefender) hoặc USB Kaspersky (diệt virus của chương trình Kaspersky) để diệt virus trong môi trường Dos khi không vào được Windows.
Tập tin .Iso của BitDefender (dung lượng 319MB) tải TẠI ĐÂY
Tập tin .Iso của Kaspersky (dung lượng 194MB) tải TẠI ĐÂY
Khi tích hợp xong, bạn có thể kiểm tra tính năng boot của USB mà không cần khởi động lại máy bằng phần mềm USUSB (xem hướng dẫn TẠI ĐÂY)
More about

Tiện ích Nhận xét mới nhất có ảnh đại diện

Người đăng: chaobuoisang

Có một blogger hỏi tôi rằng, cộng đồng Blogger đã có nhiều thủ thuật tạo tiện ích Bài viết mới nhất có ảnh đại diện (Recent Posts with Thumbnai Widget) và từ đó cũng xuất hiện tiện ích Nhận xét mới nhất (Recent Comments Widget). Tuy nhiên vẫn chưa thấy có bài viết nào nói về tiện ích Nhận xét mới nhất có ảnh đại diện (Recent Comments with Thumbnail Widget).

Tôi không phải là chuyên gia về webdesign hoặc lập trình viên gì cả. Tôi nghiên cứu về webdesign chỉ bằng con đường tự học vì thế kiến thức vẫn còn hạn chế lắm. Tuy nhiên sau một thời gian trăn trở, mày mò, loay hoay với một mớ hỗn độn về code, chỉnh đi chỉnh lại từ tiện ích Recent Comments Widget và cuối cùng tôi đã thử nghiệm thành công trên Blog của mình với tiện ích Recent Comments width Thumbnail Widget.

Tiện ích Nhận xét mới nhất có ảnh đại diện hiển thị những nhận xét mới nhất kèm theo ảnh đại diện của người nhận xét, bao gồm Admin, Blogger user và nặc danh (Anonymous).

Để cài đặt tiện ích này vào Blog của bạn, chỉ cần đặt toàn bộ phần code dưới đây vào một tiện ích HTML/Javascript là xong.
<style type="text/css">
.halink li{
padding:5px;
margin:0 0 0px 0px;
border-bottom:1px dotted #234;
min-height:70px;
}
.halink li:hover{
background: #F3F7FA;
}
.halink li img {
height:50px;
width:50px;
list-style:none;
float:left;
margin-right:10px;
margin-top:10px;
}
.halink li a {
list-style:none;
color:#2266AA;
font-size:11px;
}
</style>
<script type="text/javascript">
function showrecentcomments(json) {
for (var i = 0; i < numcomments; i++) {
var entry = json.feed.entry[i];
var alturl;

if (i == json.feed.entry.length) break;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
alturl = entry.link[k].href;
break;
}
}
var photoslink=new Array()
photoslink[0]='<img src="http://bit.ly/hqSVKw"/>';
admin='<img src="URL_ảnh đại diện của bạn là Admin"/>';
anonymous='<img src="URL_ảnh đại diện Nặc danh"/>';

document.write('<div class="halink">','<li>');

alturl = alturl.replace("#", "#comment-");
var postlink = alturl.split("#");
postlink = postlink[0];
var linktext = postlink.split("/");
linktext = linktext[5];
linktext = linktext.split(".html");
linktext = linktext[0];
var posttitle = linktext.replace(/-/g," ");
posttitle = posttitle.link(postlink);
var commentdate = entry.published.$t;
var cdyear = commentdate.substring(0,4);
var cdmonth = commentdate.substring(5,7);
var cdday = commentdate.substring(8,10);
var monthnames = new Array();
monthnames[1] = "tháng 01";
monthnames[2] = "tháng 02";
monthnames[3] = "tháng 03";
monthnames[4] = "tháng 04";
monthnames[5] = "tháng 05";
monthnames[6] = "tháng 06";
monthnames[7] = "tháng 07";
monthnames[8] = "tháng 08";
monthnames[9] = "tháng 09";
monthnames[10] = "tháng 10";
monthnames[11] = "tháng 11";
monthnames[12] = "tháng 12";
if ("content" in entry) {
var comment = entry.content.$t;}
else
if ("summary" in entry) {
var comment = entry.summary.$t;}
else var comment = "";
var re = /<s[^>]*>/g;
comment = comment.replace(re, "");

if (!standardstyling) document.write('<div class="bbrecpost">');


if (showcommentdate == true) document.write(' ' + cdday + ' ' + monthnames[parseInt(cdmonth,10)] + ' năm ' + cdyear + ' ');

if( entry.author[0].name.$t == 'Tên bạn'){ document.write(admin)}
else{
if( entry.author[0].name.$t == 'Anonymous'){ document.write(anonymous)}
else{document.write(photoslink)}
}
document.write('<a href="' + alturl + '">' + entry.author[0].name.$t + '' +'</a> ');
if (showposttitle == true) document.write(' nhận xét về: ' + posttitle);
if (!standardstyling) document.write('</div><div class="bbrecpostsum">');
if (standardstyling) document.write('<div class="txtmsg"></div>');
if (comment.length < numchars) {
if (standardstyling) document.write('<i>');
document.write(comment);
if (standardstyling) document.write('</i>');}

else
{
if (standardstyling) document.write('<i>');
comment = comment.substring(0, numchars);
var quoteEnd = comment.lastIndexOf(" ");
comment = comment.substring(0, quoteEnd);
document.write(comment + '...<a href="' + alturl + '">(Đọc tiếp ...)</a>');
if (standardstyling) document.write('</i>');}
if (!standardstyling) document.write('</div>');
if (standardstyling) document.write('<br/>');

document.write('</div>','</li>');

}
if (!standardstyling) document.write('<div class="bbwidgetfooter">');
if (standardstyling) document.write('<br/>');
if (!standardstyling) document.write('</div>');

}
</script>
<script style="text/javascript">
var numcomments = 5;
var showcommentdate = true;
var showposttitle = false;
var numchars = 100;
var standardstyling = true;
</script>
<script src="http://huynh-nhat-ha.blogspot.com/feeds/comments/default?alt=json-in-script&
callback=showrecentcomments"></script>
Bạn cần điều chỉnh những chỗ được đánh dấu màu đỏ. Bạn cần thay URL cho ảnh đại diện của bạn là Admin và ảnh đại diện Nặc danh; có thể thay đổi số nhận xét được hiển thị (numcomments).
More about

Tiện ích thống kê blog bản hoàn thiện

Người đăng: chaobuoisang

Tiện ích thống kê blog giúp người đọc và admin nắm được thông tin cơ bản về blog như tổng số bài viết, nhận xét, người đăng ký nhận bài viết qua email, hay thậm chí cả người theo dõi trên Twitter.

Để cài đặt tiện ích này, bạn chỉ cần dán toàn bộ phần mã dưới đây vào một tiện ích HTML/Javascript.

<script language='javascript' type='text/javascript'>
function snfbc(json){
document.write(parseInt(json.value.items[0].feed.entry.circulation));
}
function xfeedburner(uri){
if(uri){
document.write('<sc'+'ript src="http://pipes.yahoo.com/pipes/pipe.run?_id=e61a81bcdb1660ebf8bc1a7c130f1f7b&_render=json&uri='+uri+'&_callback=snfbc" type="text/javascript"></s'+'cript>');
} else{
return false;
}
}

function sntwitter(json){
document.write(parseInt(json.followers_count));
}
function xtwitter(user){
if(user){
document.write('<scr'+'ipt src="http://twitter.com/users/show/'+user+'.json?callback=sntwitter" type="text/javascript"></scr'+'ipt>');
} else{
return false;
}
}

</script>
<div style='float:left;padding:8px;'>
<img src="http://img72.imageshack.us/img72/5376/twittery.png" style="margin-right: 8px; float:left;" />
<a href="http://twitter.com/huynhatha" target="_blank" ><span style="float: left; margin-top:2px;padding:0;font-size:18px;color:#000;font-family:Arial,Helvetica,sans-serif;">
<script type="text/javascript"> xtwitter("huynhatha") </script> Người theo dõi</span><br /><!--[if IE]><br /><![endif]-->
<span style="text-align:left;margin:0px;padding:0px;font-size: 12px;color:#000;font-family:Arial,Helvetica,sans-serif;">Theo dõi trên Twitter</span></a>
</div><div style='clear:both;'/>

<div style='float:left;padding:8px;'>
<img src="http://img638.imageshack.us/img638/3243/rsss.png" style="margin-right:8px;float:left;" />
<a href="http://feeds.feedburner.com/huynh-nhat-ha" target="_blank" ><span style="float:left;margin-top:2px;padding:0;font-size: 18px; color:#000;font-family:Arial,Helvetica,sans-serif;">
<script type="text/javascript"> xfeedburner("huynh-nhat-ha") </script> Người đăng ký</span><br /><!--[if IE]><br /><![endif]-->
<span style="text-align:left;margin:0px;padding:0px;font-size:12px; color:#000;font-family:Arial,Helvetica,sans-serif;">Đăng ký!</span></a>
</div><div style='clear:both;'/>

<div style='float:left;padding:8px;'>
<img src="http://img684.imageshack.us/img684/6793/usersh.png" style="margin-right:8px;float:left;" />
<span style="float:left;margin-top:2px;padding:0;font-size:18px;color:#000;font-family:Arial,Helvetica,sans-serif;">
<script style="text/javascript">
function showpostcount(json) {
document.write(parseInt(json.feed.openSearch$totalResults.$t,10));
}</script>
<script src="http://huynh-nhat-ha.blogspot.com/feeds/comments/default?alt=json-in-script&callback=showpostcount"></script> Nhận xét</span><br /><!--[if IE]><br /><![endif]-->
<span style="text-align:left;margin:0px;padding:0px;font-size: 12px;color:#000;font-family:Arial, Helvetica, sans-serif;"></span>
</div><div style='clear:both;'/>

<div style='float:left;padding:8px;'>
<img src="http://img707.imageshack.us/img707/3875/bloggerf.png" style="margin-right:8px;float:left;" />
<a href="http://huynh-nhat-ha.blogspot.com/search/label/?max-results=999" target="_blank"><span style="float:left;margin-top:2px;padding:0;font-size: 18px; color:#000;font-family:Arial,Helvetica,sans-serif;">
<script src="http://huynh-nhat-ha.blogspot.com/feeds/posts/default?alt=json-in-script&callback=showpostcount"></script> Bài viết</span><br /><!--[if IE]><br /><![endif]-->
<span style="text-align:left;margin:0px;padding:0px;font-size:12px; color:#000;font-family:Arial,Helvetica,sans-serif;">Xem tất cả!</span></a>
</div><div style='clear:both;'/>
Bạn cần thay đổi những phần được đánh dấu mảu đỏ lần lượt thành username trên Twitter, tên tài khoản Feedburner và tên địa chỉ blogspot của bạn.
More about

Làm biến hình biểu tượng cảm xúc sử dụng CSS3

Người đăng: chaobuoisang on Thứ Hai, 22 tháng 11, 2010

Trong một văn bản web, đôi khi người viết dùng một nhóm ký tự để tạo biểu tượng cảm xúc và ít nhiều biểu tượng đó nói lên được cảm xúc mà tác giả muốn bày tỏ.

Ví dụ (:   :-O

Sử dụng CSS3 có thể làm biến hình các biểu tượng cảm xúc này một cách độc đáo. Trước tiên, bạn hãy tạo phần CSS như dưới đây.
span.smile {
color: Cyan;
display: inline-block;
font-family: Tahoma;
font-size: 20px;
padding: 0 5px;
}
span.smile.left {
-webkit-transform: rotate(-90deg); /* Chrome y Safari */
-moz-transform: rotate(-90deg); /* Firefox */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); /* Internet Explorer */
-o-transform: rotate(-90deg); /* Opera */
}
span.smile.right {
-webkit-transform: rotate(90deg); /* Chrome y Safari */
-moz-transform: rotate(90deg); /* Firefox */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); /* Internet Explorer */
-o-transform: rotate(90deg); /* Opera */
}
Tiếp đến là tạo cấu trúc HTML đơn giản như thế này.

<span class="smile right">:-)</span>

Bên dưới là kết quả một số biểu tượng cảm xúc sau khi sử dụng thủ thuật này.

More about