ddsmoothmenuのIE6対応

投稿者: | 2012年10月31日

http://www.dynamicdrive.com/ で拾えるddsmoothmenu.jsだけど、残念ながらIE6には未対応である。
IE6で動かしたところ、JQueryのanimateが微妙に動かないためにドロップダウンメニュー表示がされなかったりするケースがあるので、animateを置換えて無理矢理動作させる。
ついでにコンボボックスのZ-IndexがIE6だとおかしい(有名なやつ)ので、それも非表示っていう大味な対処をする。

ドロップダウンメニュー表示のところ

$targetul.css({left:menuleft+"px",width:header._dimensions.subulw+'px'}).animate({height:'show',opacity:'show'}, ddsmoothmenu.transition.overtime)

if (smoothmenu.detectie6) {
	if (smoothmenu.detectie6) $('select').each(function(){ $(this).css('visibility', 'hidden'); })
	$targetul.css({left:menuleft+"px", width:header._dimensions.subulw+'px', display:'block', visibility:'visible'})
} else {
	$targetul.css({left:menuleft+"px",width:header._dimensions.subulw+'px'}).animate({height:'show',opacity:'show'}, ddsmoothmenu.transition.overtime)
}

ドロップダウンメニュー非表示のところ

$targetul.animate({height:'hide', opacity:'hide'}, ddsmoothmenu.transition.outtime)

if (smoothmenu.detectie6) {
	$('select').each(function(){ $(this).css('visibility', 'visible'); })
	$targetul.css({display:'none', visibility:'hidden'})
} else {
	$targetul.animate({height:'hide', opacity:'hide'}, ddsmoothmenu.transition.outtime)
}

IE6早くなくなんないかねー

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です