Hiển thị các bài đăng có nhãn cách làm blog đẹp. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn cách làm blog đẹp. Hiển thị tất cả bài đăng

Tạo hình ảnh cuộn ngang bằng JQuery cho blogger

Với thủ thuật này bạn có thể tạo ra một loạt hình ảnh được cuộn với nút di chuyển bắt mắt, có thể sử dụng để chia sẽ hình ảnh, icon cảm xúc, sản phẩm, hoặc có thể sử dụng nó như một chức năng cho các bài viết mà bạn cần show trên trang chủ.
Read More...

Chèn nhạc vào blog - Cách chèn playlist "nhạc của tui" vào blog

Thật ra cách chèn nhạc rất đơn giản, vì các website phát nhạc đã hỗ trợ code để chúng ta có thể chèn nhạc vào blog hay website.

VD: Để chèn một playlist có trình phát nhạc mình làm như sau:

1. Đăng ký 1 tài khoản trên http://nhaccuatui.com
2. Đăng nhập vào tài khoản vừa tạo và tạo 1 playlist bằng cách thêm từng bài hát yêu thích vào Playlist
3. Di chuột vào chữ "Nghe nhạc của tui" góc trên bên phải rồi chọn playlist muốn thêm vào blog
4.Copy code ở dòng "Copy vào blog" có dạng :

<object width="300" height="400">  <param name="movie" value="http://www.nhaccuatui.com/l/BSc2RmfM10cP" />  <param name="quality" value="high" />  <param name="wmode" value="transparent" />  <param name="allowscriptaccess" value="always" />  <param name="flashvars" value="&autostart=false" />  <embed src="http://www.nhaccuatui.com/l/BSc2RmfM10cP" flashvars="target=blank&autostart=false" allowscriptaccess="always" quality="high" wmode="transparent" type="application/x-shockwave-flash" width="300" height="400"></embed></object>

Có 3 tùy chọn:
- Bình thường : Trình phát nhạc sẽ chơi nhạc sau khi ấn Play
- Tự động play : Khi vào web, trình phát nhạc tự động chơi nhạc
- Nhạc nền : Trình phát nhạc được ẩn và tự động chơi nhạc

5. Tạo 1 widget và "Paste" vào
6. Ấn "Lưu"

Vậy là chúng ta đã có 1 trình chơi nhạc với những bài hát yêu thích
Read More...

Tạo con trỏ chuột cho blog với hình ảnh bất kỳ

Thủ thuật blog: Cách tạo con trỏ chuột cho blog với hình ảnh bất kỳ




Giới thiệu: Hiệu ứng JavaScript này cho phép bạn tạo dáng cho con trỏ chuột trên trang web. Điểm đặc biệt của là nó cho phép bạn sử dụng hình ảnh bất kì để tạo dáng cho con trỏ chuột, chứ không nhất thiết phải là tập tin dạng .ico, .cur

Lưu ý: Tâm chuột là chính giữa. Cho dù bạn có chèn hình gì đi chăng nữa thì phần tâm vẫn hiện hình mũi tên trắng, và hình khi tô khối là dấu +.

Điều này có nghĩa là: Thủ thuật chỉ tạo thêm lớp ảnh bao quanh con chuột bình thường mà thôi.


CÁCH THỰC HIỆN

1. Đăng nhập Blogger Dashboard (Bảng điều khiển)
2. Chọn: Design (Thiết kế) > Edit HTML (Chỉnh sữa HTML)
3. Không cần đánh dấu chọn ô: Expand Widget Templates (Mở rộng mẫu tiện ích)

4. Chèn script

Bước 1: Tìm thẻ đóng </head>

- Thêm vào trước nó đoạn mã sau:


