Skip to content

Điều chỉnh mục quản trị của WordPress

WordPress hiện đang là 1 trong những hệ thống quản trị nội dung –  Content Management System được sử dụng phổ biến nhất hiện nay, với hàng ngàn blogger sử dụng hệ thống CMS này để cải thiện hiệu suất hoạt động của blog, website, diễn đàn… Điểm mạnh rất dễ nhận thấy của WordPresshệ thống plugin hỗ trợ đa dạng, nhiều chức năng, dễ sử dụng và quản lý. Nhưng liệu bạn có biết rằng khu vực quản trị của WordPress có thể điều chỉnh được hay không? Người sử dụng có thể cho ẩn đi những chức năng thật sự không cần thiết, thay đổi biểu tượng tại màn hình đăng nhập và nhiều thành phần khác nữa. Trong bài viết sau, chúng ta sẽ cùng nhau trao đổi về quá trình tùy chỉnh và thiết lập này.

 

Sử dụng Ozh Admin Menu:

 

Vấn đề với hệ thống cấu trúc điều hướng mặc định của WordPress là khả năng truy cập không thật sự nhanh. Người sử dụng phải click vào biểu tượng hình mũi tên nhỏ bên cạnh mỗi section để mở rộng menu, và chọn thành phần tương ứng. Nếu cần sử dụng 1 bộ điều hướng chuyển tiếp đơn giản khác, các bạn hãy sử dụng plugin Ozh Admin Menu, toàn bộ menu của hệ thống sẽ được liệt kê và sắp xếp theo hàng ngang như hình bên dưới:

quantriwordpress Điều chỉnh mục quản trị của WordPress

 

Sử dụng Adminimize:

 

Nếu bạn đang quản lý 1 blog với nhiều tài khoản, có thể sẽ cần phân loại một số chức năng giữa các tài khoản với nhau. Ví dụ, bạn muốn giấu tính năng Post URL trong mục Write Post với tất cả tài khoản bình thường. Hãy sử dụng Adminimize, plugin này có thể tùy chỉnh được những mục như section, widget, và panel điều khiển đối với từng người sử dụng trong blog:

quantriwordpress2 Điều chỉnh mục quản trị của WordPress

Hiện tại, plugin được áp dụng với 5 mức tài khoản khác nhau, bao gồm: Administrator, Editor, Author, Contributor và Subscriber. Và bạn chỉ việc đánh dấu tại những ô checkbox tương ứng với chức năng và tài khoản để thiết lập.  Đây được xem là 1 trong những công cụ tốt nhất để quản lý và giám sát hệ thống WordPress nếu có nhiều tài khoản.

 

Admin Quick Menu:

 

Công cụ này cho phép người sử dụng gán thêm những đường tới bên ngoài ngay tại bảng điều khiển chính của WordPress. Tại dây, bạn có thể khởi tạo và điều chỉnh đường dẫn URL muốn truy cập, ví dụ điển hình nhất là Google Analytics, Google Webmaster tools, Feedburner, Twitter… :

quantriwordpress3 Điều chỉnh mục quản trị của WordPress

Bên cạnh đó, người sử dụng có thể lựa chọn và áp dụng với các tài khoản ở từng cấp khác nhau, tính năng này thực sự hữu ích với người quản trị, dễ dàng giám sát và quản lý các dịch vụ bên ngoài ngay tại WordPress.

 

Pre Publish Reminder:

 

Plugin này sẽ tạo ra 1 cột với nội dung nhắc nhở người dùng trong mục Write Post, chủ yếu được dùng để thông báo với mọi người về những thông tin quan trọng, cần lưu ý trước khi họ đăng bài viết. Người quản trị có thể chỉnh sửa và định dạng lại mục nhắc nhở này trong phần Manage reminders:

quantriwordpress4 Điều chỉnh mục quản trị của WordPress

Tắt bỏ các widget nhất định:

 

Điều đầu tiên bạn có thể nhận ra sau khi đăng nhập vào trang quản trị của WordPress là các widget của bảng điều khiển. Mặc dù bạn hoàn toàn có thể giấu các widget này trong mục Screen options, nhưng hãy thử xóa bỏ toàn bộ widget này khỏi bảng điều khiển:

 

