Metro风格设计主要特点

1.Windows 8 Metro风格设计,实现网站或系统功能的导航

2.纯Javascript实现

3.支持所有IE、360、Chrome等常用浏览器

4.支持圆角、阴影、卡片切换等特效

5.支持卡片的放大、缩小、增加、删除等功能

6.可自定义卡片背景色、背景图片、卡片图片、卡片文字

7.卡片间可任意切换

Metro风格截图

Metro部分算法

卡片显示部分代码:

str='<li data-mode="flip" id="'+itemID+'" data-sizex="1" data-sizey="1" class="stylediv2" style="float:left;left:'+left+'px;top:'+top+'px;width: '+addwidth+'px; height: '+addheight+'px;background-color:'+backColor+';position:absolute;z-index:2; cursor:pointer;border-radius:5px;box-shadow:0 4px 10px rgba(0, 0, 0, .35); behavior: url('+imgBasePath+'js/ie.htc);" onMouseOver="showOption(this)" onMouseOut="hiddeOption(this)">';
str+='<div style="float:left;position:absolute;left:0px;top:0px;width: '+addwidth+'px; height: '+addheight+'px;background-color:orange;"></div>';
str+='<div style="float:left;position:absolute;left:0px;top:0px;width: '+addwidth+'px; height: '+addheight+'px;background-color:red;"></div>';
str+='</li>';

移动单元格JS脚本:

function moveItem(objid,indexList){//判断是否有效移动.var curItem=getCurItem(objid);var curIndex=curItem.index;  for(var i=0;i<indexList.length;i++){var miIndex=parseInt(indexList[i]);if((curIndex+1)==miIndex&&(curIndex+1)%colSize==0){alertInfo("最后一列不能调大!");return false;}if(miIndex>=(rowSize*colSize)){alertInfo("不能超过三行!");return false;}var cellnum=getItemCellNum(miIndex);if(cellnum!=1){alertInfo("被移动单元格目前只支持1个单元格!");return false;}}//判断是否超过所规定显示区域var nullnum=0;var nullIndexArray=new Array();for(var i=0;i<itemArray.length;i++){var tmpItem=itemArray[i];  var objvalue=tmpItem.value;if(itemvalueforspace==objvalue||itemvaluefornull==objvalue){var isexitarea=false;for(var j=0;j<indexList.length;j++){var miIndex=parseInt(indexList[j]);if(i==miIndex){isexitarea=true;break;}}nullnum=nullnum+1;if(!isexitarea){              nullIndexArray.push(i);}}   }if((itemArray.length-nullnum+indexList.length)>(rowSize*colSize)){alertInfo("调大单元格已超出所显示区域!");return false;}//调整移动单元格的队列.for(var i=0;i<indexList.length;i++){var miIndex=parseInt(indexList[i]);var moveItem=itemArray[miIndex];if(moveItem==undefined){//不存在.for(var j=itemArray.length;j<=miIndex;j++){addNullItem("");}moveItem=itemArray[miIndex];}//undefinedvar moveValue=moveItem.value;moveItem.value=curItem.value;        itemArray[miIndex]=moveItem;if(moveValue!=itemvalueforspace){//覆盖单元格中已有对象.//覆盖单元格移到最后 var moveIndex=itemArray.length;        var col=moveIndex%colSize;var row=(moveIndex-col)/colSize;var moveLeft=splitspace+col*(initwidth+splitspace);var moveTop=splitspace+row*(initheight+splitspace);var moveCacheItem=new Object();moveCacheItem.index=moveIndex;moveCacheItem.id=itemPrefix+(moveIndex+1);moveCacheItem.x=moveLeft;moveCacheItem.y=moveTop;moveCacheItem.value=moveValue;itemArray.push(moveCacheItem);var moveObj=document.getElementById(moveValue);moveObj.style.top=moveTop+"px";moveObj.style.left=moveLeft+"px";    }else{//null单元格,需要删除null单元格.//del(moveItem.id);}}//检查空缺单元格,如果存在,就填充null对象.for(var i=itemArray.length-1;i>=(rowSize*colSize);i--){var movitem=itemArray[i];var nulitemIndex=nullIndexArray[nullIndexArray.length-1];var nulitem=itemArray[nulitemIndex];var moveObj=document.getElementById(movitem.value);//console.log("id="+movitem.id+"//value="+movitem.value+"//top="+nulitem.y+"//left="+nulitem.x);moveObj.style.top=parseInt(nulitem.y)+"px";moveObj.style.left=parseInt(nulitem.x)+"px";//console.log("nullid="+nulitem.id+"//moveid="+movitem.id+"//value="+movitem.value+"//top="+nulitem.y+"//left="+nulitem.x);getElement(sortablecurid).removeChild(getElement(nulitem.id));nulitem.value=movitem.value;itemArray[nulitemIndex]=nulitem;itemArray.pop();nullIndexArray.pop();} printItemArray();return true;
}