<!-- Tạo trỏ chuột với hình ảnh bất kỳ -->
<script type='text/javascript'>
//<![CDATA[
var skinableCursor = {
 skinPath : 'LINK_HÌNH_45x45_pixel', // Thay Link hình của bạn vào đây

 // private properties. Browser detect. Do not touch! :)
 IE : ( document.all && document.getElementById && !window.opera ),
 FF : (!document.all && document.getElementById && !window.opera),
 OP : (document.all && document.getElementById && window.opera),

 // private properties. Cursor attributes. Do not touch! :)
 cursor : {
  lt : { x : '0px', y : '0px', w : '19px', h : '26px' , dx : -22, dy : -22 },
  rt : { x : '19px', y : '0px', w : '26px', h : '19px' , dx : -3, dy : -22 },
  rb : { x : '26px', y : '19px', w : '19px', h : '26px' , dx : 4,  dy : -3 },
  lb : { x : '0px', y : '26px', w : '26px', h : '19px' , dx : -22, dy : 4 }
 },

 // private method. Initialize
 init : function () {

  skinableCursor.cursor.browserDelta = (skinableCursor.IE ? 2 : 0);

  if ( skinableCursor.FF || skinableCursor.OP ) {
   document.addEventListener("DOMContentLoaded", skinableCursor.domReady, false);
  }

  if ( skinableCursor.IE ) {

   document.write("<scr" + "ipt id=__ieinit defer=true " +
    "src=//:><\/script>");

   var script = document.getElementById("__ieinit");
   script.onreadystatechange = function() {
    if ( this.readyState != "complete" ) return;
    this.parentNode.removeChild( this );
    skinableCursor.domReady();
   };
   script = null;
  }
 },

 // private method.
 domReady : function () {

  skinableCursor.create();

  if ( skinableCursor.FF || skinableCursor.OP ) {
   var s = document.createElement('style');
   s.innerHTML = '* { cursor: inherit; } html { height: 100%; } body, html { cursor: crosshair; }';
   document.body.appendChild(s);
   document.addEventListener('mousemove', skinableCursor.move, false);
  }

  if ( skinableCursor.IE ) {
   var s = document.createStyleSheet()
   s.addRule("*", "cursor: inherit");
   s.addRule("body", "cursor: crosshair");
   s.addRule("html", "cursor: crosshair");
   document.attachEvent('onmousemove', skinableCursor.move);
  }

  var anchors = document.getElementsByTagName('a');
  for (x = 0; x < anchors.length; x++) {
   if ( skinableCursor.FF || skinableCursor.OP ) {
    anchors[x].addEventListener('mousemove', skinableCursor.events.anchor, false);
    anchors[x].addEventListener('mouseout', skinableCursor.events.show, false);
   }

   if ( skinableCursor.IE ) {
    anchors[x].attachEvent('onmousemove', skinableCursor.events.anchor);
    anchors[x].attachEvent('onmouseout', skinableCursor.events.show);
   }
  }
 },

 // private method. Create cursor
 create : function () {

  function create(el, d) {
   el.style.position = 'absolute';
   el.style.overflow = 'hidden';
   el.style.display = 'none';
   el.style.left = d.x;
   el.style.top = d.y;
   el.style.width = d.w;
   el.style.height = d.h;
   if ( skinableCursor.IE ) {
    el.innerHTML = '<img src="' + skinableCursor.skinPath + '" style="margin: -' + d.y + ' 0px 0px -' + d.x + '">';
   } else {
    el.style.background = 'url(' + skinableCursor.skinPath + ') -' + d.x + ' -' + d.y;
   }
   return el;
  }
  var c = skinableCursor.cursor;
  c.lt.el = create(document.createElement('div'), c.lt);
  c.rt.el = create(document.createElement('div'), c.rt);
  c.rb.el = create(document.createElement('div'), c.rb);
  c.lb.el = create(document.createElement('div'), c.lb);

  document.body.appendChild(c.lt.el);
  document.body.appendChild(c.rt.el);
  document.body.appendChild(c.rb.el);
  document.body.appendChild(c.lb.el);
 },

 // private method. Move cursor
 move : function (e) {

  function pos(el, x, y) {
   el.el.style.left = x + el.dx + 'px';
   el.el.style.top = y + el.dy + 'px';
  }

  function hide(el, x, y) {
   var w = document.documentElement.clientWidth;
   var h = document.documentElement.clientHeight;
   var deltaX = w - (x + el.dx + parseInt(el.w) - skinableCursor.cursor.browserDelta);
   var deltaY = h - (y + el.dy + parseInt(el.h) - skinableCursor.cursor.browserDelta);
   if (!skinableCursor.noSkin) {
    el.el.style.display = deltaX > 0 ? (deltaY > 0 ? 'block' : 'none') : 'none';
   }
  }
  var p = skinableCursor.getMousePosition(e);
  var s = skinableCursor.getScrollPosition();
  var c = skinableCursor.cursor;
  var x = p.x + s.x - c.browserDelta;
  var y = p.y + s.y - c.browserDelta;

  hide(c.lt, p.x, p.y);
  hide(c.rt, p.x, p.y);
  hide(c.rb, p.x, p.y);
  hide(c.lb, p.x, p.y);

  pos(c.lt, x, y);
  pos(c.rt, x, y);
  pos(c.rb, x, y);
  pos(c.lb, x, y);

 },

 // private method. Returns mouse position
 getMousePosition : function (e) {

  e = e ? e : window.event;
  var position = {
   'x' : e.clientX,
   'y' : e.clientY
  }

  return position;

 },

 // private method. Get document scroll position
 getScrollPosition : function () {

  var x = 0;
  var y = 0;

  if( typeof( window.pageYOffset ) == 'number' ) {
   x = window.pageXOffset;
   y = window.pageYOffset;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
   x = document.documentElement.scrollLeft;
   y = document.documentElement.scrollTop;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
   x = document.body.scrollLeft;
   y = document.body.scrollTop;
  }

  var position = {
   'x' : x,
   'y' : y
  }

  return position;
 },

 // private property / methods.
 events : {

  anchor : function (e) {
   skinableCursor.noSkin = true;
   document.body.style.cursor = 'pointer';

   var c = skinableCursor.cursor;
   c.lt.el.style.display = 'none';
   c.rt.el.style.display = 'none';
   c.rb.el.style.display = 'none';
   c.lb.el.style.display = 'none';
  },

  show : function () {
   skinableCursor.noSkin = false;
   document.body.style.cursor = 'crosshair';
  }
 }
}
skinableCursor.init();
//]]>
</script>

Kích cỡ ảnh theo trỏ chuột là: 45x45 pixel.


Bước 2: Save template. (Lưu mẫu)


Một số mẫu tạo dáng cho trỏ chuột với hình ảnh




THE END.
Read More...

Hiệu ứng sao rơi theo con trỏ chuột cho blog

Ảnh minh họa
Thủ thuật blog: Hiệu ứng sao rơi theo con trỏ chuột cho blog

Giới thiệu: Di chuột tới đâu, sao rơi lung linh tới đó. Một hiệu ứng có đã khá lâu nhưng dùng vẫn rất đẹp. Đây là hiệu ứng mình rất thích. Đặc biệt nếu dùng cho nền tối, chọn màu trắng cho sao thì trông sẽ như tuyết rơi vậy :)

Khuyết điểm duy nhất là không được mượt lắm trên IE. Thêm nữa là: sẽ làm giãn bề rộng hay chiều cao blog nếu ta rà chuột ra biên, hay mép blog.


CÁCH THỰC HIỆN

1. Đăng nhập Blogger Dashboard (Bảng điều khiển)
2. Chọn: Design (Thiết kế) > Edit HTML (Chỉnh sữa HTML)
3. Không cần đánh dấu chọn ô: Expand Widget Templates (Mở rộng mẫu tiện ích)

4. Chèn script

Bước 1: Tìm thẻ đóng </head>

- Thêm vào trước nó đoạn mã sau:


<!-- Sao rơi theo trỏ chuột -->
<script type='text/javascript'> 
// <![CDATA[ 
var colour="#EF6B7B"; // Mã màu sao rơi
var sparkles=80; 
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="2px"; 

rlef.style.left="0px"; 

rdow.style.top="0px"; 

rdow.style.left="2px"; 

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ước 2: Save template. (Lưu mẫu)

Nguồn: Sưu tầm 
Read More...

Tạo slide trình diễn bài viết cho blog

Thủ thuật blog - Tạo slide trình diễn bài viết


Kwicks Slider for Blogger

Giới thiệu: Loại slider thường thấy ở các trang Yahoo, tin tức. Nội dung trên Slider thường là các bài đăng mà bạn tâm đắc, bạn muốn hiển thị bài đăng nào trên slider này thì bạn chèn link bài đăng đó vào. Slider thường được đặt ở phần header nhằm dễ đập vào mắt khách xem, dễ thu hút sự chú ý của khách, và nhìn cũng đẹp mắt hơn.


CÁCH THỰC HIỆN

1. Đăng nhập Blogger Dashboard (Bảng điều khiển)
2. Chọn: Design (Thiết kế) > Edit HTML (Chỉnh sữa HTML)
3. Không cần đánh dấu chọn ô: Expand Widget Templates (Mở rộng mẫu tiện ích)

4. Chèn script

Bước 1: Yêu cầu phải có jQuery. (Có rồi thì bỏ qua)



