본문 바로가기
  • Welcome to Smart-i
  • I can do it!
  • Those who come, be rich.
코딩공부

CSS jQuery를 이용한 펼침 메뉴 예제 다운로드

by ~~~~~하이글로시~~~~~ 2020. 11. 3.

펼침메뉴 예제

CSS jQuery를 이용한 펼침 메뉴

예제보기

다운로드

RockingRollingMenu.zip
0.09MB

menu를 div로 감싸고, 각 항목에는 링크 요소로서의 아이콘과 검색상자를 추가, 제목과 단락이 있는 div가 있다.

<div class="menu">
	<div class="item">
		<a class="link icon_mail"></a>
		<div class="item_content">
			<h2>Contact us</h2>
			<p>
				<a href="#">eMail</a>
				<a href="#">Twitter</a>
				<a href="#">Facebook</a>
			</p>
		</div>
	</div>
	<div class="item">
		<a class="link icon_help"></a>
		<div class="item_content">
			<h2>Help</h2>
			<p>
				<a href="#">FAQ</a>
				<a href="#">Live Support</a>
				<a href="#">Tickets</a>
			</p>
		</div>
	</div>
	<div class="item">
		<a class="link icon_find"></a>
		<div class="item_content">
			<h2>Search</h2>
			<p>
				<input type="text"></input>
				<a href="">Go</a>
			</p>
		</div>
	</div>
	<div class="item">
		<a class="link icon_photos"></a>
		<div class="item_content">
			<h2>Image Gallery</h2>
			<p>
				<a href="#">Categories</a>
				<a href="#">Archives</a>
				<a href="#">Featured</a>
			</p>
		</div>
	</div>
	<div class="item">
		<a class="link icon_home"></a>
		<div class="item_content">
			<h2>Start from here</h2>
			<p>
				<a href="#">Services</a>
				<a href="#">Portfolio</a>
				<a href="#">Pricing</a>
			</p>
		</div>
	</div>
</div>

 

CSS

글꼴과 같은 일반적인 스타일은 다음과 같이 정의한다.

.menu{
    width:800px;
    height:52px;
    position:relative;
    top:200px;
    left:100px;
    font-family: "Trebuchet MS", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: bold;
    text-transform: uppercase;
}

메뉴 안의 항목은 왼쪽으로 확장하고 다른 항목은 밀어 내기 위해 오른쪽에 떠있게 한다.

.item{
    position:relative;
    background-color:#f0f0f0;
    float:right;
    width:52px;
    margin:0px 5px;
    height:52px;
    border:2px solid #ddd;
    -moz-border-radius:30px;
    -webkit-border-radius:30px;
    border-radius:30px;
    -moz-box-shadow:1px 1px 3px #555;
    -webkit-box-shadow:1px 1px 3px #555;
    box-shadow:1px 1px 3px #555;
    cursor:pointer;
    overflow:hidden;
}

다음 아이콘 스타일을 다음과 같이 정의한다.

.link{
    left:2px;
    top:2px;
    position:absolute;
    width:48px;
    height:48px;
}
.icon_home{
    background:transparent url(../images/home.png) no-repeat top left;
}
.icon_mail{
    background:transparent url(../images/mail.png) no-repeat top left;
}
.icon_help{
    background:transparent url(../images/help.png) no-repeat top left;
}
.icon_find{
    background:transparent url(../images/find.png) no-repeat top left;
}
.icon_photos{
    background:transparent url(../images/photos.png) no-repeat top left;
}

다른 요소는 다음과 같이 스타일을 지정한다.

