Tiêu đề bài viết chạy theo thanh cuộn - giống Haivl.com

Bạn Hiếu Nguyễn Văn có đưa ra ý tưởng làm cách nào để tiêu đề bài viết chạy theo thanh cuộn giống như Haivl.com và ở bài viết này mình sẽ hướng dẫn thực hiện thủ thuật này

Lưu ý


  • Trước khi thực hiện thủ thuật bạn nên lưu lại template để đề phòng

Cài đặt trong template

Bước 1: Dán code bên dưới trước thẻ </head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js"></script><b:if cond='data:blog.pageType == &quot;item&quot;'>
<style type='text/css'>
/*<![CDATA[*/
 #trollvltitleFloat {clear:both;padding: 6px 0;display:block;background:#FFFFFF;}
 #trollvltitleFloat td{padding:4px;margin:0;border:none;}
 #trollvltitleFloat td iframe{max-width:82px;width:82px !important;}
 #trollvltitleFloat.trollvlFloatTitle{position: fixed;top:0;z-index:9999999;border-bottom:1px solid #ccc;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.15);-moz-box-shadow:0 1px 1px rgba(0,0,0,0.15);box-shadow:0 1px 1px rgba(0,0,0,0.15);}
/*]]>*/
</style>
<script type="text/javascript">
/*<![CDATA[*/
// Set the Top Offset
$theOffset = 0;
jQuery(document).ready(function(b){var a=b("#trollvltitleFloat");a.wrap('<div id="trollvlTitlelPlaceholder"></div>').closest("#trollvlTitlelPlaceholder").height(a.outerHeight());a.width(a.outerWidth());e=a.offset().top-$theOffset;b("#trollvltitleFloat iframe[src*=plusone]").closest("div").css("max-width","82px");b(window).scroll(function(){d=b(this).scrollTop();d>=e?a.addClass("trollvlFloatTitle"):a.removeClass("trollvlFloatTitle");f=b(".post");if(f.length!=0){c=f.outerHeight()+f.offset().top;d>=c?a.stop().animate({top:"-150px"}):a.stop().animate({top:$theOffset+"px"})}else d>=e?a.css("top",$theOffset+"px"):a.css("top","0")})});
/*]]>*/
</script>
</b:if>
  • Xóa dòng màu đỏ đi nếu trong template của bạn đã có jQuery rồi tránh xung đột code
  • Thay đổi  #FFFFFF nếu muốn màu nền chứa tiêu đề thành màu khác
  • Đoạn code màu xanh là bóng và khung của tiêu đề bạn có thể tùy chỉnh theo ý mình

Bước 2: Xác định phần chứa tiêu đề trong template
Ví dụ khi sử dụng trình duyệt Chrome ta làm như sau:

  • Nhấn chuột phải vào phần tiêu đề sau đó chọn Kiểm tra phần tử
  • Hiện ra khung bên dưới ta sẽ biết được đâu là phần tiêu đề trong template


  • Như hình trên ta sẽ thấy được class của Tiêu đề là post-title entry-title.
  • Dựa vào đoạn vừa tìm được ta vào trong template để xác định toàn bộ code chứa tiêu đề bài viết ta sẽ được đoạn tương tự:

<h3 class='post-title entry-title' itemprop='name'>
      <b:if cond='data:post.link'>
        <a expr:href='data:post.link'><data:post.title/></a>
      <b:else/>
        <b:if cond='data:post.url'>
          <b:if cond='data:blog.url != data:post.url'>
            <a expr:href='data:post.url'><data:post.title/></a>
          <b:else/>
            <data:post.title/>
          </b:if>
        <b:else/>
          <data:post.title/>
        </b:if>
      </b:if>
      </h3>

  • Tại sao mình lại nói là tương tự? Bởi vì mỗi cấu trúc của template có thể khác nhau một chút. Và ta gọi đoạn code chứa tiêu đề bài viết bên trên là A

Bước 3: Thêm thuộc tính chạy dọc theo bài viết cho tiêu đề
Dán đoạn code bên dưới vào trước sau đoạn code chứa tiêu đề A (thường là chèn vào đoạn code A thứ 2 trong template) bên trên và lưu lại template
<div id="trollvltitleFloat" class="trollvltitleFloat">
<table  width="100%" class="trollvltitleFloat">
 <tr>
  <td>
A</td>
 </tr>
</table>
</div>
Chúc bạn thành công! Đừng quên like và share bài viết nếu thấy hay nhé! Cảm ơn 
13 Comments
Comments

13 comments

17/6/13
Với template của blog mình thì làm thế nào!?
tks!
17/6/13
Đây là địa chỉ của blog mình: http://dafunvl.blogspot.com
tks bạn!
17/6/13
Nếu muốn hoạt động ngoài cả trang index bạn chỉ việc bỏ dòng
<b:if cond='data:blog.pageType == &quot;item&quot;'> và thẻ đóng </b:if> ở đoạn code đầu tiên
17/6/13
Mình chỉ muốn áp dụng cho trang index và trang label thôi thì tùy chỉnh thế nào!?
thanks bạn! :)
18/6/13
Vậy ở code đầu bạn thay thế item thành index. Cụ thể sau khi thay xong sẽ như sau
<b:if cond='data:blog.pageType == &quot;index&quot;'>
19/6/13
Mình ko làm dc!
hix! ;((
Mình gửi template vào mail bạn rồi, bạn xem giúp mình nhé! :)
19/6/13
Hình như bạn gửi nhầm template cho mình rồi @-)
19/6/13
Đúng rùi mà!
Mình gửi lại template mình mới lưu vào mail bạn rùi!
Bạn xem giúp mình nhé!
thanks! :))
20/6/13
template bạn gửi chỉ hiển thị widget Bài viết mới nhất từ blog của mình thôi. Mình thật sự không hiểu gì cả @-)
http://3.bp.blogspot.com/-nMDMA-rPacQ/UcHsAnERDjI/AAAAAAAALpw/0d1KrCJ7mr4/s1600/fixloi.png
20/6/13
:-?
kì vậy!
Bạn thử tạo 1 blog mới xem
Để mình sent lại template và data lun, bạn xem thử nhé!
Anonymous
20/6/13
Bạn có thể hướng dẫn mình làm cái comment song song ma không bị lỗi giống bạn không??
21/6/13
Bạn tham khảo bài viết này của Namkna, nếu vẫn không thực hiện được thì lưu template lại gửi qua email cho mình (huycovip.volam@gmail.com)
21/6/13
Bạn xem thế nào rồi! :)

Cảm ơn bạn đã ghé thăm Troll VL !
» Tạm thời ngăn không cho comment với chế độ ẩn danh vì có một số bạn không có thành ý cố tình spam. Mong các bạn thông cảm!
» Bạn nên viết bằng Tiếng Việt có dấu để mọi người dễ đọc, dễ bình luận
» Để liên hệ,góp ý và đóng góp bài viết bạn click vào đây
Sử dụng các thẻ sau cho comments
» Chèn nội dung vào blockquote <b rel="quote">Nội dung blockquote</b>
» Chèn nội dung vào note <em rel="note">Nội dung note</em>
» Chèn code vào khung pre <i rel="pre">Nội dung code</i>
» Chèn hình ảnh <i rel="image">Link hình ảnh</i>
» Chèn video từ youtube [youtube]link video[/youtube]
» Chèn link <i rel="anchor">Link</i>

Insert Emoticons
:cuoi
:hihi
:thank
:haha
:meu
:cry
:oaoa
1cuoi
:D
@@
:p
:o
:vi
:ko
:ca
:why
:xin
:lanh
:im
:aoi
:ado
:mda
:tat
0:khoa
a:ab
k:ac
q:ad
w:ae
e:af
l:ag
g:ah
8:ai
9:aj
9:ag
:9a
*Phải có khoảng trống trước các code mới hiển thị mặt cười


Mã Hóa Code Tạo và xem trước comments Cancel Reply
-->