1. Tải về máy một trong ba phiên bản jQuery sau: 1.3.1 | 1.3.2 | 1.4.3

2. Up lên host cho link direct.

- Gợi ý: Dùng host của google: http://code.google.com/
- Hướng dẫn: Here
- Sau khi up lên host, thì lấy link vừa up.

3. Tìm thẻ <head>

- Thêm vào dưới nó đoạn code sau:
(Nhớ thay jQuery.JS bằng link mới bạn vừa up lên host)

<script src='jQuery.JS' type='text/javascript'/>


4. Save template. (Lưu mẫu)


Bước 2: Tìm dòng ]]></b:skin>

- Thêm vào trước nó đoạn code CSS sau:

/* Kwicks Slider for Blogger (1)*/
/*Khung slider chính*/
#slider{
     width:900px; /*Bề rộng khung slider
*Chỉnh bằng với tổng bề rộng các ảnh thumbnail cộng lại
*Không có hiệu lực nếu chèn slider trong 1 widget riêng biệt - Nghĩa là sẽ tự động có width tối đa*/
     height:100%; 
     margin:auto;
     padding:0px 0 0 0;
     position:relative;
}

#slider h2{display:none;}

.kwicks_container{
     width:100%;
     margin:0 auto;
}

/*Định dạng ảnh slide
 *Là hình thumbnail các ảnh xếp nhau trên slider khi chưa rê chuột vào*/
.kwicks li{
     display:block;      
     float:left;
     overflow:hidden; 
     padding:0;
     cursor:pointer;
     height:300px; /*Chiều cao ảnh*/
     width:180px; /*Bề rộng ảnh thumbnail
*5 bài viết thì có 5 thumpnail ảnh, suy ra bề rộng slider=900px*/
     z-index:2;
}

/*Màu chữ trong khung tiêu đề*/
.kwicks li a{
     color:#adadad;
     outline:none;
     display:block;
     z-index:100;
     cursor:pointer;
     text-decoration:none;
}

/*Tạo bóng đổ*/
li#kwick{
     -moz-box-shadow:0 0 10px #333;
     -webkit-box-shadow:0 0 10px #333;
      box-shadow:0 0 10px #333;
}

/*Màu chữ khi rê chuột vào tiêu đề*/
.kwicks a:hover,.kwicks #active{
     color:#FFF;
}

/*Chỉnh độ mờ nền khung tiêu đề*/
.slider{
     filter:alpha(opacity=80);
     opacity:0.8;
     -moz-opacity:0.8;
}

/*Khung tiêu đề*/
.slider{
     width:100%; /*Bề rộng khung tiêu đề*/
     height:100px; 
     background:#343434; /*Màu nền khung tiêu đề*/
     position:absolute;
     display:block;
     bottom:0;
     left:0;
     z-index:2;
     padding:5px 15px;
     font: 9pt Tahoma; /*Font chữ và kiểu chữ mô tả*/
     line-height:1em;
     cursor:pointer;
}

/*Định dạng tiêu đề*/
.sliderheading{
     display:block;
     font: 11pt Tahoma; /*Font chữ và kiểu chữ tiêu đề*/
     font-weight:bold; /*Chữ in đậm*/
     margin:2px;
}

Bước 3: Tìm thẻ đóng </head>

- Thêm vào trước nó đoạn code sau:

<!-- Kwicks Slider for Blogger (2) -->
<script type='text/javascript'>
//<![CDATA[
/*
 * jQuery Easing 1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 * TERMS OF USE - jQuery Easing
 * Open source under the BSD License. 
 * Copyright © 2008 George McGinley Smith
*/

// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
 def: 'easeOutQuad',
 swing: function (x, t, b, c, d) {
  //alert(jQuery.easing.default);
  return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
 },
 easeInQuad: function (x, t, b, c, d) {
  return c*(t/=d)*t + b;
 },
 easeOutQuad: function (x, t, b, c, d) {
  return -c *(t/=d)*(t-2) + b;
 },
 easeInOutQuad: function (x, t, b, c, d) {
  if ((t/=d/2) < 1) return c/2*t*t + b;
  return -c/2 * ((--t)*(t-2) - 1) + b;
 },
 easeInCubic: function (x, t, b, c, d) {
  return c*(t/=d)*t*t + b;
 },
 easeOutCubic: function (x, t, b, c, d) {
  return c*((t=t/d-1)*t*t + 1) + b;
 },
 easeInOutCubic: function (x, t, b, c, d) {
  if ((t/=d/2) < 1) return c/2*t*t*t + b;
  return c/2*((t-=2)*t*t + 2) + b;
 },
 easeInQuart: function (x, t, b, c, d) {
  return c*(t/=d)*t*t*t + b;
 },
 easeOutQuart: function (x, t, b, c, d) {
  return -c * ((t=t/d-1)*t*t*t - 1) + b;
 },
 easeInOutQuart: function (x, t, b, c, d) {
  if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
  return -c/2 * ((t-=2)*t*t*t - 2) + b;
 },
 easeInQuint: function (x, t, b, c, d) {
  return c*(t/=d)*t*t*t*t + b;
 },
 easeOutQuint: function (x, t, b, c, d) {
  return c*((t=t/d-1)*t*t*t*t + 1) + b;
 },
 easeInOutQuint: function (x, t, b, c, d) {
  if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
  return c/2*((t-=2)*t*t*t*t + 2) + b;
 },
 easeInSine: function (x, t, b, c, d) {
  return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
 },
 easeOutSine: function (x, t, b, c, d) {
  return c * Math.sin(t/d * (Math.PI/2)) + b;
 },
 easeInOutSine: function (x, t, b, c, d) {
  return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
 },
 easeInExpo: function (x, t, b, c, d) {
  return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
 },
 easeOutExpo: function (x, t, b, c, d) {
  return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
 },
 easeInOutExpo: function (x, t, b, c, d) {
  if (t==0) return b;
  if (t==d) return b+c;
  if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
  return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
 },
 easeInCirc: function (x, t, b, c, d) {
  return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
 },
 easeOutCirc: function (x, t, b, c, d) {
  return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
 },
 easeInOutCirc: function (x, t, b, c, d) {
  if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
  return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
 },
 easeInElastic: function (x, t, b, c, d) {
  var s=1.70158;var p=0;var a=c;
  if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
  if (a < Math.abs(c)) { a=c; var s=p/4; }
  else var s = p/(2*Math.PI) * Math.asin (c/a);
  return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
 },
 easeOutElastic: function (x, t, b, c, d) {
  var s=1.70158;var p=0;var a=c;
  if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
  if (a < Math.abs(c)) { a=c; var s=p/4; }
  else var s = p/(2*Math.PI) * Math.asin (c/a);
  return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
 },
 easeInOutElastic: function (x, t, b, c, d) {
  var s=1.70158;var p=0;var a=c;
  if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
  if (a < Math.abs(c)) { a=c; var s=p/4; }
  else var s = p/(2*Math.PI) * Math.asin (c/a);
  if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
  return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
 },
 easeInBack: function (x, t, b, c, d, s) {
  if (s == undefined) s = 1.70158;
  return c*(t/=d)*t*((s+1)*t - s) + b;
 },
 easeOutBack: function (x, t, b, c, d, s) {
  if (s == undefined) s = 1.70158;
  return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
 },
 easeInOutBack: function (x, t, b, c, d, s) {
  if (s == undefined) s = 1.70158; 
  if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
  return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
 },
 easeInBounce: function (x, t, b, c, d) {
  return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
 },
 easeOutBounce: function (x, t, b, c, d) {
  if ((t/=d) < (1/2.75)) {
   return c*(7.5625*t*t) + b;
  } else if (t < (2/2.75)) {
   return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
  } else if (t < (2.5/2.75)) {
   return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
  } else {
   return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
  }
 },
 easeInOutBounce: function (x, t, b, c, d) {
  if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
  return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
 }
});
//]]>
</script>