.item_content{
    position:absolute;
    height:52px;
    width:220px;
    overflow:hidden;
    left:56px;
    top:7px;
    background:transparent;
    display:none;
}
.item_content h2{
    color:#aaa;
    text-shadow: 1px 1px 1px #fff;
    background-color:transparent;
    font-size:14px;
}
.item_content a{
    background-color:transparent;
    float:left;
    margin-right:7px;
    margin-top:3px;
    color:#bbb;
    text-shadow: 1px 1px 1px #fff;
    text-decoration:none;
    font-size:12px;
}
.item_content a:hover{
    color:#0b965b;
}
.item_content p {
    background-color:transparent;
    display:none;
}
.item_content p input{
    border:1px solid #ccc;
    padding:1px;
    width:155px;
    float:left;
    margin-right:5px;
}

 

JavaScript

다음 기능을 추가한다.

$('.item').hover(
	function(){
		var $this = $(this);
		expand($this);
	},
	function(){
		var $this = $(this);
		collapse($this);
	}
);
function expand($elem){
	var angle = 0;
	var t = setInterval(function () {
		if(angle == 1440){
			clearInterval(t);
			return;
		}
		angle += 40;
		$('.link',$elem).stop().animate({rotate: '+=-40deg'}, 0);
	},10);
	$elem.stop().animate({width:'268px'}, 1000)
	.find('.item_content').fadeIn(400,function(){
		$(this).find('p').stop(true,true).fadeIn(600);
	});
}
function collapse($elem){
	var angle = 1440;
	var t = setInterval(function () {
		if(angle == 0){
			clearInterval(t);
			return;
		}
		angle -= 40;
		$('.link',$elem).stop().animate({rotate: '+=40deg'}, 0);
	},10);
	$elem.stop().animate({width:'52px'}, 1000)
	.find('.item_content').stop(true,true).fadeOut()
          .find('p').stop(true,true).fadeOut();
}
Quotation : 메리 루 (웹디자이너 겸 개발자)

 

[코딩공부] - CSS fixedNavigation2 예제 다운로드

 

CSS fixedNavigation2 예제 다운로드

FixedNavigation 2 Tutorial 예제보기 다운로드 네비게이션에 필요한 목록 요소는 내부에 링크가 있는 간단한 순서없는 목록이다. 목록은 나중에 javascript에서 참조하기 위해 아이디를 가져온다. jQuery를

smarti.tistory.com

[코딩공부] - CSS fixedNavigation1 예제 다운로드

 

CSS fixedNavigation1 예제 다운로드

FixedNavigation Tutorial 예제보기 다운로드 네비게이션에 필요한 목록 요소는 내부에 링크가 있는 간단한 순서없는 목록이다. 목록은 나중에 JavaScript에서 참조하기 위해 아이디를 가져온다. jQuery를

smarti.tistory.com

[세상살이] - 구글 메시지를 이용, PC에서 문자 보내기

 

구글 메시지를 이용, PC에서 문자 보내기

Google 메세지 이용, 내 PC에서 문자 보내기 휴대폰에서 문자를 보낼 때 작은 화면으로 문자를 보낼때 타자속도도 느리고 오타도 많이 발생한다. 장문의 문자를 보낼때는 특히 더 할텐데 내 책상에

smarti.tistory.com

[디자인공부] - 포토샵으로 모피 문자 만들기

 

포토샵으로 모피 문자 만들기

먼저 페이지 하단에 있는 솜털 브러쉬와 패턴을 다운로드한다. Adobe Photoshop으로 모피 효과 문자 만들기 마치 단단한 재질로 텍스트를 만든 것에 모피털 가죽을 입힌 것 같은 효과의 문자를 만들

smarti.tistory.com

[코딩공부] - 아파치(Apache 2.4.46) 웹서버 설치하기, 윈도우10

 

아파치(Apache 2.4.46) 웹서버 설치하기, 윈도우10

윈도우10 64bit APM Apache 2.4 다운로드 및 설치 윈도우에 IIS를 이용하여 웹서버를 구성할 수도 있지만, 윈도우뿐 아니라 Linux 등 다양한 환경에서 쉽게 운영할 수 있는 APM (Apache+PHP+MySQL) Apache 웹서버..

smarti.tistory.com

 

관련글

 

댓글