function remove_dashboard_widgets(){
global$wp_meta_boxes;
unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_plugins’]);
unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_recent_comments’]);
unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_primary’]);
unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_incoming_links’]);
unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_right_now’]);
unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_secondary’]);
}
add_action(‘wp_dashboard_setup’, ‘remove_dashboard_widgets’);

 

Các bạn hãy paste đoạn code trên vào file function.php trong thư mục theme, và toàn bộ widget của bảng điều khiển chính sẽ bị ẩn đi. Bên cạnh đó, mọi người có thể tham khảo thêm chi tiết tại đây.

 

Thay thế logo của WordPress bằng biểu tượng của riêng bạn:

Đây quả thực là 1 điều khá thú vị và hoàn toàn có thể làm được, các bạn chỉ cần paste đoạn mã sau vào file functions.php trong mục theme:

add_action(‘admin_head’, ‘my_custom_logo’);


function my_custom_logo() {
echo ‘<style type=”text/css”>
#header-logo { background-image: url(‘/‘.get_bloginfo(‘template_directory’’).’/images/custom-logo.gif)!important; }
</style>’;
}

 

Hãy nhớ thay thế file ảnh bạn dùng làm logo vào thư mục tương ứng, ví dụ ở đây là: wp-content/themes/theme-name/images và đặt tên là custom-logo.gif.

 

Chúc các bạn thành công!

Hướng dẫn tạo widget WordPress cố định

Để tạo ra một widget cố định 2 bên website nhằm treo các banner mà không cần  phải làm việc với quá nhiều code, vì khi tìm trên Google mọi người có thể thấy toàn gặp những bài tutorials làm widget cố định như vậy với Javascript hay CSS khá phức tạp. Hãy tạm quên đi các code phức tạp đó vì không phải cứ dùng plugin là chậm blog, mà đôi khi dùng plugin có thể giúp bạn tiết kiệm thời gian cũng như dễ dàng quản lý các script được thêm vào giao diện vì khi xóa plugin là nó sẽ tự xóa hết.

Vì vậy trong bài này, mình sẽ giới thiệu đến các bạn một plugin giúp bạn tạo một widget cố định như blog của mình chỉ trong vòng 1 phút (có khi ít hơn), plugin mà chúng ta cần sử dụng đây có tên là Q2W3 Fixed Widget

widget co dinh Hướng dẫn tạo widget WordPress cố định

Cài plugin Q2W3 Fixed Widget để làm widget cố định

Đầu tiên là các bạn cài plugin Q2W3 Fixed Widget vào.

Sau khi cài xong bạn đừng có tìm trong khu vực Settings làm chi cho nó mệt, vì plugin này không có bất cứ tùy chọn gì cả. Để tạo widget cố định thì các bạn vào Appearance -> Widget. Sau đó mở widget cần làm cố định ra, và đánh dấu vào Fixed Widget.

tao widget co dinh Hướng dẫn tạo widget WordPress cố định

Chỉ vậy thôi, bây giờ widget mà bạn vừa đánh dấu đã trở nên cố định và chạy theo cửa sổ trình duyệt. Các bạn cứ save lại và tận hưởng cảm giác nhé!

Nguồn: http://nguyennhumy.com

WordPress database error MySQL server has gone away

MySQL server has gone away“. Thay thế một thông điệp là “Bạn mất kết nối với máy chủ trong thời gian truy vấn”. Một số nguyên nhân gây ra nó. Nhìn chung, nếu bạn dùng shared host bạn không thể sửa được lỗi này vì nó nằm ở phía server. Nguyên nhân phổ biến nhất là:

 WordPress database error MySQL server has gone away

1. Server hết thời gian chờ và đóng kết nối. Mỗi kết nối mở ra có giới hạn một khoảng thời gian nhất định và sau khoảng này, máy chủ CSDL ( MySQL ) sẽ đóng kết nối lại dù bạn muốn hay không. Vì vậy, nếu mã nguồn của bạn xử lý quá lâu, lâu hơn khoảng thời gian cho phép giữ kết nối này thì sau đó nếu bạn có truy vấn lại thì bạn sẽ gặp lỗi này, vì lúc này kết nối đạ bị tự động đóng và từ chối mọi truy vấn liên quan đến MySQL từ user của bạn.

2. Một lý do phổ biến là khi truy vấn MySQL sảy ra lỗi và MySQL tự đóng kết nối hoặc do bạn tự đóng kết nối và sau đó cố gắng chạy một truy vấn về việc đóng kết nối. Đây là một vấn đề đơn giản.

3. Bạn đã nhận một timeout từ TCP / IP kết nối với khách hàng bên trên. Điều này có thể xảy ra nếu bạn có được bằng cách sử dụng lệnh: mysql_options (…, MYSQL_OPT_READ_TIMEOUT, …) hoặc mysql_options (…, MYSQL_OPT_WRITE_TIMEOUT, …). Trong trường hợp này tăng timeout, như mô tả ở trên, có thể giúp giải quyết vấn đề.

4. Bạn đã gặp một timeout trên máy chủ và các bên tự động kết nối lại trong những client bị vô hiệu hóa.

5. Bạn cũng có thể nhận được các lỗi này, nếu bạn gửi một yêu cầu đến máy chủ mà không đúng, hay quá lớn. Nếu mysqld sẽ nhận được một gói có nghĩa là quá lớn hoặc ra lệnh, nó giả định rằng cái gì đã đi sai với client và đóng kết nối. Nếu bạn cần truy vấn lớn (ví dụ, nếu bạn làm việc với cột BLOB lớn), bạn có thể tăng giới hạn các truy vấn bằng cách đặt các giá trị của max_allowed_packet tăng lên, trong đó có một giá trị mặc định của 1MB. ( cấu hình mặc định của shared hosting của Hostvn.net là 256Mb )

6. INSERT hoặc thay thế một query chèn một nhiều hàng cũng có thể gây ra các loại lỗi. Hoặc là một trong những lời truy vấn sẽ gửi một yêu cầu cho máy chủ bất kể số lượng các hàng sẽ được lắp vào, vì vậy, bạn thường có thể tránh những lỗi bằng cách giảm số lượng hàng được gửi cho mỗi INSERT hoặc thay thế.

7. Bạn cũng có được một kết nối bị mất nếu bạn đang gửi một gói 16MB hoặc lớn hơn, nếu client của bạn là cũ quá 4.0.8 và máy chủ của bạn là 4.0.8 trở lên, hoặc các cách khác tương tự.

Theo HostVN

Link Pyramid là gì và cách ứng dụng để SEO

Link Pyramid là một chiến thuật xây dựng backlink khá công phu và đòi hỏi thời gian đầu tư khá lớn, nhưng tác động của nó đối với việc cải thiện thứ hạng trên máy tìm kiếm cũng đáng với công sức mà chúng ta đã bỏ ra để xây dựng “cái tháp” đó. Nói theo một cách dễ hiểu, Link Pyramidđược xem như là một hình thức xây dựng “Backlink to backlink“, tức là chúng ta sẽ trỏ backlink qua nhiều lớp website khác nhau và rồi cuối cùng là trỏ về website chính mà ta cần tăng thứ hạng. Link Pyramid có thể được chia theo 3 hay 4 tầng tùy theo khả năng của mỗi người, nhưng trong bài này mình sẽ lấy mô hình 4 tầng như sau:

 

link pyramid Link Pyramid là gì và cách ứng dụng để SEO

Tầng thứ 1:

Đây là tầng cao nhất, nghĩa nó chính là website đích mà bạn cần tăng thứ hạng thông qua chiến thuậtxây dựng backlink này. Và tất cả những backlink được trỏ về site này mình sẽ đặt vào các website ở tầng thứ 2.

Tầng thứ 2:

Đây là tầng mà bạn sẽ sử dụng các dịch vụ cho phép đăng tải thông tin có kèm backlink có thứ hạng cao như Youtube, Sqidoo, Tumblr, Blogspot, WordPress..v..v..

Tầng thứ 3:

Tầng này được hiểu như là các website mà bạn thường xuyên lui tới để xây dựng backlink như các blog có PR cao chứa backlink dofollow,  forum, website .EDU, .GOV. Như ở tầng 2 mình có nói, ở tầng 3 này là bạn sẽ đăng các backlink trỏ về tầng 2 vào các website theo các tiêu chí mình vừa liệt kê.

Tầng thứ 4:

Đây là tầng cuối cùng cũng như tầng thấp nhất, ở tầng này chúng ta không cần phải viết bài hay xây dựng backlink gì cả mà sẽ làm các công việc mà bạn vẫn thường hay làm khi bắt đầu SEOmột website như submit RSS, Ping, đăng lên mạng xã hội…v..v..Và những website mà bạn làm các công việc này được lấy ở tầng thứ 3.

Tóm lược

Nói tóm lại, ở 3 tầng đầu tiên các bạn sẽ cần viết bài (nên tự viết) và sau đó trỏ backlink cho nhau theo thứ tự từ cao đến thấp. Và ở tầng cuối cùng các bạn sẽ tiến hành ping, submit RSS, gửi bài ở tầng 3 lên mạng xã hội.

Tới đây là coi như các bạn đã hình dung được một mô hình Link Pyramid hoàn chỉnh rồi đó, tính mình không muốn viết ngắn nhưng cơ bản là không biết viết tiếp gì nữa, vì các công việc cần làm cũng rất dễ dàng. Có một điều bạn cần nhớ rằng Link Pyramid là một cách khác trong hành vi spam liên kết và nếu bị Google phát hiện thì website của bạn có thể tử ẹo trên top tìm kiếm bất cứ lúc nào.

Tối ưu hóa bố cục website cho seo

Trong xu hướng thiết kế web hiện đại, có 2 cách để thiết kế bố cục (layout) phổ biến là các bảng (table) lồng nhau và dựa vào chuẩn CSS dùng thẻ div. Vậy tối ưu hóa bố cục website cho seo như thế nào ?

Cách thiết kế layout theo dạng table đã quá phổ biến với các nhà thiết kế website vì

  • Hình ảnh, văn bản trình bày trực quan
  • Thời gian thiết kế nhanh
  • Tương thích tốt các loại trình duyệt
  • Thời gian học nhanh

Nhưng việc lạm dụng thiết kế layout theo table cũng dẫn đến một số rắc rối cho các designer. Vào cuối thập niên 90, W3C giới thiệu CSS (Cascading Style Sheets) cho phép tùy biến những kiểu thể hiện khác nhau cho tài liệu HTML. Các trình duyệt nhanh chóng hỗ trợ CSS, các designer bắt đầu áp dụng chuẩn này cho các bản thiết kế của họ.

Sau đây là những lý do chính của việc các designer từ bỏ việc sử dụng table và chuyển sang dùng CSS:

  • Table làm gia tăng kích thước của site dẫn đến việc tiêu tốn băng thông không cần thiết .
  • Tiêu tốn thời gian hiệu chỉnh nhiều hơn so với việc dùng CSS nếu website có thay đổi.
  • Những người khiếm thị hoặc những người truy cập website bằng DTDĐ hay PDA sẽ không được hiển thị đúng đắn.
  • Tách biệt thiết kế và nội dung
  • Tương thích với các SE
  • Dễ dàng thay đổi và kiểm soát bố cục thông qua ID
  • Cuối cùng, tiêu chuẩn web W3C hiện tại là sử dụng CSS và tin tốt lành là hiện nay tất cả các trình duyệt đều hỗ trợ chuẩn này.

Tại sao CSS tốt hơn?

Thiết kế layout với CSS có một số thuận lợi đối với việc tối ưu hóa công cụ tìm kiếm (SEO) điển hình là việc có thể đặt nội dung trước các mã lệnh khác bằng thẻ DIV (luôn nhớ rằng việc bố trí những nội dung quan trọng bao gồm từ khóa lên phần đầu của trang web luôn làm gia tăng sự nổi bật của từ khóa).
CSS giúp giảm bớt kích thước của trang web và khách tham quan (visitor) không cần phải tải về những dữ liệu mang tính chất trình bày khi xem mỗi trang vì chúng đã được lưu trong bộ nhớ tạm (cache) của trình duyệt.

Những thuận lợi khi dùng CSS

  • Đồng bộ định dạng và dùng chung cho tất cả các trang.
  • Vẫn có thể dùng CSS ngoài mục đích SEO.
  • Website sẽ được tổ chức chặt chẽ và dễ bảo trì.

Tóm lại, dùng thẻ DIV nói riêng hay CSS nói chung thay thế cho các table lồng nhau sẽ làm giảm đáng kể kích thước trang, tổ chức website được chặt chẽ hơn, dễ bảo trì hơn và gia tăng tính khả dụng. Một điểm không thuận lợi khi sử dụng CSS là chúng ta phải học về nó, tuy nhiên, điều này không quá khó cho các webmaster.

Cả hai phương pháp, table lồng nhau và CSS đều được quan tâm khi nói về SEO. Nhưng chúng ta đã biết, các robot sẽ quét qua toàn bộ mã trong các trang web mà chúng viếng thăm, tuy nhiên, nếu số lượng mã quá lớn, các robot có thể không tiếp cận trọn vẹn, từ đó, việc bố trí nội dung sao cho các robot có thể tiếp cận là một điều khá quan trọng và điều này chắc chắn việc dùng CSS sẽ làm tốt hơn. Bây giờ chúng ta sẽ xem qua vài bước thực tế về việc sử dụng thẻ DIV so với table để nâng cao sức hấp dẫn cho các công cụ tìm kiếm (SE).

Tối ưu hóa trang web dựa trên table

14 Tối ưu hóa bố cục website cho seo
Khi một trang web được tạo ra khi dùng table, thông thông phần nội dung chính sẽ nằm ở ô dưới cùng bên phải của table. Các robot quét 1 trang web theo chiều từ trái sang phải và từ trên xuống dưới sẽ đi qua rất nhiều đoạn mã trước khi tiếp cận được nội dung này. Để tránh điều này, chúng ta phải bố trí nội dung vào những ô đầu tiên nằm ở phần trên của table và cách tốt nhất là đưa nội dung lên trên mã HTML bằng cách dịch chuyển phần menu từ trái sang phải (menu thường được bố trí bên trái). Để các robot có thể đọc nội dung đầu tiên mà vẫn giữ được menu bên trái là tạo ra một ô (cell) rỗng nằm trên menu như hình bên dưới.

Như hình minh họa bên trên, chúng ta dùng 1 cell rỗng với thuộc tính rowspan, các robots khi quét trang này sẽ duyệt qua cell rỗng ở dòng 1, sau đó chúng sẽ tiếp cận đến nội dung mong muốn của chúng ta trong khi menu vẫn được bố trí theo sự phổ biến bên tay trái bất chấp menu có thể là hình ảnh.
25 Tối ưu hóa bố cục website cho seo

Lời khuyên: Sử dụng table phân lớp (layer) sẽ tải trang nhanh hơn. Các trình duyệt hiển thị table tuần tự, cung cấp cho visitor những thông tin đầu tiên trong khi vẫn tiếp tục tải trang. Vì thế tôi khuyên bạn nên chia ra thành nhiều table riêng biệt để có thể tải nhanh chóng từng table.

Tối ưu hóa trang web dựa trên CSS

Website dùng CSS sẽ dễ dàng kiểm soát các mã HTML và không mất nhiều thời gian để bố trí vị trí nội dung phù hợp khi các robot tham quan.
34 Tối ưu hóa bố cục website cho seo
Như hình minh họa bên trên, trực quan chúng ta nhận thấy rằng nội dung không phải là phần đầu tiên các robot quét nhưng vì được bố trí trong thẻ DIV nên nó là vị trí tốt nhất. Luôn nhớ nguyên tắc hàng đầu từ khóa nằm gần vị trí đầu trang hoặc đầu câu luôn thuận lợi trong việc gia tăng kết quả xếp hạng.
Đến đây, nếu bạn vẫn thích dùng table, tôi không cản bạn. Nhưng các website sẽ ít mã hơn, kích cỡ nhỏ hơn và tốc độ tải nhanh hơn nếu dùng XHTML và CSS. Và những điều này luôn phù hợp cho visitor lẫn các SE.

