Cách tạo menu nén dạng Megaanchor blogspot

 humghn.com 

Trong các bài viết trước , chuyên mục đã gửi đến các bạn rất nhiều các thiết kế menu cho blog . Bao gồm các thiết kế menu ngang , menu dọc , menu ngang xổ nhiều cấp , menu dọc xổ nhiều cấp ..v..v.. Trong bài viết lần này , chuyên mục sẽ gửi đến các bạn một thiết kế menu hoàn toàn mới , đó là " menu nén dạng Megaanchor blogspot " 
DEMO


Cách tạo menu nén dạng Megaanchor blogspot


Cách thực hiện 
Để viết đoạn code này thì khó nhưng để thực thi đoạn code này thì lại rất đơn giản . Các bạn chỉ cần đăng nhập blogspot , chọn mục " Bố cục " và sau đó tạo thêm thẻ " HTML/Javascript " và dán đoạn code phía dưới vào thẻ HTML/JavaScript vừa tạo là được .
<script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<style type="text/css">
.megamenu{
position: absolute;
display: none;
left: 0;
top: 0;
background: white;
border: 1px solid #f06b24;
border-width: 5px 5px;
padding: 10px;
font: normal 12px verdanal;
z-index: 100;
}
.megamenu .column{
float: left;
width: 180px;
margin-right: 5px;
}
.megamenu .column ul{
margin: 0;
padding: 0;
list-style-type: none;
}
.megamenu .column ul li{
padding-bottom: 5px;
}
.megamenu .column h3{
background: #e0e0e0;
font: bold 13px verdana;
margin: 0 0 5px 0;
}
.megamenu .column ul li a{
text-decoration: none;
}
.megamenu .column ul li a:hover{
color: red;
}
</style>
<script type="text/javascript">
jQuery.noConflict();
var jkmegamenu={
effectduration: 300, //duration of animation, in milliseconds
delaytimer: 200, //delay after mouseout before menu should be hidden, in milliseconds
//No need to edit beyond here
megamenulabels: [],
megamenus: [], //array to contain each block menu instances
zIndexVal: 1000, //starting z-index value for drop down menu
$shimobj: null,
addshim:function($){
$(document.body).append('<iframe id="outlineiframeshim" src="'+(location.protocol=="https:"? 'blank.htm' : 'about:blank')+'" style="display:none; left:0; top:0; z-index:999; position:absolute; filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)" frameBorder="0" scrolling="no"></IFRAME>')
this.$shimobj=$("#outlineiframeshim")
},
alignmenu:function($, e, megamenu_pos){
var megamenu=this.megamenus[megamenu_pos]
var $anchor=megamenu.$anchorobj
var $menu=megamenu.$menuobj
var menuleft=($(window).width()-(megamenu.offsetx-$(document).scrollLeft())>megamenu.actualwidth)? megamenu.offsetx : megamenu.offsetx-megamenu.actualwidth+megamenu.anchorwidth //get x coord of menu
//var menutop=($(window).height()-(megamenu.offsety-$(document).scrollTop()+megamenu.anchorheight)>megamenu.actualheight)? megamenu.offsety+megamenu.anchorheight : megamenu.offsety-megamenu.actualheight
var menutop=megamenu.offsety+megamenu.anchorheight //get y coord of menu
$menu.css({left:menuleft+"px", top:menutop+"px"})
this.$shimobj.css({width:megamenu.actualwidth+"px", height:megamenu.actualheight+"px", left:menuleft+"px", top:menutop+"px", display:"block"})
},
showmenu:function(e, megamenu_pos){
var megamenu=this.megamenus[megamenu_pos]
var $menu=megamenu.$menuobj
var $menuinner=megamenu.$menuinner
if ($menu.css("display")=="none"){
this.alignmenu(jQuery, e, megamenu_pos)
$menu.css("z-index", ++this.zIndexVal)
$menu.show(this.effectduration, function(){
$menuinner.css('visibility', 'visible')
})
}
else if ($menu.css("display")=="block" && e.type=="click"){ //if menu is hidden and this is a "click" event (versus "mouseout")
this.hidemenu(e, megamenu_pos)
}
return false
},
hidemenu:function(e, megamenu_pos){
var megamenu=this.megamenus[megamenu_pos]
var $menu=megamenu.$menuobj
var $menuinner=megamenu.$menuinner
$menuinner.css('visibility', 'hidden')
this.$shimobj.css({display:"none", left:0, top:0})
$menu.hide(this.effectduration)
},
definemenu:function(anchorid, menuid, revealtype){
this.megamenulabels.push([anchorid, menuid, revealtype])
},
render:function($){
for (var i=0, labels=this.megamenulabels[i]; i<this.megamenulabels.length; i++, labels=this.megamenulabels[i]){
if ($('#'+labels[0]).length!=1 || $('#'+labels[1]).length!=1) //if one of the two elements are NOT defined, exist
return
this.megamenus.push({$anchorobj:$("#"+labels[0]), $menuobj:$("#"+labels[1]), $menuinner:$("#"+labels[1]).children('ul:first-child'), revealtype:labels[2], hidetimer:null})
var megamenu=this.megamenus[i]
megamenu.$anchorobj.add(megamenu.$menuobj).attr("_megamenupos", i+"pos") //remember index of this drop down menu
megamenu.actualwidth=megamenu.$menuobj.outerWidth()
megamenu.actualheight=megamenu.$menuobj.outerHeight()
megamenu.offsetx=megamenu.$anchorobj.offset().left
megamenu.offsety=megamenu.$anchorobj.offset().top
megamenu.anchorwidth=megamenu.$anchorobj.outerWidth()
megamenu.anchorheight=megamenu.$anchorobj.outerHeight()
$(document.body).append(megamenu.$menuobj) //move drop down menu to end of document
megamenu.$menuobj.css("z-index", ++this.zIndexVal).hide()
megamenu.$menuinner.css("visibility", "hidden")
megamenu.$anchorobj.bind(megamenu.revealtype=="click"? "click" : "mouseenter", function(e){
var menuinfo=jkmegamenu.megamenus[parseInt(this.getAttribute("_megamenupos"))]
clearTimeout(menuinfo.hidetimer) //cancel hide menu timer
return jkmegamenu.showmenu(e, parseInt(this.getAttribute("_megamenupos")))
})
megamenu.$anchorobj.bind("mouseleave", function(e){
var menuinfo=jkmegamenu.megamenus[parseInt(this.getAttribute("_megamenupos"))]
if (e.relatedTarget!=menuinfo.$menuobj.get(0) && $(e.relatedTarget).parents("#"+menuinfo.$menuobj.get(0).id).length==0){ //check that mouse hasn't moved into menu object
menuinfo.hidetimer=setTimeout(function(){ //add delay before hiding menu
jkmegamenu.hidemenu(e, parseInt(menuinfo.$menuobj.get(0).getAttribute("_megamenupos")))
}, jkmegamenu.delaytimer)
}
})
megamenu.$menuobj.bind("mouseenter", function(e){
var menuinfo=jkmegamenu.megamenus[parseInt(this.getAttribute("_megamenupos"))]
clearTimeout(menuinfo.hidetimer) //cancel hide menu timer
})
megamenu.$menuobj.bind("click mouseleave", function(e){
var menuinfo=jkmegamenu.megamenus[parseInt(this.getAttribute("_megamenupos"))]
menuinfo.hidetimer=setTimeout(function(){ //add delay before hiding menu
jkmegamenu.hidemenu(e, parseInt(menuinfo.$menuobj.get(0).getAttribute("_megamenupos")))
}, jkmegamenu.delaytimer)
})
} //end for loop
if(/Safari/i.test(navigator.userAgent)){ //if Safari
$(window).bind("resize load", function(){
for (var i=0; i<jkmegamenu.megamenus.length; i++){
var megamenu=jkmegamenu.megamenus[i]
var $anchorisimg=(megamenu.$anchorobj.children().length==1 && megamenu.$anchorobj.children().eq(0).is('img'))? megamenu.$anchorobj.children().eq(0) : null
if ($anchorisimg){ //if anchor is an image link, get offsets and dimensions of image itself, instead of parent A
megamenu.offsetx=$anchorisimg.offset().left
megamenu.offsety=$anchorisimg.offset().top
megamenu.anchorwidth=$anchorisimg.width()
megamenu.anchorheight=$anchorisimg.height()
}
}
})
}
else{
$(window).bind("resize", function(){
for (var i=0; i<jkmegamenu.megamenus.length; i++){
var megamenu=jkmegamenu.megamenus[i]
megamenu.offsetx=megamenu.$anchorobj.offset().left
megamenu.offsety=megamenu.$anchorobj.offset().top
}
})
}
jkmegamenu.addshim($)
}
}
jQuery(document).ready(function($){
jkmegamenu.render($)
})
</script>
<script type="text/javascript">
//jkmegamenu.definemenu("anchorid", "menuid", "mouseover|click")
jkmegamenu.definemenu("megaanchor", "megamenu1", "mouseover")
</script>
<a href="http://themeblogspot247.blogspot.com/" id="megaanchor"><img alt="" src="http://i1170.photobucket.com/albums/r538/binhminh2000/21_zps90d6b5d4.jpg" style="border:0px"/ ></a>
<div id="megamenu1" class="megamenu">
<div class="column">
<h3>
<img src="http://i1380.photobucket.com/albums/ah175/themeblogspot247/23_zps5d08c2ad.gif" alt="" style="border:0px;"/ > Sản phẩm</h3>
<ul>
<li><a href="http://themeblogspot247.blogspot.com/"> Hài xuân 2012 </a></li>
<li><a href="http://themeblogspot247.blogspot.com/"> Hài xuân 2011 </a></li>
<li><a href="http://themeblogspot247.blogspot.com/"> Châu tinh trì </a></li>
<li><a href="http://themeblogspot247.blogspot.com/"> Thư giãn cuối tuần </a></li>
<li><a href="http://themeblogspot247.blogspot.com/"> Chọn lọc </a></li>
</ul>
</div>
<div class="column">
<h3>
<img src="http://i1380.photobucket.com/albums/ah175/themeblogspot247/25_zps3ed4ab38.gif" alt="" style="border:0px;"/ > Trang chủ</h3>
<ul>
<li><a href="http://themeblogspot247.blogspot.com/">Trang chủ</a></li>
<li><a href="http://themeblogspot247.blogspot.com/">Đăng nhập</a></li>
<li><a href="http://themeblogspot247.blogspot.com/">Control Panel</a></li>
<li><a href="http://themeblogspot247.blogspot.com/">Thoát</a></li>
</ul>
</div>
<div class="column">
<h3>
<img src="http://i1380.photobucket.com/albums/ah175/themeblogspot247/27_zps48b8a694.gif" alt="" style="border:0px;"/ > Story</h3>
<ul>
<li><a href="http://themeblogspot247.blogspot.com/"> Love story </a></li>
<li><a href="http://themeblogspot247.blogspot.com/"> Blogradio </a></li>
<li><a href="http://themeblogspot247.blogspot.com/"> Quà tặng cuộc sống </a></li>
<li><a href="http://themeblogspot247.blogspot.com/"> Khoảnh khắc kỳ diệu </a></li>
</ul>
</div>
<br style="clear: left" />
<div class="column">
<h3>
<img src="http://i1380.photobucket.com/albums/ah175/themeblogspot247/26_zps9dfb2285.gif" alt="" style="border:0px;"/ > Thủ thuật</h3>
<ul>
<li><a href="http://themeblogspot247.blogspot.com/"> Blogspot </a></li>
<li><a href="http://themeblogspot247.blogspot.com/"> Blog Yahoo </a></li>
<li><a href="http://themeblogspot247.blogspot.com/"> Messenger</a></li>
<li><a href="http://themeblogspot247.blogspot.com/"> World-PPT/a></li>
<li><a href="http://themeblogspot247.blogspot.com/"> Photoshop</a></li>
</ul>
</div>
<div class="column">
<h3>
<img src="http://i1380.photobucket.com/albums/ah175/themeblogspot247/26_zps9dfb2285.gif" alt="" style="border:0px;"/ > Download</h3>
<ul>
<li><a href="#">Làm phim</a></li>
<li><a href="#">IDM</a></li>
<li><a href="#">Miễn phí</a></li>
<li><a href="#">Phim</a></li>
</ul>
</div>
<div class="column">
<h3>
<img src="http://i1380.photobucket.com/albums/ah175/themeblogspot247/24_zpse9f286aa.gif" alt="" style="border:0px;"/ > Nge nhạc</h3>
<ul>
<li><a href="#">Nhạc hình</a></li>
<li><a href="#">Nhạc vàng</a></li>
<li><a href="#">Không lời</a></li>
<li><a href="#">Quốc tế</a></li>
</ul>
</div>
</div>
Sau khi dán code , các bạn tùy chỉnh link dẫn , tên tiêu đề theo nhu cầu sử dụng riêng của các bạn .
Chúc các bạn thành công !




 

Copyright @ 2013 Thông Tin Công Nghệ - Giải Trí & Học Tập.