<script type='text/javascript'>
//<![CDATA[
/*
 Kwicks for jQuery 1.5.1
 Copyright (c) 2008 Jeremy Martin
 http://www.jeremymartin.name/projects.php?project=kwicks
  Licensed under the MIT license:
  http://www.opensource.org/licenses/mit-license.php
 Any and all use of this script must be accompanied by this copyright/license notice in its present form.
*/

(function($){
 $.fn.kwicks = function(options) {
  var defaults = {
   isVertical: false,
   sticky: false,
   defaultKwick: 0,
   event: 'mouseover',
   spacing: 0,
   duration: 500
  };
  var o = $.extend(defaults, options);
  var WoH = (o.isVertical ? 'height' : 'width'); // WoH = Width or Height
  var LoT = (o.isVertical ? 'top' : 'left'); // LoT = Left or Top
  
  return this.each(function() {
   container = $(this);
   var kwicks = container.children('li');
   var normWoH = kwicks.eq(0).css(WoH).replace(/px/,''); // normWoH = Normal Width or Height
   if(!o.max) {
    o.max = (normWoH * kwicks.size()) - (o.min * (kwicks.size() - 1));
   } else {
    o.min = ((normWoH * kwicks.size()) - o.max) / (kwicks.size() - 1);
   }
   // set width of container ul
   if(o.isVertical) {
    container.css({
     width : kwicks.eq(0).css('width'),
     height : (normWoH * kwicks.size()) + (o.spacing * (kwicks.size() - 1)) + 'px'
    });    
   } else {
    container.css({
     width : (normWoH * kwicks.size()) + (o.spacing * (kwicks.size() - 1)) + 'px',
     height : kwicks.eq(0).css('height')
    });    
   }

   // pre calculate left or top values for all kwicks but the first and last
   // i = index of currently hovered kwick, j = index of kwick we're calculating
   var preCalcLoTs = []; // preCalcLoTs = pre-calculated Left or Top's
   for(i = 0; i < kwicks.size(); i++) {
    preCalcLoTs[i] = [];
    // don't need to calculate values for first or last kwick
    for(j = 1; j < kwicks.size() - 1; j++) {
     if(i == j) {
      preCalcLoTs[i][j] = o.isVertical ? j * o.min + (j * o.spacing) : j * o.min + (j * o.spacing);
     } else {
      preCalcLoTs[i][j] = (j <= i ? (j * o.min) : (j-1) * o.min + o.max) + (j * o.spacing);
     }
    }
   }
   
   // loop through all kwick elements
   kwicks.each(function(i) {
    var kwick = $(this);
    // set initial width or height and left or top values
    // set first kwick
    if(i === 0) {
     kwick.css(LoT, '0px');
    } 
    // set last kwick
    else if(i == kwicks.size() - 1) {
     kwick.css(o.isVertical ? 'bottom' : 'right', '0px');
    }
    // set all other kwicks
    else {
     if(o.sticky) {
      kwick.css(LoT, preCalcLoTs[o.defaultKwick][i]);
     } else {
      kwick.css(LoT, (i * normWoH) + (i * o.spacing));
     }
    }
    // correct size in sticky mode
    if(o.sticky) {
     if(o.defaultKwick == i) {
      kwick.css(WoH, o.max + 'px');
      kwick.addClass('active');
     } else {
      kwick.css(WoH, o.min + 'px');
     }
    }
    kwick.css({
     margin: 0,
     position: 'absolute'
    });
    
    kwick.bind(o.event, function() {
     // calculate previous width or heights and left or top values
     var prevWoHs = []; // prevWoHs = previous Widths or Heights
     var prevLoTs = []; // prevLoTs = previous Left or Tops
     kwicks.stop().removeClass('active');
     for(j = 0; j < kwicks.size(); j++) {
      prevWoHs[j] = kwicks.eq(j).css(WoH).replace(/px/, '');
      prevLoTs[j] = kwicks.eq(j).css(LoT).replace(/px/, '');
     }
     var aniObj = {};
     aniObj[WoH] = o.max;
     var maxDif = o.max - prevWoHs[i];
     var prevWoHsMaxDifRatio = prevWoHs[i]/maxDif;
     kwick.addClass('active').animate(aniObj, {
      step: function(now) {
       // calculate animation completeness as percentage
       var percentage = maxDif != 0 ? now/maxDif - prevWoHsMaxDifRatio : 1;
       // adjsut other elements based on percentage
       kwicks.each(function(j) {
        if(j != i) {
         kwicks.eq(j).css(WoH, prevWoHs[j] - ((prevWoHs[j] - o.min) * percentage) + 'px');
        }
        if(j > 0 && j < kwicks.size() - 1) { // if not the first or last kwick
         kwicks.eq(j).css(LoT, prevLoTs[j] - ((prevLoTs[j] - preCalcLoTs[i][j]) * percentage) + 'px');
        }
       });
      },
      duration: o.duration,
      easing: o.easing
     });
    });
   });
   if(!o.sticky) {
    container.bind("mouseleave", function() {
     var prevWoHs = [];
     var prevLoTs = [];
     kwicks.removeClass('active').stop();
     for(i = 0; i < kwicks.size(); i++) {
      prevWoHs[i] = kwicks.eq(i).css(WoH).replace(/px/, '');
      prevLoTs[i] = kwicks.eq(i).css(LoT).replace(/px/, '');
     }
     var aniObj = {};
     aniObj[WoH] = normWoH;
     var normDif = normWoH - prevWoHs[0];
     kwicks.eq(0).animate(aniObj, {
      step: function(now) {
       var percentage = normDif != 0 ? (now - prevWoHs[0])/normDif : 1;
       for(i = 1; i < kwicks.size(); i++) {
        kwicks.eq(i).css(WoH, prevWoHs[i] - ((prevWoHs[i] - normWoH) * percentage) + 'px');
        if(i < kwicks.size() - 1) {
         kwicks.eq(i).css(LoT, prevLoTs[i] - ((prevLoTs[i] - ((i * normWoH) + (i * o.spacing))) * percentage) + 'px');
        }
       }
      },
      duration: o.duration,
      easing: o.easing
     });
    });
   }
  });
 };
})(jQuery);

