Hiệu ứng tuyết rơi cho website wordpress không sử dụng Plugin

hiệu ứng tuyết rơi cho wordpress

Hiệu ứng tuyết rơi cho website wordpress không sử dụng Plugin

Giáng sinh đang đến gần, và bạn đã chuẩn bị gì cho website wordpress để đón giáng sinh ? Đây chính là cơ hội để tạo ấn tượng mạnh mẽ với độc giả, hãy để trang web của bạn tỏa sáng với chủ đề mới lấy cảm hứng từ không khí tràn ngập niềm vui và sự ấm áp của mùa Giáng sinh.

Đừng quên tích hợp những tính năng đặc biệt, như hiệu ứng tuyết rơi sẽ làm cho trang web của bạn trở nên sống động, độc đáo và chắc chắn sẽ để lại ấn tượng sâu sắc trong lòng độc giả.

Hiệu ứng tuyết rơi cho wordpress không sử dụng Plugin

Có rất nhiều plugin tạo hiệu ứng tuyết rơi cho wordpress có thể giúp bạn làm điều này. Tuy nhiên cá nhân mình không thích cài quá nhiều plugin lên website và mình tin nhiều bạn có cùng trường phái hạn chế plugin cũng như mình.

Mặc dù các plugin tạo hiệu ứng tuyết rơi giúp các bạn không am hiểu về code tích hợp dễ dàng đơn giản, nhưng cũng có một số nhược điểm như: Khả năng tương thích (với các theme hoặc plugin khác), hiệu ứng đơn giản, không có khả năng tùy biến theo ý thích…

>> Tham khảo:

Code hiệu ứng tuyết rơi

 
var snowmax=68;
var snowcolor=new Array("#b8e1fd","#b8e1fd","#b8e1fd","#b8e1fd","#b8e1fd");
var snowtype=new Array("Times","Arial","Times","Verdana");var snowletter="❄︎";var sinkspeed=0.6;var snowmaxsize=50;var snowminsize=8;var snowingzone=1;var snow=new Array();var marginbottom;var marginright;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(range){rand=Math.floor(range*Math.random());return rand}function initsnow(){if(ie5||opera){marginbottom=document.body.scrollHeight;marginright=document.body.clientWidth-15}else if(ns6){marginbottom=document.body.scrollHeight;marginright=window.innerWidth-15}var snowsizerange=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(snowsizerange)+snowminsize;snow[i].style.fontSize=snow[i].size+'px';snow[i].style.color=snowcolor[randommaker(snowcolor.length)];snow[i].style.zIndex=1000;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(){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=0}}var timer=setTimeout("movesnow()",30)}for(i=0;i<=snowmax;i++){document.write("<span id='s"+i+"' style='position:absolute;top:-"+snowmaxsize+"'>"+snowletter+"</span>")}if(browserok){window.onload=initsnow}

Tuỳ chỉnh mặc định:

  • Thay đổi số lượng: snowmax=68
  • Thay đổi màu tuyết: snowcolor=new Array("#b8e1fd","#b8e1fd","#b8e1fd","#b8e1fd","#b8e1fd") // mình đang để mặc định là màu xanh nhạt vì đa số nền web là màu trắng, các bạn thay đổi thành màu trắng #ffffff nếu nền web của bạn có màu hoặc kết hợp nhiều màu
  • Thay đổi biểu tượng: var snowletter=”❄︎” // một số biểu tượng hình bông tuyết khác ❅ ❆ ❄️
  • Thay đổi tốc độ: sinkspeed=0.6
  • Size lớn nhất: snowmaxsize=50
  • Size nhỏ nhất: snowmaxsize=8

Dưới đây là phiên bản hoàn chỉnh, hiện đại và tương thích với tính năng “Tải JavaScript trì hoãn” của LiteSpeed Cache:

<script>
document.addEventListener("DOMContentLoaded", function () {
var snowmax = 24;
var snowcolor = ["#b8e1fd", "#b8e1fd", "#b8e1fd", "#b8e1fd", "#b8e1fd"];
var snowtype = ["Times", "Arial", "Verdana"];
var snowletter = "❄︎";
var sinkspeed = 0.6;
var snowmaxsize = 50;
var snowminsize = 8;
var snowingzone = 1;
var snow = [];
var marginbottom, marginright;
var x_mv = [], crds = [], lftrght = [];
var timer;

function randommaker(range) {
return Math.floor(range * Math.random());
}

function initsnow() {
// Chiều cao vùng rơi của tuyết dựa trên chiều cao trang cuộn
marginbottom = document.documentElement.scrollHeight;

// Chiều rộng vùng rơi của tuyết (trừ một khoảng nhỏ để tránh va chạm)
marginright = window.innerWidth - 15;

var snowsizerange = snowmaxsize - snowminsize;
for (var i = 0; i <= snowmax; i++) {
crds[i] = 0;
lftrght[i] = Math.random() * 15;
x_mv[i] = 0.03 + Math.random() / 10;

// Tạo bông tuyết
var snowflake = document.createElement("span");
snowflake.id = "s" + i;
snowflake.style.position = "absolute";
snowflake.style.top = "-" + snowmaxsize + "px";
snowflake.style.fontFamily = snowtype[randommaker(snowtype.length)];
snowflake.style.fontSize = (randommaker(snowsizerange) + snowminsize) + "px";
snowflake.style.color = snowcolor[randommaker(snowcolor.length)];
snowflake.textContent = snowletter;
snowflake.style.zIndex = 1000;

snowflake.sink = sinkspeed * parseInt(snowflake.style.fontSize) / 5;

// Xác định vị trí ban đầu
switch (snowingzone) {
case 1:
snowflake.posx = randommaker(marginright - parseInt(snowflake.style.fontSize));
break;
case 2:
snowflake.posx = randommaker((marginright / 2) - parseInt(snowflake.style.fontSize));
break;
case 3:
snowflake.posx = randommaker((marginright / 2) - parseInt(snowflake.style.fontSize)) + marginright / 4;
break;
case 4:
snowflake.posx = randommaker((marginright / 2) - parseInt(snowflake.style.fontSize)) + marginright / 2;
break;
}

snowflake.posy = randommaker(2 * marginbottom - marginbottom - 2 * parseInt(snowflake.style.fontSize));
snowflake.style.left = snowflake.posx + "px";
snowflake.style.top = snowflake.posy + "px";

snow.push(snowflake);
document.body.appendChild(snowflake);
}

movesnow();
}

function movesnow() {
for (var 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 * parseInt(snow[i].style.fontSize) || parseInt(snow[i].style.left) > (marginright - 3 * lftrght[i])) {
switch (snowingzone) {
case 1:
snow[i].posx = randommaker(marginright - parseInt(snow[i].style.fontSize));
break;
case 2:
snow[i].posx = randommaker((marginright / 2) - parseInt(snow[i].style.fontSize));
break;
case 3:
snow[i].posx = randommaker((marginright / 2) - parseInt(snow[i].style.fontSize)) + marginright / 4;
break;
case 4:
snow[i].posx = randommaker((marginright / 2) - parseInt(snow[i].style.fontSize)) + marginright / 2;
break;
}
snow[i].posy = 0;
}
}
timer = setTimeout(movesnow, 30);
}

initsnow();
});
</script>

Tích hợp code vào website

Cách 1: Mở cấu hình Themes (theme options) ==> Custom scripts ==> Paste vào trước thẻ </head> và lưu lại

Tích hợp code hiệu ứng tuyết rơi vào website
Tích hợp code hiệu ứng tuyết rơi vào website

Phần này mỗi theme sẽ khác nhau chút xíu nhé, như hình theme mình sử dụng có hỗ trợ nhúng Javascript code nên paste thẳng đoạn code vào (đầu hoặc cuối nhé)

Lưu lại và mở trang chủ ra xoá cache và tận hưởng thành quả 😉

Cách 2: Nhúng trực tiếp vào file header.php bằng cách vào bằng phần mềm FTP như FileZilla hoặc qua hệ thống quản lý file của Cpanel host ==> wp-content ==> themes ==> theme của web ==> header.php sau đó chèn đoạn mã trên vào trước thẻ </head>

Nhớ bao đoạn code lại bằng thẻ <script>  mở và </script>  đóng Javascript code rồi lưu lại

Lưu ý: Nếu bạn nhúng code trực tiếp trong mã nguồn khi theme được cập nhật code sẽ bị mất nhé, nên tạo child theme để sửa code

>> Tham khảo: Hướng dẫn tạo child theme WordPress

Hy vọng bài viết này đã giúp các bạn thêm được hiệu ứng bông tuyết rơi vào WordPress. Chúc bạn và gia đình một mùa Giáng Sinh ấm áp.

5/5 - (28 bình chọn)

Share this post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *