Hiển thị các bài đăng có nhãn blogspot. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn blogspot. Hiển thị tất cả bài đăng

Ẩn hiện Sidebar với JQuery cho Blogspot

08:54 Add Comment
Bài viết này namkna sẽ hướng dẫn các bạn cách bật tắt Sidebar bằng cách sử dụng các lệnh từ thư viện Jquery. Với tiện ích này bạn chỉ cần bấm vào nút xem và ẩn để ẩn hoặc hiển thị siderbar. bạn có thể xem Demo để tháy rõ hơn.
Toggle Sidebar with JQuery for blogspot



VIEW DEMO

¤ Các bước để ẩn hiện Sidebar cho blogger với Jquery.

1. Đăng nhập vào tài khoản Blogger
2. Vào Mẫu (Template)
3. Chọn chỉnh sửa HTML (Edit HTML)
4. Chèn code bên dưới ngay trước thẻ </head> (Mẹo: Bấm chuột vào một vị trí bất kỳ trong ô chỉnh sửa HTML vào để sử dụng khung tìm kiếm nội tuyến như bài này):
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
<script type='text/javascript' src='http://reader-download.googlecode.com/svn/trunk/jquery-toggle-sidebar.min.js'></script>
<script type='text/javascript'>
//<![CDATA[
$(function() {
$('#sidebar-wrapper').toggleSidebar({
expand: "#main-wrapper"
});
});
//]]>
</script>
- Nếu blog của bạn đã có thư viện JQuery rồi thì hãy xóa đoạn code màu xanh đi. Lưu ý là file JQuery phải từ phiên bản 1.7 trở lên nha. bởi vì ở đây (và từ bây giờ) Namkna không còn mặc định sự kiện .click() thay vì .on("click") Nếu phiên bản JQuery bạn đang sử dụng dưới phiên bản 1,7 thì hãy thay đổi nó để blog của bạn hoặt động tốt hơn.
- Bạn hãy tải các file js về sau đó upload lên host riên để dùng lâu dài nha. (nếu chưa có host thì hãy xem cách đăng ký host miễn phí tại đây)
- Thẻ #sidebar-wrapper được lấy từ ID của Sidebar sẽ xuất hiện và thực hiện lệnh ẩn hiện, trong khi bộ chọn #main-wrapper là yếu tố mà cột bài viết sẽ được mở rộng và thu hẹp để trải kín vị trí do mất thanh Sidebar.
$('#sidebar-wrapper').toggleSidebar({expand:"#main-wrapper"});
- Với một số mẫu phần id này có thể khác bạn vui lòng sửa nó. Nếu không thể xác định được id của nó hãy để lại URL blog của bạn ở phần commnet ở cuối bài viết này mình sẽ chỉ giúp.

5. Dán code bên dưới trước thẻ ]]></b:skin>.
#sidebar-toggler-wrapper {
clear:both;
position:relative;
}

#sidebar-toggler-wrapper a.sidebar-toggler {
color:white;
font:normal bold 11px/100% Arial,Sans-Serif;
text-decoration:none;
margin:0 0;
padding:4px 10px;
background-color:#123;
border-left:4px solid #789;
outline:none;
position:absolute;
bottom:0;
right:0;
}

#sidebar-toggler-wrapper a.active {
color:black;
background-color:#789;
border-left-color:#123;
}
6. Lưu mẫu lại.

¤  Tìm hiểu nâng cao!

- Có nhiều cách tùy biến có thể được thực hiện trên plugin này. Bao gồm thiết lập ghi nhớ cookie cho trình duyệt. Vì vậy, kịch bản cookie.js mà tôi thêm trong file jquery-toggle-sidebar.js không cần thiết phải thêm vào/có thể loại bỏ nếu bạn vô hiệu hóa các tính năng ghi nhớ cookie cho trình duyệt. Dưới đây là mã mở rộng của nó :
$('#sidebar-wrapper').toggleSidebar({
expand: "#main-wrapper",
hideText: "&rArr; Hide Sidebar",
showText: "&lArr; Show Sidebar",
animated: false,
animateSpeed: 400,
easingType: null,
extraWidth: 0,
enableCookie: false,
defaultHidden: false
});
- Bảng có thể xem kỹ các thuộc tính của đoạn code trên ở bảng bên dưới:
Tùy chọnThông tin
expandYếu tố để được mở rộng và thu hẹp để lấp đầy khoảng trống kể từ khi thanh  Sidebar được ẩn đi.
hideTextNhấn nút Hide Sidebar khi thanh Sidebar đang hiển thị để ẩn nó đi. bạn có thể thay chữ màu vàng thành chữ bạn muốn.
showTextNhấn nút Show Sidebar khi thanh Sidebar đã bị ẩn để hiển thị lại. bạn có thể thay chữ màu vàng thành chữ bạn muốn.
animatedNếu giá trị true thì hiệu ứng chuyển động (trượt) sẽ được áp dụng trong quá trình ẩn hiển thanh sidebar và phần bài đăng.
animateSpeedĐược sử dụng để xác định tốc độ của các hiệu ứng chuyển động nếu tùy chọnanimated ở trên mang giá trị là true
extraWidthĐược sử dụng để xác định chiều rộng thêm của cột bài viết. Về cơ bản, khi thanh sidebar bị ẩn đi nó sẽ để lại một khoảng trống, lúc này chiều rộng của phần bài đăng sẽ thay đổi để lấp khoảng trống do thanh sidebar để lại khi nó được ẩn hi. Tùy chọn này là rất quan trọng và chỉ được sử dụng nếu độ rộng bài viết sau khi mở rộng không lấp hết hoảng trống do phần  sidebar bên phải để lại. Tùy các sử dụng mà nó mang nghĩa tích cực hay tiêu cực. Tích cực thì độ rộng cột tiêu chuẩn sẽ tăng lên, trong khi theo chiều hướng tiêu cực sẽ làm giảm chiều rộng của bài đăng khi thanh bên Sidebar bị ẩn.
easingTypeĐược sử dụng để xác định các loại hiệu ứng chuyển động (trượt) nếu tùy chọnanimated giá trị true.
enableCookieNếu giá trị là true, chuyển động của Sidebar sẽ được trình duyệt ghi nhớ.
defaultHiddenNếu giá trị là true, Sidebar sẽ được ẩn ở trạng thái bình thường. Tức là nó sẽ ẩn khi độc giả truy cập vào trang của bạn và muốn xem nội dung thanh sidebar bạn sẽ phải bấm vào button Show Sidebar.
- Dưới đây là file js mình đã tích hợp thêm cookie.js bạn có thể tải về sau đó upload lên host riên để dùng lâu dài nha. (nếu chưa có host thì hãy xem cách đăng ký host miễn phí tại đây)

Theo: Namkna.blogspot.com

Thu hẹp/mở rộng sidebar từ Accordion JQuery cho blogspot

08:52 Add Comment
Tạo Accordion sidebar từ JQuery blogspot
Đã bao giờ bạn để ý đến thanh sidebar bên phải hoặc trái của blog bạn và nhận ra rằng sự sắp xếp hiện tại của các widget  trên thanh sidebar  là khá cồng kềnh và chiếm nhiều diện tích của blog. Hôm nay namkna sẽ hướng dẫn các bạn cách thêm hiệu ứng thu hẹp và mở rộng (Accordion ) thanh sidebar từ thư viện JQuery cho blogspot của bạn. Sau đây mình sẽ hướng dẫn cụ thể cách hoạt động và thêm Accordion sidebar cho blog của bạn.


¤  Nguyên tắc hoạt động của Accordion sidebar!

- Mỗi phần tử của sidebar thường được bao bọc bởi  thẻ #sidebar-wrapper (có thể khác tùy theo người thiết kế) Và tiêu đề của các widget trong đó thường nằm trong thẻ  <h2> như thế này:
<div id='sidebar-wrapper'>
<h2>Blogger templates</h2>
<div class='widget-content'>
....
</div>
<h2>Blogroll</h2>
<div class='widget-content'>
....
</div>
<h2>Labels</h2>
<div class='widget-content'>
....
</div>
</div>
- Căn cứ vào đó namkna sẽ tạo ra một sidebar với một hiệu ứng accordion có chức năng mở rộng và thu gọn nó vào. Trước hết, chúng ta cần phải biết một số các yếu tố tương tự như một hướng dẫn và nó sẽ được sử dụng để chỉnh sửa hiệu ứng accordion đoạn mã này:
$(function() {
$('#sidebar-wrapper .widget-content').hide();
$('#sidebar-wrapper h2:first').addClass('active').next().slideDown('slow');
$('#sidebar-wrapper h2').click(function() {
if($(this).next().is(':hidden')) {
$('#sidebar-wrapper h2').removeClass('active').next().slideUp('slow');
$(this).toggleClass('active').next().slideDown('slow');
}
});
});

¤ Các bước để làm accordions Sidebar

1. Đăng nhập vào tài khoản Blogger
2. Vào Mẫu (Template)
3. Chọn chỉnh sửa HTML (Edit HTML)
4. Chèn code bên dưới ngay trước thẻ </head> (Mẹo: Bấm chuột vào một vị trí bất kỳ trong ô chỉnh sửa HTML vào để sử dụng khung tìm kiếm nội tuyến như bài này):
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' type='text/javascript'></script>
<script type='text/javascript'>
//<![CDATA[
$(function() {
// Sembunyikan semua tubuh widget (tutup semua panel)
$('#sidebar-wrapper .widget-content').hide();
// Thêm lớp hoạt động 'active' trên <h2> yếu tố đầu tiên
// Sau đó thêm các yếu tố bên cạnh tác dụng .slideDown(), do đó, bảng điều khiển sẽ xuất hiện ở accordion đầu mở.
$('#sidebar-wrapper h2:first').addClass('active').next().slideDown('slow');

// Khi các yếu tố <h2> bên trong #sidebar-wrapper yếu tố được nhấp ...
$('#sidebar-wrapper h2').click(function() {
if($(this).next().is(':hidden')) {
// Ẩn tất cả các bảng được mở cho các hiệu ứng slideUp ().
$('#sidebar-wrapper h2').removeClass('active').next().slideUp('slow');
// Sau đó mở bảng điều khiển dưới phần tử này (các yếu tố đó được nhấp <h2>) có hiệu lực. SlideDown ()
$(this).toggleClass('active').next().slideDown('slow');
}
});
});
//]]>
</script>
- Nếu blog của bạn đã cài thư viện Jquery rồi thì hãy xóa đoạn code màu xanh đi nha.

¤  Nếu không hoạt động.

- Nếu nó không hoạt động có thể do id trong blog của bạn không phải #sidebar-wrapper. Namkna ví dụ một id khác là #sidebar-wrapper-2. Đoạn code sẽ có dạng như sau:
<div id='sidebar-wrapper-2'>
<b:section class='sidebar' id='sidebar' preferred='yes'>
<b:widget id='Label1' locked='false' title='Kategori' type='Label'/>
<b:widget id='PopularPosts1' locked='false' title='Entri Populer' type='PopularPosts'/>
<b:widget id='Stats1' locked='false' title='Statistik' type='Stats'/>
<b:widget id='HTML1' locked='false' title='Komunitas' type='HTML'/>
<b:widget id='HTML2' locked='false' title='Facebook Suka' type='HTML'/>
</b:section>
</div>
Hoặc bạn cũng có thể xem ID bên trực tiếp từ trang blog của bạn thông qua các Add-on phát triển ứng dụng web như: Firebug hoặc tương tự khác:
Tạo Accordion sidebar từ JQuery blogspot
- Bạn có thể thay đổi mã #sidebar-wrapper với Id mới #sidebar-wrapper-2 để tạo ra một hiệu ứng accordion trên thanh bên.

¤  Tùy chỉnh nâng cao.

- Thêm nữa: Khi bạn cố gắng chạm vào tiêu đề các widget bạn sẽ thấy con trỏ có hình thức của con trỏ văn bản (chữ I). Điều đó sẽ làm cho các thuộc tính kích hoạt accordion được xem như là một cái gì đó không phải là quan trọng/không có bất cứ điều gì quan trọng (alah!). Chúng ta phải thay đổi con trỏ văn bản để con trỏ ngón tay như một con trỏ chuẩn luôn luôn xuất hiện trên tất cả các liên kết.

+ Có hai cách để thay đổi các văn bản trên con trỏ yếu tố <h2> một ngón tay trỏ. Đầu tiên, bằng cách viết trực tiếp vào mã CSS như thế này trước thẻ ]]></b:skin>.
#sidebar-wrapper h2 {
cursor:pointer;
}
+ Hoặc đơn giản là dán chức năng JQuery .css() trước bộ chọn dẫn đến thành phần h2 như thế này:
$(function() {
$('#sidebar-wrapper .widget-content').hide();
$('#sidebar-wrapper h2:first').addClass('active').next().slideDown('slow');
$('#sidebar-wrapper h2').css('cursor', 'pointer').click(function() {
if($(this).next().is(':hidden')) {
$('#sidebar-wrapper h2').removeClass('active').next().slideUp('slow');
$(this).toggleClass('active').next().slideDown('slow');
}
});
});
  • Các thẻ .addClass('active'), .removeClass('active')  và .toggleClass('active') tất cả chỉ để đánh dấu bảng accordion đang hoạt động/mở.

- Nếu bạn muốn làm chi tiêu đè trong thẻ <h2> hiện tại chuyển sang màu đỏ, thì trong mã CSS bạn chỉ có thể thêm các chọn #sidebar-wrapper h2.active  và thêm thuộc tính quy định màu đỏ như thế này trước thẻ ]]></b:skin>.
#sidebar-wrapper h2.active {color:red;}
Chúc thành công!....../.
Theo: Namkna.blogspot.com

Hiển thị Widget ở những trang nhất định trong Blogspot

08:27 Add Comment
Hiển thị Widget ở những trang nhất định trong Blogspot
Đối với các blog có nhiều chủ đề thì việc sử dụng nhiều Widget (Tiện ích) là điều không tránh khỏi. Do vậy làm thế nào để các Wiget tiện ích đó hiển thị đúng nơi, đúng chỗ là điều mà các Blogger phải tínht oán và cân nhắc rất kỹ.

Việc bố trí các Widget trên Template một cách hợp lý sẽ làm nổi bật nội dung cần truyền tải, logic và hài hòa với bố cục Blog.Hiển thị Widget ở những trang nhất định trong Blogspot - ẩn hiện Wiget ở những trang nhất định - http://namkna.blogspot.com/

Chính vì lý do đó, hôm nay Namkna xin được giới thiệu đến bạn đọc những thủ thuật nhỏ để “hiển thị Widget ở những trang nhất định trong Blogspot”, tiến hành như sau :

- Vào Bố cục -> Nhấp vào Chỉnh sửa trên Widget cần xử lý

Hiển thị Widget ở những trang nhất định trong Blogspot - ẩn hiện Wiget ở những trang nhất định - http://namkna.blogspot.com/
- Một cửa sổ Popup bật lên, bạn nhìn vào phía trên góc phải (gần thanh tiêu đề) sẽ thấy dòng có dạng tương tự sau: …null&widgetId=HTML10 (trong trường hợp này là widget HTML10, đối với widget khác sẽ có ID khác)
Hiển thị Widget ở những trang nhất định trong Blogspot - ẩn hiện Wiget ở những trang nhất định - http://namkna.blogspot.com/
- Sau khi xác định được ID của widget, bạn vào Chỉnh sửa HTML > Mở rộng mẫu tiện ích để tìm widget đó trong Template (nhấn Ctrl+F rồi gõ vào ID của widget ở trường hợp này là HTML10) Khi đó bạn sẽ thấy đoạn code tương tự như sau:
<b:widget id='HTML10' locked='false' title='' type='HTML'>
<b:includable id='main'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != &quot;&quot;'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>

<b:include name='quickedit'/>
</b:includable>
</b:widget>
- Như vậy, ta đã xác định được ID cũng như vị trí và nội dung của Widget, Bây giờ Mình sẽ thêm lệnh ẩn hoặc hiện  Widhet ở 2 vị trí là:
  • Vị trí 1: Sau thẻ mở <b:includable id='main'>Phần này bạn thay dổi theo các mã mình cung cấp bên dưới.
  • Vị trí 2: Thêm lệnh </b:if> vào trước thẻ đóng  như sau </b:includable> phần này dung chung cho tất cả các thủ thật bên dưới.
- Khi đó bạn có đoạn code mới dạng như sau.
<b:widget id='HTML10' locked='false' title='' type='HTML'>
<b:includable id='main'>
Vị trí 1
<!-- only display title if it's non-empty -->
<b:if cond='data:title != &quot;&quot;'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>

<b:include name='quickedit'/>
</b:if>
</b:includable>
</b:widget>

=> Đến đây bạn thay chữ Vị trí 1 thành các đoạn code tương ứng bên dưới:
1. Chỉ hiển thị Widget ngoài trang chủ
- Thay chữ Vị trí 1 thành đoạn code sau:
<b:if cond='data:blog.url == data:blog.homepageUrl'>

2. Chỉ hiển thị Widget ở trang Archive

- Thay chữ Vị trí 1 thành đoạn code sau:

<b:if cond='data:blog.pageType == &quot;archive&quot;'>

3. Chỉ hiển thị Widget ở trang bài viết

- Thay chữ Vị trí 1 thành đoạn code sau:

<b:if cond='data:blog.pageType == &quot;item&quot;'>

4. Chỉ hiển thị Widget ở trang Static Page

- Thay chữ Vị trí 1 thành đoạn code sau:

<b:if cond='data:blog.pageType == &quot;static_page&quot;'>

5. Chỉ hiển thị Widget ở những trang với liên kết cụ thể

- Thay chữ Vị trí 1 thành đoạn code sau:

<b:if cond='data:blog.url == "URL của trang chỉ định"'>

- Trong đó URL của trang chỉ định là địa chỉ của trang nhãn hay bài viết. Ví dụ mình muốn HTML10 bên trên chỉ hiển thị trong bài viết nyaf thì mình thay chữ Vị trí 1 bằng đoạn code sau:

<b:if cond='data:blog.url == "http://namkna.blogspot.com/2011/07/hien-thi-widget-o-nhung-trang-nhat-inh.html"'>

6. Chỉ hiển thị Widget ở Trang chủ, trang Label và trang Archive

- Thay chữ Vị trí 1 thành đoạn code sau:

<b:if cond='data:blog.pageType == &quot;index&quot;'>

* Ở trên bạn có thể thấy mình cố ý đánh dấu “==” bằng màu đỏ, có nghĩa là, bạn hoàn toàn có thể thay dấu “==” bằng dấu “!=” sẽ mang ý nghĩa khác.

Qui ước :

== : “bằng” hoặc tương đương - Tức là chỉ hiện thị khi thỏa mãn điều kiện mà ta đưa ra.!= : “khác” hoặc không tương đương - Tức là không hiển thị khi thỏa mãn điều kiện ta đưa ra.

Ví dụ, nếu bạn muốn Widget HTML10 hiển thị ở tất cả các trang khác ngoại trừ trang chủ, thì ta thay chữ Vị trí 1 bằng đoạn code sau:
<b:if cond='data:blog.url != data:blog.homepageUrl'>


Tùy biến nâng cao sử dụng kết hợp các điều kiện


Vì một lý do nào đó, bạn chỉ muốn hiển thị widget ở trang A và trang B hoặc hiển thị khi thỏa mãn là trang A hoặc trang B, ta sẽ kết hợp các điều kiện với nhau như sau :
- Khi đó ta phải thêm 2 thẻ đóng  </b:if> vào trước thẻ đóng </b:includable> của Widget như sau:
<b:widget id='HTML10' locked='false' title='' type='HTML'>
<b:includable id='main'>
Vị trí 1
<!-- only display title if it's non-empty -->
<b:if cond='data:title != &quot;&quot;'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>

<b:include name='quickedit'/>

</b:if></b:if>
</b:includable>
</b:widget>

- Trong đó phần màu vàng là nội dung của Widget.
- Tiếp theo thay lệnh điều kiện cho các Wiget như sau: 

A. Trường hợp 1 : chỉ hiển thị widget khi thỏa mãn 2 hay nhiều điều kiện


- Thay chữ Vị trí 1 thành đoạn code sau:

<b:if cond='data:blog.url != "Điều kiện 1"'>
<b:if cond='data:blog.url != "Điều kiện 2"'>
- Ví dụ, hiển thị widget ở tất cả các trang ngoại trừ chuyên mục IDM - Download và Blogspot - tips :

<b:if cond='data:blog.url != "http://namkna.blogspot.com/search/label/IDM-Downloand"'>
<b:if cond='data:blog.url != "http://namkna.blogspot.com/search/label/Blogspot-tips "'>
nội dung widget
</b:if></b:if>

B. Trường hợp 2 : chỉ hiển thị widget khi thỏa mãn một trong các điều kiện

- Thay chữ Vị trí 1 và đoạn màu vàng thành đoạn code sau:

<b:if cond='data:blog.url == "Điều Kiện 1"'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != &quot;&quot;'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>

<b:include name='quickedit'/>
<b:else/>
<b:if cond='data:blog.url == "Điều Kiện 2"'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != &quot;&quot;'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>

<b:include name='quickedit'/>
<b:else/>
Ví dụ, chỉ hiển thị widget ở chuyên mục IDM - Download hoặc  Blogspot - tips

<b:if cond='data:blog.url == "http://namkna.blogspot.com/search/label/IDM-Downloand"'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != &quot;&quot;'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>

<b:include name='quickedit'/>

<b:else/>
<b:if cond='data:blog.url == "http://namkna.blogspot.com/search/label/Blogspot-tips"'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != &quot;&quot;'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>

<b:include name='quickedit'/>

<b:else/>
</b:if></b:if>


Bạn Save Template Lưu Mẫu  Xem kết quả nha.

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

Theo: Namkna.blogspot.com

Script xác định kích thước màn hình máy tính.

23:03 Add Comment
Trong thiết kế web nhiều khi bạn cần phải biết kích thước màn hình máy tính để tùy biến sao cho phù hợp và có thoong báo giúp người đọc có thể chỉnh lại kích thước màn hình để xem trang web của bạn thuận lợi nhất.


Bạn chỉ cần dùng đoạn scrip sau để xác định kích thước màn hình của bạn.
<script type="text/javascript">
//<![CDATA[
document.write("<p class='nofound'>Kích thước màn hình của máy bạn là: " + screen.width + "x" + screen.height + "</p>");
//]]>
</script>
<!-- http://namkna.blogspot.com/ -->
- Bạn có thể pate đoạn code bên trên vào khung ở đây để xem kết quả nha: Khung xem kết quả.

Theo: Namkna.blogspot.com

Thủ thuật Blog : Cách tạo "các bài liên quan"

22:07 Add Comment

[FD's BlOg] - Để người xem dễ dàng xem các bài viết có cùng nhãn là tạo một tab chứa các bài viết liên quan đến vấn đề đang đọc. Và phổ biến nhất là cho tab này hiển thị cuối bài viết.


Hình minh họa:

Bây giờ tiến hành cài đặt:

1. Đầu tiên phải chỉnh sửa 1 số thuộc tính :
- Vào Vào phần Bố cục.
- Vào chỉnh sửa của Tiện ích "Bài đăng trên blog"
- Và chỉnh sửa thiết lập như hình bên dưới

- Vào Cài đặt ► Định dạng và chọn Định dạng dấu ngày tháng như hình bên trên (xem hình minh họa bên dưới).

2. Blog bạn phải có link feed (nếu chưa có, thì vào đây để kích họat).
3. Giờ đến phần chèn code vào
- Đăng nhập blog.
- Vào Chỉnh sửa code HTML
- Nhấp vào Mở Rộng Tiện ích

-Tìm dòng code sau:


<p class="post-footer-line post-footer-line-3"></p>

- Chèn ngay sau nó đọan code bên dưới:

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<b:if cond='data:post.labels'>
<div id='bailienquan'>Đang load dữ liệu...</div>
<span id='label_list_display_none' style='display:none; visibility:hidden'>
<b:loop values='data:post.labels' var='label'>
<data:label.name/>
<b:if cond='data:label.isLast
!= &quot;true&quot;'>,</b:if></b:loop></span>
<span id='post_time_stamp' style='display:none; visibility:hidden'><data:post.timestamp/>
</span>
<br/>
</b:if>
</b:if>


- Tiếp tục, chèn đoạn code bên dưới vào ngay trên thẻ đóng </body>:

<b:if cond='data:blog.pageType == "item"'>
<script type='text/javascript'>
home_page = "http://www.fandung.com/";
maxPosts = 10;
feed2js = "http://feed2js.org//feed2js.php";
</script>
<script src='http://data.fandung.com/js/related_posts_01.js'
type='text/javascript'/>

<div id='cacbailq1' style='display:none; visibility:hidden; height:0px'>
<script type='text/javascript'>creattaga("min");</script>
</div>

<div id='cacbailq2' style='display:none; visibility:hidden; height:0px'>
<script type='text/javascript'>creattaga("max");</script>
</div>

<div class='cacbailienquan' id='cacbailienquan' style="display:none;">
<script src='http://data.fandung.com/js/related_posts_02.js'
type='text/javascript'/>
<script type='text/javascript'>
displayCBLQ("cacbailq1","Các bài mới nhất cùng chủ đề:");

displayCBLQ("cacbailq2","Các bài cũ hơn cùng chủ đề:");
</script>
</div>
</b:if>

Những chỗ cần thay:
home_page = "http://www.fandung.com/"; : http://YourBlog.blogspot.com --> URL của blog của bạn
maxPosts = 10; : số bài viết sẽ hiển thị.

Lưu ý : Code chạy rất đẹp với các nhãn tiếng Anh hoặc tiếng Việt không dấu. Với các nhãn tiếng Việt, có một số từ code không hiểu được nó, do đó không lấy được các bài liên quan. Vì thế, các bạn nên sử dụng ít nhãn tiếng Việt trong blog thôi, hoặc chỉ nên dùng nhãn tiếng Việt không dấu là tốt nhất.
Nguồn : ViệtWebG - fandung

Thanh cuộn vô hạn từ Jquery cho Blogger

21:58 Add Comment
Thanh cuộn vô hạn (Infinite Scrolling) đề cập đến khả năng tiếp tục tải các nội dung mới trên trang web mà không phải làm mới nó sự xuất hiện của các bài viết là vô tận khi bạn kéo thanh cuộn xuống phía dưới chân blog. Tiện ích này được sử dụng nhiều trong các trang web lớn như Google, Facebook và Twitter và khá thành công tại đó. Lợi ích lớn nhất là tiếp xúc với nhiều nội dung và duyệt web nhanh hơn. Namkna sẽ hướng dẫn ccs bạn làm thế nào để tích hợp nó vào blog Blogger của bạn bằng cách sử dụng Ajax Infinite Scroll jQuery plugin.



VIEW DEMO

Video Demo:

» Tính năng


1. Tải nhanh hơn
2. Hiển thị nội dung tăng lên nhiều lần so với dạng truyền thống,
3. Trực quan hơn với độc giả xem bằng các thiết bị cảm ứng.
4. Thích hợp nhất cho blog sử dụng nhiều hình ảnh nặng
5. Danh mục chính được đơn giản hóa
6. Cam kết sử dụng cao hơn

» Thêm Infinite Scrolling với JQuery vào blog.

1. Đăng nhập vào blog.
2. Vào bố cục.
3. Chọn Thêm tiện ích => Tạo một tiện ích HTML/Javarscipts và chọn một trong 2 code bên dưới dán vào:
¤ Style 1: Hiển thị trên trang chủ, trang nhãn, trang lưu trữ và cả trang bài viết (các bài trước nó sẽ được nạp đầy đủ);
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js'></script><script type='text/javascript'>
//<![CDATA[
(function($){'use strict';Date.now=Date.now||function(){return+new Date()};$.ias=function(g){var h=$.extend({},$.ias.defaults,g);var i=new $.ias.util();var j=new $.ias.paging(h.scrollContainer);var k=(h.history?new $.ias.history():false);var l=this;function init(){var d;j.onChangePage(function(a,b,c){if(k){k.setPage(a,c)}h.onPageChange.call(this,a,c,b)});reset();if(k&&k.havePage()){stop_scroll();d=k.getPage();i.forceScrollTop(function(){var a;if(d>1){paginateToPage(d);a=get_scroll_threshold(true);$('html, body').scrollTop(a)}else{reset()}})}return l}init();function reset(){hide_pagination();h.scrollContainer.scroll(scroll_handler)}function scroll_handler(){var a,scrThreshold;a=i.getCurrentScrollOffset(h.scrollContainer);scrThreshold=get_scroll_threshold();if(a>=scrThreshold){if(get_current_page()>=h.triggerPageThreshold){stop_scroll();show_trigger(function(){paginate(a)})}else{paginate(a)}}}function stop_scroll(){h.scrollContainer.unbind('scroll',scroll_handler)}function hide_pagination(){$(h.pagination).hide()}function get_scroll_threshold(a){var b,threshold;b=$(h.container).find(h.item).last();if(b.size()===0){return 0}threshold=b.offset().top+b.height();if(!a){threshold+=h.thresholdMargin}return threshold}function paginate(d,e){var f;f=$(h.next).attr('href');if(!f){if(h.noneleft){$(h.container).find(h.item).last().after(h.noneleft)}return stop_scroll()}if(h.beforePageChange&&$.isFunction(h.beforePageChange)){if(h.beforePageChange(d,f)===false){return}}j.pushPages(d,f);stop_scroll();show_loader();loadItems(f,function(a,b){var c=h.onLoadItems.call(this,b),curLastItem;if(c!==false){$(b).hide();curLastItem=$(h.container).find(h.item).last();curLastItem.after(b);$(b).fadeIn()}f=$(h.next,a).attr('href');$(h.pagination).replaceWith($(h.pagination,a));remove_loader();hide_pagination();if(f){reset()}else{stop_scroll()}h.onRenderComplete.call(this,b);if(e){e.call(this)}})}function loadItems(b,c,d){var e=[],container,startTime=Date.now(),diffTime,self;d=d||h.loaderDelay;$.get(b,null,function(a){container=$(h.container,a).eq(0);if(0===container.length){container=$(a).filter(h.container).eq(0)}if(container){container.find(h.item).each(function(){e.push(this)})}if(c){self=this;diffTime=Date.now()-startTime;if(diffTime<d){setTimeout(function(){c.call(self,a,e)},d-diffTime)}else{c.call(self,a,e)}}},'html')}function paginateToPage(a){var b=get_scroll_threshold(true);if(b>0){paginate(b,function(){stop_scroll();if((j.getCurPageNum(b)+1)<a){paginateToPage(a);$('html,body').animate({'scrollTop':b},400,'swing')}else{$('html,body').animate({'scrollTop':b},1000,'swing');reset()}})}}function get_current_page(){var a=i.getCurrentScrollOffset(h.scrollContainer);return j.getCurPageNum(a)}function get_loader(){var a=$('.ias_loader');if(a.size()===0){a=$('<div class="ias_loader">'+h.loader+'</div>');a.hide()}return a}function show_loader(){var a=get_loader(),el;if(h.customLoaderProc!==false){h.customLoaderProc(a)}else{el=$(h.container).find(h.item).last();el.after(a);a.fadeIn()}}function remove_loader(){var a=get_loader();a.remove()}function get_trigger(a){var b=$('.ias_trigger');if(b.size()===0){b=$('<div class="ias_trigger"><a href="#">'+h.trigger+'</a></div>');b.hide()}$('a',b).off('click').on('click',function(){remove_trigger();a.call();return false});return b}function show_trigger(a){var b=get_trigger(a),el;el=$(h.container).find(h.item).last();el.after(b);b.fadeIn()}function remove_trigger(){var a=get_trigger();a.remove()}};$.ias.defaults={container:'.blog-posts',scrollContainer:$(window),item:'.post-outer',pagination:'#blog-pager',next:'#blog-pager-older-link a',loader:'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD9Z29ZKf86rcsnFAPD5e_bku7NUOM_lpshSy_PcaBZgVzHL_vfVujHJLZPKK5tlviXbjVOjRhRWInD7TyQhHazr6UoQMW_uw_mMg7yQYcxE6HE1k_b6VE8wkd3hb5GPqwxL1opd4MSIT0/s1600/loading-namkna-blogspot-com-scolling.gif"/>',loaderDelay:600,triggerPageThreshold:8,trigger:'Load more Posts',thresholdMargin:-500,history:true,onPageChange:function(){},beforePageChange:function(){},onLoadItems:function(){},onRenderComplete:function(){ FB.XFBML.parse(); gapi.plusone.go(); twttr.widgets.load(); _gaq.push(['_trackPageview']); },customLoaderProc:false};$.ias.util=function(){var c=false;var d=false;var e=this;function init(){$(window).load(function(){c=true})}init();this.forceScrollTop=function(a){$('html,body').scrollTop(0);if(!d){if(!c){setTimeout(function(){e.forceScrollTop(a)},1)}else{a.call();d=true}}};this.getCurrentScrollOffset=function(a){var b,wndHeight;if(a.get(0)===window){b=a.scrollTop()}else{b=a.offset().top}wndHeight=a.height();return b+wndHeight}};$.ias.paging=function(){var c=[[0,document.location.toString()]];var d=function(){};var e=1;var f=new $.ias.util();function init(){$(window).scroll(scroll_handler)}init();function scroll_handler(){var a,curPageNum,curPagebreak,scrOffset,urlPage;a=f.getCurrentScrollOffset($(window));curPageNum=getCurPageNum(a);curPagebreak=getCurPagebreak(a);if(e!==curPageNum){scrOffset=curPagebreak[0];urlPage=curPagebreak[1];d.call({},curPageNum,scrOffset,urlPage)}e=curPageNum}function getCurPageNum(a){for(var i=(c.length-1);i>0;i--){if(a>c[i][0]){return i+1}}return 1}this.getCurPageNum=function(a){a=a||f.getCurrentScrollOffset($(window));return getCurPageNum(a)};function getCurPagebreak(a){for(var i=(c.length-1);i>=0;i--){if(a>c[i][0]){return c[i]}}return null}this.onChangePage=function(a){d=a};this.pushPages=function(a,b){c.push([a,b])}};$.ias.history=function(){var e=false;var f=false;function init(){f=!!(window.history&&history.pushState&&history.replaceState);f=false}init();this.setPage=function(a,b){this.updateState({page:a},'',b)};this.havePage=function(){return(this.getState()!==false)};this.getPage=function(){var a;if(this.havePage()){a=this.getState();return a.page}return 1};this.getState=function(){var a,stateObj,pageNum;if(f){stateObj=history.state;if(stateObj&&stateObj.ias){return stateObj.ias}}else{a=(window.location.hash.substring(0,7)==='#/page/');if(a){pageNum=parseInt(window.location.hash.replace('#/page/',''),10);return{page:pageNum}}}return false};this.updateState=function(a,b,c){if(e){this.replaceState(a,b,c)}else{this.pushState(a,b,c)}};this.pushState=function(a,b,c){var d;if(f){history.pushState({ias:a},b,c)}else{d=(a.page>0?'#/page/'+a.page:'');window.location.hash=d}e=true};this.replaceState=function(a,b,c){if(f){history.replaceState({ias:a},b,c)}else{this.pushState(a,b,c)}}}})(jQuery);
//]]>
</script><script>jQuery.ias();</script>
<a href="http://namkna.blogspot.com/" alt="Blogger Templates" >Blogger Templates and Widgets</a>
¤ Style 2: Chỉ Trang chủ, trang nhãn và lưu trữ trang  (Nó sẽ không làm việc trong các trang viết ).
4. Lưu mẫu lại và xem kết quả nha.

» Một số lời khuyên và mẹo nhỏ!


- Nút +1, Tweet và nút Like sẽ được nạp sau khi tất cả các yêu cầu AJAX tải xong, vì vậy nếu blog của bạn có các nút chia sẻ xã hội bên dưới mỗi bài viết thì không cần phải lo lắng về chúng không hiển thị.

- Khi bài viết mới được tải dưới một bài (Nếu bạn chọn style 1), thì Threaded trong bài viết vừa được nạp sẽ không làm việc

- Để thay thế hình ảnh tải, chỉ cần tìm kiếm ảnh có đuôi .Gif trong mã và thay thế thành URL hình ảnh khác

Để thay đổi số lần tải trước khi người dùng được yêu cầu tải trang nhiều hơn, tìm kiếmtriggerPageThreshold:8 và thay thế các số ở phía trước, nếu như bạn thiết lập giá trị là 4thì plugin sẽ tải các nội dung mới bốn lần trước khi nó yêu cầu bạn xem bạn muốn xem nội dung nhiều hơn hay không

onRenderComplete:function() chức năng được sử dụng để nói với các plugin phải làm gì sau khi trang đã được nạp thành công, Ở đây namkna đã thêm một đoạn mã để nói với Google Analytics là một trang mới được tải để GA sẽ ghi nhận mọi yêu cầu AJAX như một trang mới thăm

loaderDelay:600 là thời gian chờ đợi trước khi nội dung mới được tải thêm (đoan vị tính là phần nghìn giây).

- Để biết thông tin về tất cả các tùy chọn có sẵn trong plugin này hãy xem tại đây IAS Options

Nếu bạn phải đối mặt với bất kỳ khó khăn trong việc thực hiện, hãy để lại yêu namkna sẽ giải thích các ý kiến

Theo: Namkna.blogspot.com