Lời khuyên khi tối ưu hóa bố cục website cho seo

Ngừng sử dụng TABLE để chuyển sang DIV

  • TABLE làm cho kích cỡ trang web tăng lên
  • Thay đổi layout TABLE tốn nhiều công sức & thời gian
  • Gia tăng tỷ lệ mã trong nội dung
  • Không thể hiện đúng đắn với smartphone hoặc PDA
  • Lạm dụng TABLE lồng nhau dẫn đến gia tăng tỷ lệ mã trong nội dung.
  • Dùng DIV để đặt nội dung vào phần đầu của trang web.
  • TABLE sẽ gây trở ngại cho spider thu thập thông tin trang web
  • Đảm bộ lộ trình của spider tiếp cận nội dung trang web là ngắn nhất.

Bài viết Tối ưu hóa bố cục website cho seo được seotopten.net biên soạn lại

theo Tối ưu hóa bố cục của trong trang web

WordPress – Cắt ngắn post nhiều nội dung

Tuy WordPress là một dạng Blog Platform nhưng nó cũng thường được sử dụng như là một CMS. Do vậy đôi khi có những bài post quá dài và bạn muốn phân nó ra làm nhiều trang nhỏ hơn đễ người đọc tiện theo dõi hơn và cũng dễ đọc hơn.

 

Đây là một tính năng hay nhưng lại ít được biết đến của WordPress, có thể bởi vì ít có post nào dài đến mức mà phải cần phân trang. Nhưng như bạn thấy trên izwebz, loạt bài về jQuery có những post rất dài và làm chậm tốc độ load của trang. Trong bài này chúng ta sẽ học cách phân trang này ra để tạo ra các trang ngắn hơn. Bạn có thể xem ví dụ trước để hiểu chúng ta cần làm cái gì, bạn kéo xuống dưới cùng của post để thấy đoạn phân trang.

Để làm được việc này chính xác hơn, bạn cần chuyển sang chế độ soạn thảo mã HTML thay vì Visual. Sau đó bạn chép đoạn mã sau vào nơi bạn cần phân trang.

1. <!–nextpage–>

Trước khi bạn có thể xem được kết quả, bạn cần phải chỉnh sửa lại mã nguồn của nó một chút. Bạn hãy mở file single.php và thêm đoạn mã dưới đây vào trong vòng lặp Loop của WordPress.

1. <?php wp_link_pages(); ?>

Nếu bạn chỉ dùng hàm wp_link_pages() mà không có tham số thì nó sẽ cho ra dạng trang mặc định kiểu như: Pages: 1 2 3. Hoặc bạn cũng có thể thêm các tham số vào để tùy biến cho nó. Những tham số của nó như sau:

Trước khi bạn có thể xem được kết quả, bạn cần phải chỉnh sửa lại mã nguồn của nó một chút. Bạn hãy mở file single.php và thêm đoạn mã dưới đây vào trong vòng lặp Loop của WordPress.

<?php $args = array(

‘before’           => ’<p>’ . __(‘Pages:’),

‘after’            => ’</p>’,

‘link_before’      => ,

‘link_after’       => ,

‘next_or_number’   => ’number’,

‘nextpagelink’     => __(‘Next page’),

‘previouspagelink’ => __(‘Previous page’),

‘pagelink’         => ’%’,

‘more_file’        => ,

‘echo’             => 1 ); ?>

before: (chuỗi) Chữ bạn muốn hiển thị trước các số trang. Mặc định là <p>Pages:
after: Chữ sẽ xuất hiện sau các số trang. Mặc định là </p>.
link_before và link_after: (chuỗi) Các ký tự xuất hiện trước hoặc sau số trang. Có thể bạn muốn các số trang phân cách nhau bằng dấu , hoặc | chẳng hạn.
next_or_number: (chuỗi) Bạn có hai lựa chọn là hiển thị số hoặc hiển thị chữ Next. Giá trị mặc định là number và next.

