Adobe Edge Animate –使用css制作菜单

版权声明:

本文版权属于 北京联友天下科技发展有限公司。

转载的时候请注明版权和原文地址。

效果图:

下拉菜单:

使用css制作菜单与用Edge作图工具制作菜单是两个思路两种方法,css的方法纯粹使用代码控制菜单的艺术效果。

一、制作菜单容器

使用矩形工具,创建一个菜单显示区域,命名为menucontainer,转换为原件,命名为menu,完成菜单容器的制作,接下来菜单将显示在这个原件中。

二、制作点击菜单后显示内容的容器

同样使用矩形工具,创建内容显示区域,转换为原件,并且命名为content,完成内容显示容器的制作,点击菜单之后,加载的相关内容将显示在这个原件中。

三、制作菜单的css文件

菜单的css文件可自己design,也可以用已有的css文件,制作完成后,将之命名为menu.css,保存在工程目录下的style文件夹中,以便在Edge中yepnope。

四、加载css文件和Edge commons,定义菜单项目

在stage添加Actions:compositionReady

yepnope({load: "style/menu.css"});          //加载css文件

yepnope({

load: "http://cdn.edgecommons.org/an/1.0.0/js/min/EdgeCommons.js",   //也可以下载到本地加载,加载速度更快

complete: function(){

EC.centerStage(sym);

EC.loadComposition("composition/home/home.html",sym.getSymbol("content"));

//loadPage函数用于加载工程文件或者网页,url参数用于传递地址

var loadPage = function(url){

console.log("loadPage: ",url);

EC.loadComposition(url, sym.getSymbol("content"));

};

// "dataProvider" 定义了菜单项,可根据需要增删项目和修改项目名称及链接地址

var config = {

dataProvider: [

{label: "Home", onClick: function(){loadPage("composition/home/home.html")}},

{label: "Development", onClick: function(){loadPage("composition/development/android.html")},items:[

{label: "Android", onClick: function(){loadPage("composition/development/android.html")}},

{label: "iOS", onClick: function(){loadPage("composition/development/ios.html")}},

]},

{label: "About", onClick: function(){loadPage("composition/about/about.html")},items:[

{label: "Author", onClick: function(){sym.play()}}

]},

]

};

//开始设置菜单,对象即为自定义的容器menu

sym.getSymbol("menu").getVariable("setup")(config);

}

});

五、在menu容器内,添加creationComplete函数

try{

//先将菜单透明度降低,加载菜单时间较长

sym.getSymbolElement().css("opacity","0.3");

//开始设置菜单

sym.setVariable("setup", function(config){

var menuContainer = sym.$("menucontainer");

var tplOuterMenu = ''

+'<div id = "nestedmenu">'

+'   <ul></ul>'

+'</div>';

var tplLevel1_withoutSubItems = '<li><a><div style="padding: 0 20px;">#LABEL#</div></a></li>';

var tplLevel1_withSubItems = ''

+'<li class="has-sub ">'

+'   <a><div style="padding: 0 20px;">#LABEL#</div></a>'

+'   <ul></ul>'

+'</li>';

var tplLevel2 = '<li class="has-sub "><a><div style="padding: 0 20px;">#LABEL#</div></a></li>';

var outerMenu = menuContainer.html(tplOuterMenu);

var ul = $(outerMenu).find("ul");

var level1 = "";

$.each(config.dataProvider, function(index1, item1){

if($.isArray(item1.items)){

//修改菜单中的项目

ul.append(tplLevel1_withSubItems.replace("#LABEL#", item1.label).replace("#URL#", item1.url));

var ul2 = ul.find("li").last().find("ul").first();

$.each(item1.items, function(index2, item2){

ul2.append(tplLevel2.replace("#LABEL#", item2.label).replace("#URL#", item2.url));

if(item2.onClick){

var li2 = ul2.find("li").last();

li2.click(item2.onClick);

li2.css("cursor", "pointer");

}

});

if(item1.onClick){

var li = ul.find("> li").last().find("> a");

li.click(item1.onClick);

li.css("cursor", "pointer");

}

}

else{

//一级菜单项

ul.append(tplLevel1_withoutSubItems.replace("#LABEL#", item1.label).replace("#URL#", item1.url));

if(item1.onClick){

var li = ul.find("li").last();

li.click(item1.onClick);

li.css("cursor", "pointer");

}

}

});

//将菜单的index值调到最大,显示在最顶端,并且将透明度调至1

sym.getSymbolElement().css("z-index", "999");

sym.getSymbolElement().css("opacity", "1");

});

}

