首页 > 编程 > JavaScript > 正文

jQuery实现带幻灯的tab滑动切换风格菜单代码

2019-11-20 11:40:15
字体:
来源:转载
供稿:网友

本文实例讲述了jQuery实现带幻灯的tab滑动切换风格菜单代码。分享给大家供大家参考。具体如下:

这是一款很不错的TAB滑动切换效果,jQuery带幻灯的tab滑动切换风格菜单导航条,点击上方的文字,下边就向左或向右滑动切换,动画效果的TAB选项卡。

运行效果截图如下:

在线演示地址如下:

http://demo.VeVB.COm/js/2015/jquery-flash-style-tab-cha-menu-codes/

具体代码如下:

<!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>jQuery实现的带幻灯效果的tab风格导航菜单</title><script type="text/javascript" src="jquery-1.6.2.min.js"></script><script>;(function( $ ){ var $scrollTo = $.scrollTo = function( target, duration, settings ){ $(window).scrollTo( target, duration, settings ); }; $scrollTo.defaults = { axis:'xy', duration: parseFloat($.fn.jquery) >= 1.3 ? 0 : 1 }; $scrollTo.window = function( scope ){ return $(window)._scrollable(); }; $.fn._scrollable = function(){ return this.map(function(){  var elem = this,  isWin = !elem.nodeName || $.inArray( elem.nodeName.toLowerCase(), ['iframe','#document','html','body'] ) != -1;  if( !isWin )   return elem;  var doc = (elem.contentWindow || elem).document || elem.ownerDocument || elem;  return $.browser.safari || doc.compatMode == 'BackCompat' ?  doc.body :   doc.documentElement; }); }; $.fn.scrollTo = function( target, duration, settings ){ if( typeof duration == 'object' ){  settings = duration;  duration = 0; } if( typeof settings == 'function' )  settings = { onAfter:settings };  if( target == 'max' )  target = 9e9; settings = $.extend( {}, $scrollTo.defaults, settings ); duration = duration || settings.speed || settings.duration; settings.queue = settings.queue && settings.axis.length > 1; if( settings.queue )  duration /= 2; settings.offset = both( settings.offset ); settings.over = both( settings.over ); return this._scrollable().each(function(){  var elem = this,  $elem = $(elem),  targ = target, toff, attr = {},  win = $elem.is('html,body');  switch( typeof targ ){  // A number will pass the regex  case 'number':  case 'string':   if( /^([+-]=)?/d+(/./d+)?(px|%)?$/.test(targ) ){   targ = both( targ );   // We are done   break;   }   // Relative selector, no break!   targ = $(targ,this);  case 'object':   // DOMElement / jQuery   if( targ.is || targ.style )   // Get the real position of the target    toff = (targ = $(targ)).offset();  }  $.each( settings.axis.split(''), function( i, axis ){  var Pos = axis == 'x' ? 'Left' : 'Top',   pos = Pos.toLowerCase(),   key = 'scroll' + Pos,   old = elem[key],   max = $scrollTo.max(elem, axis);  if( toff ){// jQuery / DOMElement   attr[key] = toff[pos] + ( win ? 0 : old - $elem.offset()[pos] );   // If it's a dom element, reduce the margin   if( settings.margin ){   attr[key] -= parseInt(targ.css('margin'+Pos)) || 0;   attr[key] -= parseInt(targ.css('border'+Pos+'Width')) || 0;   }   attr[key] += settings.offset[pos] || 0;   if( settings.over[pos] )   // Scroll to a fraction of its width/height   attr[key] += targ[axis=='x'?'width':'height']() * settings.over[pos];  }else{    var val = targ[pos];   // Handle percentage values   attr[key] = val.slice && val.slice(-1) == '%' ?    parseFloat(val) / 100 * max   : val;  }  // Number or 'number'  if( /^/d+$/.test(attr[key]) )   // Check the limits   attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max );  // Queueing axes  if( !i && settings.queue ){   // Don't waste time animating, if there's no need.   if( old != attr[key] )   // Intermediate animation   animate( settings.onAfterFirst );   // Don't animate this axis again in the next iteration.   delete attr[key];  }  });  animate( settings.onAfter );    function animate( callback ){  $elem.animate( attr, duration, settings.easing, callback && function(){   callback.call(this, target, settings);  });  }; }).end(); }; $scrollTo.max = function( elem, axis ){ var Dim = axis == 'x' ? 'Width' : 'Height',  scroll = 'scroll'+Dim; if( !$(elem).is('html,body') )  return elem[scroll] - $(elem)[Dim.toLowerCase()](); var size = 'client' + Dim,  html = elem.ownerDocument.documentElement,  body = elem.ownerDocument.body; return Math.max( html[scroll], body[scroll] )   - Math.min( html[size] , body[size] ); }; function both( val ){ return typeof val == 'object' ? val : { top:val, left:val }; };})( jQuery );$(document).ready(function() {  $('#mask').css({'height':$('#panel-1').height()});  $('#panel').width(parseInt($('#mask').width() * $('#panel div').length)); $('#panel div').width($('#mask').width()); $('a[rel=panel]').click(function () { var panelheight = $($(this).attr('href')).height(); $('a[rel=panel]').removeClass('selected'); $(this).addClass('selected'); $('#mask').animate({'height':panelheight},{queue:false, duration:500});   $('#mask').scrollTo($(this).attr('href'), 800);  return false; });});</script><style>body { padding:0; margin:0 20px; background:#d2e0e5; font:12px arial;}#scroller-header a { text-decoration:none;  color:#867863;  padding:0 2px;}#scroller-header a:hover { text-decoration:none;  color:#4b412f}a.selected { text-decoration:underline !important;  color:#4b412f !important;}#scroller-header { background:url(images/header.gif) no-repeat; width:277px; height:24px; padding:35px 0 0 15px; font-weight:700;}#scroller-body { background:url(images/body.gif) no-repeat bottom center; width:277px; padding-bottom:30px;}#mask { width:250px; overflow:hidden; margin:0 auto;}#panel {}#panel div {float:left;}#panel ul {list-style:none;margin:0 5px;padding:0;}#panel ul li {padding:5px;color:#557482;border-bottom:1px dotted #ccc;}#panel ul li.last {border-bottom:none !important;}#panel-1 {}#panel-2 {}#panel-3 {}</style></head><body><h2><a href="#">jQuery Sidebar Sliding Tab Menu Tutorial</a></h2><div id="scroller-header"><a href="#panel-1" rel="panel" class="selected">流行时尚</a><a href="#panel-2" rel="panel">网络注释</a><a href="#panel-3" rel="panel">历史记录</a><a href="#panel-4" rel="panel">网络收藏</a></div><div id="scroller-body"><div id="mask"><div id="panel"> <div id="panel-1"> <ul> <li>Simple JQuery Image Slide Show with Semi-Transparent Caption</li> <li>A Really Simple jQuery Plugin Tutorial</li> <li>Create a Simple CSS + Javascript Tooltip with jQuery</li> <li>Simple jQuery Modal Window Tutorial</li> </ul> </div> <div id="panel-2"> <ul> <li>30 Javascript Menu Plugins and Scripts</li> <li>10+ jQuery photo gallery and slider plugins</li> </ul>  </div> <div id="panel-3"> <ul> <li>CSS and Web Gallery List</li> <li class="last">Examples for Inpiration</li> </ul>  </div> <div id="panel-4"> <ul> <li>武林网</li> <li>seo</li> <li class="last">wordpress</li> </ul>  </div> </div></div></div></body></html>

希望本文所述对大家的jquery程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表