Hiển thị số trang với thẻ p bao quanh

Ví dụ

Hiển thị số trang với thẻ p bao quanh

<?php wp_link_pages('before=<p><strong>Trang:</strong>&after=</p>&next_or_number=number&pagelink= %'); ?>

Hiển thị dưới dạng Next và Previous

<?php wp_link_pages('next_or_number=next');?>

Hướng dẫn tạo hiệu ứng jQuery Sliding

Hiệu ứng jQuery là một cách hữu ích để làm website của bạn thêm nổi bật. Hôm nay, mình sẽ hướng dẫn các bạn làm một hiệu ứng jQuery Sliding. Hiệu ứng này rất hữu ích cho ai muốn làm một portfolio online.

Để chuẩn bị cho bài hướng dẫn này, các bạn chuẩn bị 1 vài tấm ảnh kích thước 300x200px.

Cấu trúc HTML

1
2
3
4
        &lt;div id=”top”&gt;
            &lt;img src=”/images/1.jpg” /&gt;
            &lt;img src=”/images/top.jpg” /&gt;
        &lt;/div&gt;

Chúng ta sẽ làm 6 hiệu ứng là topbottomleftrightbottom-leftbottom-right tương đương với 6 id trong mã HTML. Và id này sẽ được khai báo trong phần jQuery.

Mã CSS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    .thumb {
        width:300px;
        margin:0 30px 30px 0;
        overflow:hidden;
        float:left;
        position:relative;
        height:200px;
        background-color:#000;
        cursor:pointer;}
    .thumb p{
        font-size:12px;
        color:#FFFFFF;
        padding:5px;
        text-align:justify;}
    .thumb img {
        display:block; }
    .top {
        position:absolute;
        top:0;
        left:0;}
    .last {
        margin-right:0; }

jQuery

Đưa 2 đoạn script và đặt trong thẻ <head>

1
2
        &lt;script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js”&gt;&lt;/script&gt;
        &lt;script src=”/js/sliding.js”&gt;&lt;/script&gt;

Và chúng ta bắt đầu xây dựng file sliding.js

Cấu trúc chung

1
2
3
4
5
        $(‘Khai báo hiệu ứng’).hover(function() {
         $(‘img.top’, $(this)).stop().animate({‘hướng sliding’: ‘kích thước sliding’},’Thời gian sliding’);
        },function() {
        $(‘img.top’, $(this)).stop().animate({’0′: ’0′}, 500);
        });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
         $(function() {
            $(‘#top’).hover(function() {
                $(‘img.top’, $(this)).stop().animate({top: ’200px’}, 500);
            },function() {
                $(‘img.top’, $(this)).stop().animate({top: ’0′}, 500);
            });
            $(‘#left’).hover(function() {
                $(‘img.top’, $(this)).stop().animate({left: ‘-300px’}, 500);
            },function() {
                $(‘img.top’, $(this)).stop().animate({left: ’0′}, 500);
            });
            $(‘#bottom-left’).hover(function() {
                $(‘img.top’, $(this)).stop().animate({left: ‘-300px’, top: ’200px’}, 500);
            },function() {
                $(‘img.top’, $(this)).stop().animate({left: ’0′, top: ’0′}, 500);
            });
            $(‘#bottom’).hover(function() {
                $(‘img.top’, $(this)).stop().animate({top: ‘-200px’}, 500);
            },function() {
                $(‘img.top’, $(this)).stop().animate({top: ’0′}, 500);
            });
            $(‘#right’).hover(function() {
                $(‘img.top’, $(this)).stop().animate({left: ’300px’}, 500);
            },function() {
                $(‘img.top’, $(this)).stop().animate({left: ’0′}, 500);
            });
            $(‘#bottom-right’).hover(function() {
                $(‘img.top’, $(this)).stop().animate({left: ’300px’, top: ’200px’}, 500);
            },function() {
                $(‘img.top’, $(this)).stop().animate({left: ’0′, top: ’0′}, 500);
            });
        });