catch(err){

console.error(err.toString());

}

六、制作链接工程

可简单制作几个工程文件,当点击不同的菜单项时,链接到不同的页面,我们也可以直接将链接修改为网络页面,如新浪,网易,百度,谷歌等。

效果图:

附:menu.css

#nestedmenu ul,

#nestedmenu li,

#nestedmenu span,

#nestedmenu a {

margin: 0;

padding: 0;

position: relative;

cursor:pointer;}

#nestedmenu {

height: 49px;

background: #141414;

background: -moz-linear-gradient(top, #32323a 0%, #141414 100%);

background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #32323a), color-stop(100%, #141414));

background: -webkit-linear-gradient(top, #32323a 0%, #141414 100%);

background: -o-linear-gradient(top, #32323a 0%, #141414 100%);

background: -ms-linear-gradient(top, #32323a 0%, #141414 100%);

background: linear-gradient(to bottom, #32323a 0%, #141414 100%);

border-bottom: 4px solid #e00f16;}

#nestedmenu:after,

#nestedmenu ul:after {

content: '';

display: block;

clear: both;}

#nestedmenu a {

background: #141414;

background: -moz-linear-gradient(top, #32323a 0%, #141414 100%);

background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #32323a), color-stop(100%, #141414));

background: -webkit-linear-gradient(top, #32323a 0%, #141414 100%);

background: -o-linear-gradient(top, #32323a 0%, #141414 100%);

background: -ms-linear-gradient(top, #32323a 0%, #141414 100%);

background: linear-gradient(to bottom, #32323a 0%, #141414 100%);

color: #ffffff;

display: inline-block;

font-family: Helvetica, Arial, Verdana, sans-serif;

font-size: 12px;

line-height: 49px;

padding: 0;

text-decoration: none;}

#nestedmenu ul {

list-style: none;}

#nestedmenu > ul {

float: left;}

#nestedmenu > ul > li {

float: left;}

#nestedmenu > ul > li:hover:after {

content: '';

display: block;

width: 0;

height: 0;

position: absolute;

left: 50%;

bottom: 0;

border-left: 10px solid transparent;

border-right: 10px solid transparent;

border-bottom: 10px solid #e00f16;

margin-left: -10px;}

#nestedmenu > ul > li.active > a {

box-shadow: inset 0 0 3px #000000;

-moz-box-shadow: inset 0 0 3px #000000;

-webkit-box-shadow: inset 0 0 3px #000000;

background: #070707;

background: -moz-linear-gradient(top, #26262c 0%, #070707 100%);

background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #26262c), color-stop(100%, #070707));

background: -webkit-linear-gradient(top, #26262c 0%, #070707 100%);

background: -o-linear-gradient(top, #26262c 0%, #070707 100%);

background: -ms-linear-gradient(top, #26262c 0%, #070707 100%);

background: linear-gradient(to bottom, #26262c 0%, #070707 100%);}

#nestedmenu > ul > li:hover > a {

background: #070707;

background: -moz-linear-gradient(top, #26262c 0%, #070707 100%);

background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #26262c), color-stop(100%, #070707));

background: -webkit-linear-gradient(top, #26262c 0%, #070707 100%);

background: -o-linear-gradient(top, #26262c 0%, #070707 100%);

background: -ms-linear-gradient(top, #26262c 0%, #070707 100%);

background: linear-gradient(to bottom, #26262c 0%, #070707 100%);

box-shadow: inset 0 0 3px #000000;

-moz-box-shadow: inset 0 0 3px #000000;

-webkit-box-shadow: inset 0 0 3px #000000;}

#nestedmenu .has-sub {

z-index: 1}

#nestedmenu .has-sub:hover > ul {

display: block;}

#nestedmenu .has-sub ul {

display: none;

position: absolute;

width: 200px;

top: 100%;

left: 0;}

#nestedmenu .has-sub ul li {

*margin-bottom: -1px;}

#nestedmenu .has-sub ul li a {

background: #e00f16;

border-bottom: 1px dotted #ec6f73;

font-size: 11px;

display: block;

line-height: 120%;

padding: 10px;}

#nestedmenu .has-sub ul li:hover a {

background: #b00c11;}

#nestedmenu .has-sub .has-sub:hover > ul {

display: block;}

#nestedmenu .has-sub .has-sub ul {

display: none;

position: absolute;

left: 100%;

top: 0;}

#nestedmenu .has-sub .has-sub ul li a {

background: #b00c11;

border-bottom: 1px dotted #d06d70;}

#nestedmenu .has-sub .has-sub ul li a:hover {

background: #80090d;}

原文地址:http://www.cnblogs.com/adobeedge/p/Adobe_Edge_NestedMenu.html

Adobe Edge Animate –使用css制作菜单的更多相关文章

  1. Adobe Edge Animate –可重复使用的个性化按钮制作

    Adobe Edge Animate –可重复使用的个性化按钮制作 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. 效果图: 工程文件中:

  2. Adobe edge animate制作HTML5动画可视化工具(一)

    Edge Animate for mac是Adobe最新出品的制作HTML5动画的可视化工具,简单的可以理解为HTML5版本的Flash Pro.在之后的文章中,我会逐一的介绍这款新的HTML5动画神 ...

  3. Adobe Edge Animate –svg地图交互-精确的边缘及颜色置换

    Adobe Edge Animate –svg地图交互-精确的边缘及颜色置换 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. 上一篇我们说到了使用jquer ...

  4. Adobe Edge Animate –修改Edge Commons Spotlight功能,使之能支持播放中国网站视频

    Adobe Edge Animate –修改Edge Commons Spotlight功能,使之能支持播放中国网站视频 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权 ...

  5. Adobe Edge Animate –Edge Commons强势来袭,Edge团队开发成为现实

    Adobe Edge Animate –Edge Commons强势来袭,Edge团队开发成为现实 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. Edge ...

  6. adobe edge animate 和 adobe animate cc 有啥区别?

    经常有人问这两款软件的区别,每次都要打字好烦,特此总结发帖如下: 一.首先各自软件介绍 ①adobe edge animate 是adobe公司早期推出的一款网页互动工具.通过HTML+CSS+Jav ...

  7. Adobe Edge Animate –解决图形边缘精确检测问题-通过jquery加载svg图片

    Adobe Edge Animate –解决图形边缘精确检测问题-通过jquery加载svg图片 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. 在edge ...

  8. Adobe Edge Animate –获取鼠标位置及跟随鼠标功能实现

    Adobe Edge Animate –获取鼠标位置及跟随鼠标功能实现 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. 在网络上浏览有关Edge相关问题的时 ...

  9. Adobe Edge Animate –弹性的方块-使用tweenmax缓动效果

    Adobe Edge Animate –弹性的方块-使用tweenmax缓动效果 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. 此前有Edge爱好者提出一 ...

随机推荐

  1. XML学习笔记(2)--dom4j操作XML

    1. 介绍(四种方式的比较这部分转载自:http://www.blogjava.net/xcp/archive/2010/02/12/312617.html) 1)DOM(JAXP Crimson解析 ...

  2. poj 1466 Girls and Boys(二分图的最大独立集)

    http://poj.org/problem?id=1466 Girls and Boys Time Limit: 5000MS   Memory Limit: 10000K Total Submis ...

  3. MongoDB Windows 下安装部署

    下面主要是我在Windows上(Win7)安装.运行.安装Windows服务的笔记,以作备忘. 1.下载 下载地址:http://www.mongodb.org/downloads 从其下载页面就可以 ...

  4. [ALGO-3] K好数

    算法训练 K好数   时间限制:1.0s   内存限制:256.0MB 问题描写叙述 假设一个自然数N的K进制表示中随意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数 ...

  5. DuiLib(一)——窗口及消息

    最近看了下开源界面库duilib的代码,写几篇相关的文章.网上已经有好多相关的文章了,我这里只是记录自己的学习过程,写到哪里算哪里,权当自娱自乐. duilib是一轻量级的direcui界面库,所谓d ...

  6. php 算法之切割数组,不用array_chunk(),算法之二,取数组的差值,不用array_diff()

    用php写算法切割数组,不用array_chunk();算法例如以下所看到的. <?php //$array 数组 //$size 每一个数组的个数 //每一个数组元素是否默认键值 functi ...

  7. Codeforces Round #115 B. Plane of Tanks: Pro 水题

    B. Plane of Tanks: Pro Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/17 ...

  8. Codeforces Round #330 (Div. 2) B. Pasha and Phone 容斥定理

    B. Pasha and Phone Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/595/pr ...

  9. Codeforces Gym 100733J Summer Wars 线段树,区间更新,区间求最大值,离散化,区间求并

    Summer WarsTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.a ...

  10. [置顶] How to dump redo log entry?

    1.转储针对特定数据块(4号文件的第10-20号数据块)修改的 redo entry select file#,name,blocks from v$datafile;      FILE# NAME ...