Beyonce の Tumblr ページで見られるようなメニューを再現しようとしています。その効果を作成するには、どの html/css タグを使用しますか? 矢印をクリックするとスライドするメニューのことです。
質問する
6890 次
3 に答える
1
CSS3 / HTMLで基本的なメニューを作成するためにこの記事を読みたいと思います。ウェブサイトでは、HTML / CSSでメニューを生成できます...しかし、より多くの効果については、Javascriptライブラリ[サンプル:JqueryUIデモ効果]を使用できます。 ..
于 2012-08-03T08:03:12.063 に答える
1
これが実装です。以下を異なるセクションに挿入する必要があります。
ヘッド セクション:
<style>
<!--
#slidemenubar, #slidemenubar2{
position:absolute;
border:1.5px solid black;
background-color:#F2F2F2;
layer-background-color:#F2F2F2;
font:bold 12px Verdana;
line-height:20px;
}
-->
</style>
本体部
<script language="JavaScript1.2">
var slidemenu_width='160px' //specify width of menu (in pixels)
var slidemenu_reveal='12px' //specify amount that menu should protrude initially
var slidemenu_top='170px' //specify vertical offset of menu on page
var ns4=document.layers?1:0
var ie4=document.all
var ns6=document.getElementById&&!document.all?1:0
if (ie4||ns6)
document.write('<div id="slidemenubar2" style="left:'+((parseInt(slidemenu_width)- parseInt(slidemenu_reveal))*-1)+'px; top:'+slidemenu_top+'; width:'+slidemenu_width+'" onMouseover="pull()" onMouseout="draw()">')
else if (ns4){
document.write('<style>\n#slidemenubar{\nwidth:'+slidemenu_width+';}\n<\/style>\n')
document.write('<layer id="slidemenubar" left=0 top='+slidemenu_top+' width='+slidemenu_width+' onMouseover="pull()" onMouseout="draw()" visibility=hide>')
}
var sitems=new Array()
///////////Edit below/////////////////////////////////
//siteitems[x]=["Item Text", "Optional URL associated with text"]
sitems[0]=["<big><font face='Arial'>Site Menu</font></big>", ""]
sitems[1]=["Link 1", "http://www.google.com/"]
sitems[2]=["Link 2", "http://www.link2.com/"]
sitems[3]=["Link 3", "http://www.link3.com/"]
sitems[4]=["Link 4", "http://www.link4.com/"]
sitems[5]=["Link 5", "http://www.link5.com/"]
sitems[6]=["Link 6", "http://www.link6.com/"]
sitems[7]=["Link 7", "http://www.link7.com/"]
//If you want the links to load in another frame/window, specify name of target (ie: target="_new")
var target=""
/////////////////////////////////////////////////////////
if (ie4||ns4||ns6){
for (i=0;i<sitems.length;i++){
if (sitems[i][1])
document.write('<a href="'+sitems[i][1]+'" target="'+target+'">')
document.write(sitems[i][0])
if (sitems[i][1])
document.write('</a>')
document.write('<br>\n')
}
}
function regenerate(){
window.location.reload()
}
function regenerate2(){
if (ns4){
document.slidemenubar.left=((parseInt(slidemenu_width)-parseInt(slidemenu_reveal))*-1)
document.slidemenubar.visibility="show"
setTimeout("window.onresize=regenerate",400)
}
}
window.onload=regenerate2
rightboundary=0
leftboundary=(parseInt(slidemenu_width)-parseInt(slidemenu_reveal))*-1
if (ie4||ns6){
document.write('</div>')
themenu=(ns6)? document.getElementById("slidemenubar2").style : document.all.slidemenubar2.style
}
else if (ns4){
document.write('</layer>')
themenu=document.layers.slidemenubar
}
function pull(){
if (window.drawit)
clearInterval(drawit)
pullit=setInterval("pullengine()",10)
}
function draw(){
clearInterval(pullit)
drawit=setInterval("drawengine()",10)
}
function pullengine(){
if ((ie4||ns6)&&parseInt(themenu.left)<rightboundary)
themenu.left=parseInt(themenu.left)+10+"px"
else if(ns4&&themenu.left<rightboundary)
themenu.left+=10
else if (window.pullit){
themenu.left=0
clearInterval(pullit)
}
}
function drawengine(){
if ((ie4||ns6)&&parseInt(themenu.left)>leftboundary)
themenu.left=parseInt(themenu.left)-10+"px"
else if(ns4&&themenu.left>leftboundary)
themenu.left-=10
else if (window.drawit){
themenu.left=leftboundary
clearInterval(drawit)
}
}
</script>
于 2012-08-03T08:14:40.660 に答える
1
これは、開始するための非常に基本的な例です。
HTML
<div id="menu">
Hello world!
<div class="tab">></div>
</div>
CSS
#menu {
width: 600px;
height: 300px;
background: #000;
position: absolute;
left: -600px;
top: 50px;
color: #FFF;
}
.tab {
width: 40px;
height: 40px;
background: red;
position: absolute;
right: -40px;
top: 0;
color: #FFF:
}
JQuery
$(document).ready(function() {
$(".tab").toggle(function() {
$('#menu').animate({ left: '0' }, 500);
}, function() {
$('#menu').animate({ left: '-600' }, 500);
});
});
実例 </p>
于 2012-08-03T08:08:09.790 に答える