待续……

纯Javascript实现Windows 8 Metro风格实现相关推荐

  1. 10套华丽的 Windows 8 Metro 风格图标【2000+免费图标】

    Windows 8是由微软最新一代 Windows,具有革命性变化的操作系统.该系统旨在让人们的日常电脑操作更加简单和快捷,为人们提供高效易行的工作环境. Windows 8靓丽的触控界面,全新的浏览 ...

  2. 使用 HTML 控件创建出色的 Metro 风格应用

    原文来自:http://www.devdiv.com/home.php?mod=space&uid=6998&do=blog&id=11370 使用 Windows 8,您可以 ...

  3. 超棒的 Windows 8 Metro UI 风格框架

    这些资源包含:模板,框架,jQuery插件,图标集等.帮助你快速开发Windows 8 Metro UI风格的网站. Frameworks & Templates For Metro-Styl ...

  4. html开始菜单,metro风格的html模板 Windows 8找不到开始菜单怎么办?

    腾讯数码讯(赵阳)8月26日消息,在Windows 8逐步临近的这些日子里,越来越多的网友也通过各种方式下载并提前对其进行了全方位体验.而对于广大网友来说,在Windows 8中由Metro界面取代了 ...

  5. 使用Windows8开发Metro风格应用四

    我们紧接着上篇,开始我们的Metro风格应用开发. -----------------------------------我是华丽的分割线------------------------------- ...

  6. 使用 C++ 创建你的第一个 Metro 风格应用

    WindowsMetro 风格应用专门针对 Windows 8 Consumer Preview 所提供的用户体验量身定制.每个出色的 Metro 风格应用都遵循特定的设计准则,这使得此类应用与传统的 ...

  7. metro 风格 php源码,Win8 Metro UI风格Web素材样式资源合集

    最近微软已经正式发布了Windows8操作系统,Window操作系统的风格已经完全改变成了瓦片状的Metro UI. 对于微软来说这是一个巨大的改变,而且所有微软的平台包括,桌面,平板,移动及其网站都 ...

  8. 企业部署Windows 8 Store 风格应用

    企业部署Windows 8 Store 风格应用 原文:企业部署Windows 8 Store 风格应用 引言 之前我们都知道可以将应用程序发布到Windows 商店中供用户下载使用.如果我们是企业开 ...

  9. 使用Windows8开发Metro风格应用三

    我们紧接着上篇,开始我们的Metro风格应用开发. -----------------------------------我是华丽的分割线------------------------------- ...

最新文章

  1. R语言ggplot2可视化分面图(facet,facet_wrap): 不同分面配置不同的数据范围、自定义每个分面的轴数据格式化形式及数据范围
  2. 一起谈.NET技术,初识Silverlight 4及其架构
  3. CF451E-Devu and Flowers【组合计数,容斥】
  4. mysql api 连接池_SpringBoot-整合HikariCP连接池
  5. NOI数学:大步小步(Baby Step Giant Step,BSGS)算法
  6. phpMyFAQ 3.0.3 中文版
  7. open_flash_chat
  8. java 重定向到某个页面并弹出消息_前端面试100问之浏览器从输入URL到页面展示发生了什么...
  9. 计算机网络基石 —— 集线器
  10. jvm垃圾回收机制_深入理解 JVM 垃圾回收机制及其实现原理
  11. 玩转Kinetis之教你将K60主频超到200MHz以上
  12. java程序加密_对Java代码加密的两种方式,防止反编译
  13. キュリオ / 库利欧
  14. PhoneGap——Accelerometer【加速计】
  15. 地铁口多了一堆小卡片,事情并不简单?
  16. kpi绩效考核流程图_KPI绩效考核的步骤
  17. 【算法】动态规划之计算二项式系数(C++源码)
  18. jQuery的siblings方法
  19. 关于RabbitMQ连接不上None of the specified endpoints were reachable的几个原因
  20. AtCoder Beginner Contest 236 A-D题解

热门文章

  1. Android 自动扫描歌曲,Android扫描本地音乐文件开发案例分享
  2. 考研总分多少能去辽师_辽宁师范大学在职研究生统考分数到达到多少呢统考通过就会被录取吗...
  3. 在linux中 如何创建磁盘配额,如何在Linux系统中配置磁盘配额?
  4. 板子制作_使用Buildroot制作Ubootamp;Kernelamp;Rootfs
  5. java跨站点脚本编制_跨站点请求伪造 跨站点脚本编制 通过框架钓鱼漏洞 | 学步园...
  6. 罗振宇2021跨年演讲1:长大以后有多少责任和烦恼?
  7. JavaScript学习笔记:数组
  8. 前端学习笔记:Bootstrap框架入门
  9. Java案例:编译器生成桥方法
  10. 【BZOJ2959】【codevs2002】长跑,维护双联通分量