Hướng dẫn tạo giao diện timeline

  • Thread starter Thread starter AdminAdmin is verified member.
  • Start date Start date
Admin

AdminAdmin is verified member.

Well-Known Member
Staff member
Administrator
SinhVienIT.Net---facebooktimeline.png



Xem Demo



Mã HTML

<div id="container">

<
div class="item">1</div>
<
div class="item">2</div>
<
div class="item">3</div>
<
div class="item">4</div>

</
div>


SinhVienIT.Net---space1.png


CSS
#container{width:860px; margin: 0 auto; }
.item {
width: 408px;
margin: 20px 10px 10px 10px;
float: left;
background-color:#ffffff;
border:solid 1px #B4BBCD;
min-height:50px;
text-align:justify;
word-wrap:break-word;
}


Tạo ra khoảng không gian

Ở đây sử dụng jQuery Masonry

<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.5/jquery.min.js"
></script>
<script type="text/javascript" src="jquery.masonry.min.js"/>
<script type="text/javascript" >
$(function()
{
// masonry plugin call
$('#container').masonry({itemSelector : '.item',});
});
</script>


Sau khi chèn plug in

SinhVienIT.Net---space2.png

Tạo thanh Timeline

<div id="container">
// Timeline Navigator
<div class="timeline_container">
<
div class="timeline">
<
div class="plus"></div>
</
div>
</
div>

<
div class="item">1</div>
--------
--------

</
div>


SinhVienIT.Net---timeline.png

JavaScript
$('.timeline_container').mousemove(function(e)
{
var
topdiv=$("#containertop").height();
var
pag= e.pageY - topdiv-26;
$(
'.plus').css({"top":pag +"px", "background":"url('images/plus.png')","margin-left":"1px"});}).
mouseout(function()
{
$(
'.plus').css({"background":"url('')"});
});


CSS cho Timeline

.timeline_container{
width: 16px;
text-align: center;
margin: 0 auto;
cursor:pointer;
display: block;
}
.
timeline{
margin: 0 auto;
background-color:#e08989;
display: block;
float: left;
height: 100%;
left: 428px;
margin-top: 10px;
position: absolute;
width: 4px;
}
.
timeline:hover{cursor: pointer;margin: 0 auto;}
.
timeline div.plus{width: 14px;height: 14px;position: relative;left: -6px;}

Tạo nút mũi tên chỉ vào Timeline

function Arrow_Points()
{
var
s = $('#container').find('.item');
$.
each(s,function(i,obj){
var
posLeft = $(obj).css("left");
$(
obj).addClass('borderclass');
if(
posLeft == "0px")
{
html = "<span class='rightCorner'></span>";
$(
obj).prepend(html);
}
else
{
html = "<span class='leftCorner'></span>";
$(
obj).prepend(html);
}
});
}


SinhVienIT.Net---arrow.png

CSS
.rightCorner {
background-image: url("images/right.png");
display: block;
height: 15px;
margin-left: 408px;
margin-top: 8px;
padding: 0;
vertical-align: top;
width: 13px;
z-index:2;
position: absolute;
}
.
leftCorner{
background-image: url("images/left.png");
display: block;
height: 15px;
width: 13px;
margin-left: -13px;
margin-top: 8px;
position: absolute;
z-index:2;
}


Nút xóa cho các bài viết

<div id="container">

<
div class="item">
<
a href='#' class='deletebox'>X</a>
1
</div>
<
div class="item">
<
a href='#' class='deletebox'>X</a>
2
</div>
-----------
-----------
-----------

</
div>

Javascript
Trongđoạn code. $(".deletebox").live('click',function(){} - deletebox là tên class của tag (X). Sử dụng$(this).attr("id") để gọi nút xóa. tại đây mỗi khi nút xóa đc bấm container sẽ reload lại trang.
$(".deletebox").live('click',function()
{
if(
confirm("Are your sure?"))
{
$(
this).parent().fadeOut('slow');
//Remove item block
$('#container').masonry( 'remove', $(this).parent() );
//Reload masonry plugin
$('#container').masonry( 'reload' );
//Hiding existing Arrows
$('.rightCorner').hide();
$(
'.leftCorner').hide();
//Injecting fresh arrows
Arrow_Points();
}
return
false;
});


Phần đăng trạng thái
Tạo 1 thẻ div popup bên trong thẻ div container. Lớp này chứa textbox ID='update' và input ID "update_button.

<div id="container">

<
div class="item">1</div>
--------
--------

<
div id="popup" class='shade'>
<
div class="Popup_rightCorner" > </div>
What's Up?
<textarea id='
update'></textarea>
<input type='
submit' value=' Update ' id='update_button/>
</
div>

</
div>

SinhVienIT.Net---status.png

JavaScript
$(".timeline_container").live('click',function() {} - timeline_containerlà tên class của thanh Timeline .

/Timeline navigator on click action
$(".timeline_container").click(function(e)
{
var
topdiv=$("#containertop").height();
//Current Postion
$("#popup").css({'top'
2.gif
e.pageY-topdiv-33)+'px'});
$(
"#popup").fadeIn(); //Popup block show
//Textbox focus
$("#update").focus();
});

//Mouseover no action
$("#popup").mouseup(function() {return false});
//Outside action of the popup block
$(document).mouseup(function(){$('#popup').hide();});

//Update button action
$("#update_button").live('click',function()
{
//Textbox value
var x=$("#update").val();
//Ajax Part
$("#container").prepend('<div class="item"><a href="#" class="deletebox">X</a>'+x+'</div>');
//Reload masonry
$('#container').masonry( 'reload' );
//Hiding existing arrows
$('.rightCorner').hide();
$(
'.leftCorner').hide();
//Injecting fresh arrows
Arrow_Points();
//Clear popup textbox value
$("#update").val('');
//Popup hide
$("#popup").hide();
return
false;
});

CSS
#popup{
display: block;width: 408px;
float: left;margin-top:10px;
background-color:#ffffff;
border:solid 1px #A9B6D2;
min-height:60px;display:none;
position:absolute;margin:10px;
}

-----> Tạo 1 giao diện Timeline đâu có khó
SinhVienIT.Net---4-1.gif

Nguồn: http://windowsz.net

Tặng mọi người cái demo... Của windowsz.net nhá. Mình chỉ edit sơ qua thôi. CÒn cái mình edit hoàn chỉnh thì không share đc. Đang ở trên localhost.. ;))
 

Facebook Comments

Similar threads

Admin
Replies
4
Views
3K
AdminAdmin is verified member.
Admin
H
Replies
0
Views
1K
htnkenji
H
Back
Top