$().ready(function() {
 $('.kwicks').kwicks({
  max: 600, // Bề rộng ảnh trải rộng ra khi rê chuột vào 
  duration: 800, // Tỷ lệ trượt mượt của ảnh  
  easing: 'easeOutQuint'
 });
});
//]]>
</script>

Bước 4: Cho hiện slider trên blog (cụ thể là bên dưới khung header)

- Tìm đoạn code có dạng tương tự:

<div id='header'>
<b:section class='header' id='header' maxwidgets='1' showaddelement='yes'>
<b:widget id='HTML3' locked='false' title='' type='HTML'/>
</b:section>
</div>

- Hoặc có template code sẽ là:

<div id='header-wrapper'>
<b:section class='header' id='header' maxwidgets='1' showaddelement='yes'>
<b:widget id='HTML3' locked='false' title='' type='HTML'/>
</b:section>
</div>

- Thêm vào sau nó đoạn code sau:

<!-- Kwicks Slider for Blogger (3) -->
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<b:section id='slider' maxwidgets='1' showaddelement='yes'>
<b:widget id='HTML201' locked='true' title='Slider' type='HTML'/>
</b:section> 
</b:if>

- Đoạn code trên sẽ tạo một tiện ích HTML/Javascript mới (có tên Slider) trên blog của bạn, và được đặt bên dưới khung header.

- Hai dòng được tô đỏ là điều kiện cho slider chỉ xuất hiện ở trang chủ. Nếu muốn hiện ở mọi trang trong blog thì xóa 2 dòng này đi.

Bước 5: Save template. (Lưu mẫu)

Bước 6: Nhấn qua thẻ Page Elements (Phần tử trang)

- Ta sẽ thấy xuất hiện một khung Slider ta vừa tạo ở bước 4
- Nhấn Edit (Chỉnh sữa)
- Dán vào khung Slider đoạn code sau:

<!-- Kwicks Slider for Blogger (4) -->
<div class="kwicks_container">
<ul class="kwicks">

<li id="kwick">
<a href="LINK_bài_viết">
<span class="slider">
<span class="sliderheading">Tiêu_đề</span>Mô_tả</span>
<img width="600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuT3Gfap6IO5u296XqhJfiYR_jYOm22mt2P928MqdYuzkkjEzOs_M_kNppglQN0CkFM5S1Ye_iA02x_Mgatok7ewc5LPh40mOIJD5QCkIkLyKKYY7nPgDGuiwodnkjXNigTG2g1ihOsRJg/"/></a></li>

<li id="kwick">
<a href="LINK_bài_viết">
<span class="slider">
<span class="sliderheading">Tiêu_đề</span>Mô_tả</span>
<img width="600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN5GXw-_VvAh3VLkCsWUabJN30scirhI7pj8hQDbwDy3y-ycmU3bd_q3Ad7nopkIteFjOtH_II7g0R2uIryqGq9KIlSQG6_63rdn18hnzvo7J47QjsCocxmAPW-M1T6-CC1FLI8jX0RaPj/"/></a></li>

<li id="kwick">
<a href="LINK_bài_viết">
<span class="slider">
<span class="sliderheading">Tiêu_đề</span>Mô_tả</span>
<img width="600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJzJnX-p-viWDCDgkyp9DKM20DxCzwe8ZWA4f67BSCLjY_P0X0Syi12v2E2wpKhEvOA6fTojCJ30g_aIBRaeuwwVC3F2UU7zBlfbP0NKo7f6vN_5y7ouhcwCOze6ehCVmC_10KHX03ZLpH/"/></a></li>

<li id="kwick">
<a href="LINK_bài_viết">
<span class="slider">
<span class="sliderheading">Tiêu_đề</span>Mô_tả</span>
<img width="600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOZGj6pDajvdqotgjVh719ib-sW4f-BxYqCIDEPsK4R1i_ljHYcoKlaLyT6-XPy40EDmT7M-k6efI4fOWTsiUioshyphenhyphenmpDrIAtHTXAhUwXcxulP39aScqcMPoU1cVAgc31mm4ebLyVECdgO/"/></a></li>

<li id="kwick">
<a href="LINK_bài_viết">
<span class="slider">
<span class="sliderheading">Tiêu_đề</span>Mô_tả</span>
<img width="600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifbEdOYb4bQ94ELBvJs4Z1HAPhJ1Pt5iEEFlOcRa0Jm4HhcdMMTNO3ELKlmnCIEmoNIj_1BFeMYjbUq8JuPSXG7KWg6-gwS639wl95jA7mWqVNstziKrwi9jBNt7Kz3ftvoUuvilMRryw2/"/></a></li>

</ul></div>

width="600" // Đặt bề rộng ảnh = với giá trị max: 600, (đoạn code cuối ở bước 3)
height="300" // Đặt chiều cao ảnh = với .kwicks li{... height:300px; (code ở bước 2)
Mô_tả // Tóm lược nội dung tiêu đề


Bước 7: Save. (Lưu)


* Mở rộng:

- Bạn có thể đặt vị trí Slider vào bất cứ chỗ nào trên blog. Để ý dưới thẻ <body> có rất nhiều id như:

<div id='header'>...</div>
<div id='menubar'>...</div>
<div id='sidebar'>...</div>
<div id='navigation'>...</div>
<div id='content'>...</div>
...

- Bạn muốn đặt vị trí Slider ở trước hay sau các lớp trên thì cứ dán code ở bước 4 vào vị trí tương ứng.

- Hoặc cũng có thể tạo một widget riêng biệt và dán code ở bước 6 vào. (Cách này thì bỏ qua bước 4)

Sưu tầm từ : http://caytamgui.blogspot.com
THE END.
Read More...

Làm tuyết rơi cho blog - Hiệu ứng tuyết rơi cho blog

Cách làm tuyết rơi cho blog - Hiệu ứng tuyết rơi cho blog đẹp



Ảnh minh họa : Hiệu ứng tuyết rơi cho blog
CÁCH THỰC HIỆN

Hiệu ứng 1:

1. Đăng nhập Blogger Dashboard (Bảng điều khiển)
2. Chọn: Design (Thiết kế) > Page Elements (Chỉnh sữa trang) > Add a Gadget (Thêm tiện ích)
- Chọn thêm tiện ích HTML/Javascript và dán đoạn mã sau vào:

<!-- Hiệu ứng tuyết rơi cho blog -->
<script type='text/javascript'>
//<![CDATA[
var snowmax = 30; // Số lượng tuyết
var snowcolor = new Array("#aaaacc", "#ddddFF", "#ccccDD");
var snowtype = new Array("Arial Black", "Arial Narrow", "Times", "Comic Sans MS");
var snowletter = "*"; //Hình tuyết, có thể thay thành dấu chấm “.” hay các kí tự khác 
var sinkspeed = 0.9; // Tốc độ tuyết rơi
var snowmaxsize = 30; // Size hạt tuyết to nhất
var snowminsize = 10; // Size hạt tuyết nhỏ nhất
var snowingzone = 1;

var snow = new Array();
var marginbottom;
var marginright;
var ScrollTop;
var timer;
var i_snow = 0;
var x_mv = new Array();
var crds = new Array();
var lftrght = new Array();
var browserinfos = navigator.userAgent;
var ie5 = document.all && document.getElementById && !browserinfos.match(/Opera/);
var ns6 = document.getElementById && !document.all;
var opera = browserinfos.match(/Opera/);
var browserok = ie5 || ns6 || opera;
function randommaker(a) 
{
    rand = Math.floor(a * Math.random());
    return rand
}

function iecompattest()
{
 return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body 
}

function InitHeight() {
 if (ie5 || opera) {
  marginbottom = iecompattest().clientHeight + 5; //clientHeight;
  marginright = iecompattest().scrollWidth + 5; //clientWidth
 }
 else {
  if (ns6) {
   marginbottom = self.innerHeight;
   marginright = self.innerWidth
  }
 }
 ScrollTop = document.body.scrollTop;
 if (ScrollTop == 0) {
  if (window.pageYOffset)
   ScrollTop = window.pageYOffset;
  else
   ScrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
 }
 marginbottom += ScrollTop;
}

function initsnow() 
{
 InitHeight()
  var a = snowmaxsize - snowminsize;
  for (i = 0;i <= snowmax;i++) 
 {
  crds[i] = 0;
  lftrght[i] = Math.random() * 15;
  x_mv[i] = 0.03 + Math.random() / 10;
  snow[i] = document.getElementById("s" + i);
  snow[i].style.fontFamily = snowtype[randommaker(snowtype.length)];
  snow[i].size = randommaker(a) + snowminsize;
  snow[i].style.fontSize = snow[i].size + "px";
  snow[i].style.color = snowcolor[randommaker(snowcolor.length)];
  snow[i].sink = sinkspeed * snow[i].size / 5;
  if (snowingzone == 1) { snow[i].posx = randommaker(marginright - snow[i].size) } 
  if (snowingzone == 2) { snow[i].posx = randommaker(marginright / 2 - snow[i].size) }
  if (snowingzone == 3) { snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 4 }
  if (snowingzone == 4) { snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 2 }
  snow[i].posy =  randommaker(2 * marginbottom - marginbottom - 2 * snow[i].size);
  snow[i].style.left = snow[i].posx + "px";
  snow[i].style.top = snow[i].posy + "px"
  } 
  movesnow()
}
 
function movesnow() 
{
 InitHeight();
 for (i = 0; i <= snowmax; i++)
 {
  crds[i] += x_mv[i];
  snow[i].posy += snow[i].sink;
  snow[i].style.left = snow[i].posx + lftrght[i] * Math.sin(crds[i]) + "px";
  snow[i].style.top = snow[i].posy + "px";
  if (snow[i].posy >= marginbottom - 2 * snow[i].size || parseInt(snow[i].style.left) > (marginright - 3 * lftrght[i])) 
  {
   if (snowingzone == 1) { snow[i].posx = randommaker(marginright - snow[i].size) }
   if (snowingzone == 2) { snow[i].posx = randommaker(marginright / 2 - snow[i].size) }
   if (snowingzone == 3) { snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 4 }
   if (snowingzone == 4) { snow[i].posx = randommaker(marginright / 2 - snow[i].size) + marginright / 2 }
   snow[i].posy = ScrollTop 
  }
 }
 var a = setTimeout("movesnow()", 60) 
}
function hidesnow() 
{
 if (window.timer) { clearTimeout(timer) }
 for (i = 0;i <= snowmax;i++)
 { 
  document.getElementById("s" + i).style.visibility = "hidden"
 }
}


for (i = 0;i <= snowmax;i++)
{
 document.write('<div id="s' + i + '" style="POSITION: absolute; Z-INDEX: 9' + i + "; VISIBILITY: visible; TOP:-" + snowmaxsize + 'px; LEFT: 15px;">' + snowletter + "</div>")
}
if (browserok)
{ initsnow() } 
else 
{ document.write('Votre navigateur ne supporte pas ce Javascript, ') };
//]]>
</script>

Save. (Lưu mẫu)


Hiệu ứng 2:

1. Đăng nhập Blogger Dashboard (Bảng điều khiển)
2. Chọn: Design (Thiết kế) > Edit HTML (Chỉnh sữa HTML)
3. Đánh dấu chọn ô: Expand Widget Templates (Mở rộng mẫu tiện ích)

4. Chèn script

Bước 1: Tìm thẻ đóng </head>

- Thêm vào trên nó đoạn code sau:

<!-- Hiệu ứng tuyết rơi cho blog -->
<script type='text/javascript'>
//<![CDATA[
var snowStorm=(function(window,document){this.flakesMax=60;this.flakesMaxActive=60;this.animationInterval=40;this.excludeMobile=true;this.flakeBottom=null;this.followMouse=true;this.snowColor='#fff';this.snowCharacter='&bull;';this.snowStick=false;this.targetElement=null;this.useMeltEffect=true;this.useTwinkleEffect=false;this.usePositionFixed=false;this.freezeOnBlur=true;this.flakeLeftOffset=0;this.flakeRightOffset=0;this.flakeWidth=5;this.flakeHeight=5;this.vMaxX=2.5;this.vMaxY=2.5;this.zIndex=100000;var s=this,storm=this,i,isIE=navigator.userAgent.match(/msie/i),isIE6=navigator.userAgent.match(/msie 6/i),isWin98=navigator.appVersion.match(/windows 98/i),isMobile=navigator.userAgent.match(/mobile/i),isBackCompatIE=(isIE&&document.compatMode==='BackCompat'),noFixed=(isMobile||isBackCompatIE||isIE6),screenX=null,screenX2=null,screenY=null,scrollY=null,vRndX=null,vRndY=null,windOffset=1,windMultiplier=2,flakeTypes=6,fixedForEverything=false,opacitySupported=(function(){try{document.createElement('div').style.opacity='0.5';}catch(e){return false;}
return true;}()),didInit=false,docFrag=document.createDocumentFragment();this.timers=[];this.flakes=[];this.disabled=false;this.active=false;this.meltFrameCount=20;this.meltFrames=[];this.events=(function(){var old=(!window.addEventListener&&window.attachEvent),slice=Array.prototype.slice,evt={add:(old?'attachEvent':'addEventListener'),remove:(old?'detachEvent':'removeEventListener')};function getArgs(oArgs){var args=slice.call(oArgs),len=args.length;if(old){args[1]='on'+args[1];if(len>3){args.pop();}}else if(len===3){args.push(false);}
return args;}
function apply(args,sType){var element=args.shift(),method=[evt[sType]];if(old){element[method](args[0],args[1]);}else{element[method].apply(element,args);}}
function addEvent(){apply(getArgs(arguments),'add');}
function removeEvent(){apply(getArgs(arguments),'remove');}
return{add:addEvent,remove:removeEvent};}());function rnd(n,min){if(isNaN(min)){min=0;}
return(Math.random()*n)+min;}
function plusMinus(n){return(parseInt(rnd(2),10)===1?n*-1:n);}
this.randomizeWind=function(){var i;vRndX=plusMinus(rnd(s.vMaxX,0.2));vRndY=rnd(s.vMaxY,0.2);if(this.flakes){for(i=0;i<this.flakes.length;i++){if(this.flakes[i].active){this.flakes[i].setVelocities();}}}};this.scrollHandler=function(){var i;scrollY=(s.flakeBottom?0:parseInt(window.scrollY||document.documentElement.scrollTop||document.body.scrollTop,10));if(isNaN(scrollY)){scrollY=0;}
if(!fixedForEverything&&!s.flakeBottom&&s.flakes){for(i=s.flakes.length;i--;){if(s.flakes[i].active===0){s.flakes[i].stick();}}}};this.resizeHandler=function(){if(window.innerWidth||window.innerHeight){screenX=window.innerWidth-(!isIE?16:16)-s.flakeRightOffset;screenY=(s.flakeBottom?s.flakeBottom:window.innerHeight);}else{screenX=(document.documentElement.clientWidth||document.body.clientWidth||document.body.scrollWidth)-(!isIE?8:0)-s.flakeRightOffset;screenY=s.flakeBottom?s.flakeBottom:(document.documentElement.clientHeight||document.body.clientHeight||document.body.scrollHeight);}
screenX2=parseInt(screenX/2,10);};this.resizeHandlerAlt=function(){screenX=s.targetElement.offsetLeft+s.targetElement.offsetWidth-s.flakeRightOffset;screenY=s.flakeBottom?s.flakeBottom:s.targetElement.offsetTop+s.targetElement.offsetHeight;screenX2=parseInt(screenX/2,10);};this.freeze=function(){var i;if(!s.disabled){s.disabled=1;}else{return false;}
for(i=s.timers.length;i--;){clearInterval(s.timers[i]);}};this.resume=function(){if(s.disabled){s.disabled=0;}else{return false;}
s.timerInit();};this.toggleSnow=function(){if(!s.flakes.length){s.start();}else{s.active=!s.active;if(s.active){s.show();s.resume();}else{s.stop();s.freeze();}}};this.stop=function(){var i;this.freeze();for(i=this.flakes.length;i--;){this.flakes[i].o.style.display='none';}
s.events.remove(window,'scroll',s.scrollHandler);s.events.remove(window,'resize',s.resizeHandler);if(s.freezeOnBlur){if(isIE){s.events.remove(document,'focusout',s.freeze);s.events.remove(document,'focusin',s.resume);}else{s.events.remove(window,'blur',s.freeze);s.events.remove(window,'focus',s.resume);}}};this.show=function(){var i;for(i=this.flakes.length;i--;){this.flakes[i].o.style.display='block';}};this.SnowFlake=function(parent,type,x,y){var s=this,storm=parent;this.type=type;this.x=x||parseInt(rnd(screenX-20),10);this.y=(!isNaN(y)?y:-rnd(screenY)-12);this.vX=null;this.vY=null;this.vAmpTypes=[1,1.2,1.4,1.6,1.8];this.vAmp=this.vAmpTypes[this.type];this.melting=false;this.meltFrameCount=storm.meltFrameCount;this.meltFrames=storm.meltFrames;this.meltFrame=0;this.twinkleFrame=0;this.active=1;this.fontSize=(10+(this.type/5)*10);this.o=document.createElement('div');this.o.innerHTML=storm.snowCharacter;this.o.style.color=storm.snowColor;this.o.style.position=(fixedForEverything?'fixed':'absolute');this.o.style.width=storm.flakeWidth+'px';this.o.style.height=storm.flakeHeight+'px';this.o.style.fontFamily='arial,verdana';this.o.style.overflow='hidden';this.o.style.fontWeight='normal';this.o.style.zIndex=storm.zIndex;docFrag.appendChild(this.o);this.refresh=function(){if(isNaN(s.x)||isNaN(s.y)){return false;}
s.o.style.left=s.x+'px';s.o.style.top=s.y+'px';};this.stick=function(){if(noFixed||(storm.targetElement!==document.documentElement&&storm.targetElement!==document.body)){s.o.style.top=(screenY+scrollY-storm.flakeHeight)+'px';}else if(storm.flakeBottom){s.o.style.top=storm.flakeBottom+'px';}else{s.o.style.display='none';s.o.style.top='auto';s.o.style.bottom='0px';s.o.style.position='fixed';s.o.style.display='block';}};this.vCheck=function(){if(s.vX>=0&&s.vX<0.2){s.vX=0.2;}else if(s.vX<0&&s.vX>-0.2){s.vX=-0.2;}
if(s.vY>=0&&s.vY<0.2){s.vY=0.2;}};this.move=function(){var vX=s.vX*windOffset,yDiff;s.x+=vX;s.y+=(s.vY*s.vAmp);if(s.x>=screenX||screenX-s.x<storm.flakeWidth){s.x=0;}else if(vX<0&&s.x-storm.flakeLeftOffset<-storm.flakeWidth){s.x=screenX-storm.flakeWidth-1;}
s.refresh();yDiff=screenY+scrollY-s.y;if(yDiff<storm.flakeHeight){s.active=0;if(storm.snowStick){s.stick();}else{s.recycle();}}else{if(storm.useMeltEffect&&s.active&&s.type<3&&!s.melting&&Math.random()>0.998){s.melting=true;s.melt();}
if(storm.useTwinkleEffect){if(!s.twinkleFrame){if(Math.random()>0.9){s.twinkleFrame=parseInt(Math.random()*20,10);}}else{s.twinkleFrame--;s.o.style.visibility=(s.twinkleFrame&&s.twinkleFrame%2===0?'hidden':'visible');}}}};this.animate=function(){s.move();};this.setVelocities=function(){s.vX=vRndX+rnd(storm.vMaxX*0.12,0.1);s.vY=vRndY+rnd(storm.vMaxY*0.12,0.1);};this.setOpacity=function(o,opacity){if(!opacitySupported){return false;}
o.style.opacity=opacity;};this.melt=function(){if(!storm.useMeltEffect||!s.melting){s.recycle();}else{if(s.meltFrame<s.meltFrameCount){s.meltFrame++;s.setOpacity(s.o,s.meltFrames[s.meltFrame]);s.o.style.fontSize=s.fontSize-(s.fontSize*(s.meltFrame/s.meltFrameCount))+'px';s.o.style.lineHeight=storm.flakeHeight+2+(storm.flakeHeight*0.75*(s.meltFrame/s.meltFrameCount))+'px';}else{s.recycle();}}};this.recycle=function(){s.o.style.display='none';s.o.style.position=(fixedForEverything?'fixed':'absolute');s.o.style.bottom='auto';s.setVelocities();s.vCheck();s.meltFrame=0;s.melting=false;s.setOpacity(s.o,1);s.o.style.padding='0px';s.o.style.margin='0px';s.o.style.fontSize=s.fontSize+'px';s.o.style.lineHeight=(storm.flakeHeight+2)+'px';s.o.style.textAlign='center';s.o.style.verticalAlign='baseline';s.x=parseInt(rnd(screenX-storm.flakeWidth-20),10);s.y=parseInt(rnd(screenY)*-1,10)-storm.flakeHeight;s.refresh();s.o.style.display='block';s.active=1;};this.recycle();this.refresh();};this.snow=function(){var active=0,used=0,waiting=0,flake=null,i;for(i=s.flakes.length;i--;){if(s.flakes[i].active===1){s.flakes[i].move();active++;}else if(s.flakes[i].active===0){used++;}else{waiting++;}
if(s.flakes[i].melting){s.flakes[i].melt();}}
if(active<s.flakesMaxActive){flake=s.flakes[parseInt(rnd(s.flakes.length),10)];if(flake.active===0){flake.melting=true;}}};this.mouseMove=function(e){if(!s.followMouse){return true;}
var x=parseInt(e.clientX,10);if(x<screenX2){windOffset=-windMultiplier+(x/screenX2*windMultiplier);}else{x-=screenX2;windOffset=(x/screenX2)*windMultiplier;}};this.createSnow=function(limit,allowInactive){var i;for(i=0;i<limit;i++){s.flakes[s.flakes.length]=new s.SnowFlake(s,parseInt(rnd(flakeTypes),10));if(allowInactive||i>s.flakesMaxActive){s.flakes[s.flakes.length-1].active=-1;}}
storm.targetElement.appendChild(docFrag);};this.timerInit=function(){s.timers=(!isWin98?[setInterval(s.snow,s.animationInterval)]:[setInterval(s.snow,s.animationInterval*3),setInterval(s.snow,s.animationInterval)]);};this.init=function(){var i;for(i=0;i<s.meltFrameCount;i++){s.meltFrames.push(1-(i/s.meltFrameCount));}
s.randomizeWind();s.createSnow(s.flakesMax);s.events.add(window,'resize',s.resizeHandler);s.events.add(window,'scroll',s.scrollHandler);if(s.freezeOnBlur){if(isIE){s.events.add(document,'focusout',s.freeze);s.events.add(document,'focusin',s.resume);}else{s.events.add(window,'blur',s.freeze);s.events.add(window,'focus',s.resume);}}
s.resizeHandler();s.scrollHandler();if(s.followMouse){s.events.add(isIE?document:window,'mousemove',s.mouseMove);}
s.animationInterval=Math.max(20,s.animationInterval);s.timerInit();};this.start=function(bFromOnLoad){if(!didInit){didInit=true;}else if(bFromOnLoad){return true;}
if(typeof s.targetElement==='string'){var targetID=s.targetElement;s.targetElement=document.getElementById(targetID);if(!s.targetElement){throw new Error('Snowstorm: Unable to get targetElement "'+targetID+'"');}}
if(!s.targetElement){s.targetElement=(!isIE?(document.documentElement?document.documentElement:document.body):document.body);}
if(s.targetElement!==document.documentElement&&s.targetElement!==document.body){s.resizeHandler=s.resizeHandlerAlt;}
s.resizeHandler();s.usePositionFixed=(s.usePositionFixed&&!noFixed);fixedForEverything=s.usePositionFixed;if(screenX&&screenY&&!s.disabled){s.init();s.active=true;}};function doDelayedStart(){window.setTimeout(function(){s.start(true);},20);s.events.remove(isIE?document:window,'mousemove',doDelayedStart);}
function doStart(){if(!s.excludeMobile||!isMobile){if(s.freezeOnBlur){s.events.add(isIE?document:window,'mousemove',doDelayedStart);}else{doDelayedStart();}}
s.events.remove(window,'load',doStart);}
s.events.add(window,'load',doStart,false);return this;}(window,document));
//]]>
</script>

* Bạn cũng có thể chèn scrip vào widget thay vì chèn trên thẻ </head>
- Chèn ở widget tuyết sẽ rơi nghiêng từ trái sang phải.

Bước 2: Save template. (Lưu mẫu)
Read More...

Download đấu trường thú 2

  • Đấu trường thú 2

  • Video Gallery