扇形导航
2015-11-28 22:40
330 查看
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{background: #fff; margin: 0; }
#wrap{background: #f0f0f0; width: 400px; height: 400px;}
</style>
<script>
window.onload = function(){
var svgSN = "http://www.w3.org/2000/svg";
var oWrap = document.getElementById("wrap");
var oSvg = document.getElementById("svg1");
function createTag(tag, objAttr){
var oTag = document.createElementNS(svgSN, tag);
for(var attr in objAttr){
oTag.setAttribute(attr, objAttr[attr]);
}
return oTag;
}
var outerXY = [{x: 20, y: 200}];
var innerXY = [{x: 130, y: 200}];
var centX = 200;
var centY = 200;
var outerR = 180;
var innerR = 70;
var angle = 360;
var num = 6;
var agSum = 0;
for(var i=0; i<num; i++){
var agSum = 60;
var agNum = 60 * i;
agSum += agNum;
if(i == num-1){
agSum = 360;
}
var outerX = centX - Math.cos(agSum * Math.PI / 180) * outerR;
var outerY = centY - Math.sin(agSum * Math.PI / 180) * outerR;
outerXY.push({x: outerX, y: outerY});
var innerX = centX - Math.cos(agSum * Math.PI / 180) * innerR;
var innerY = centY - Math.sin(agSum * Math.PI / 180) * innerR;
innerXY.push({x: innerX, y: innerY});
}
for(var i=0; i<num; i++){
if( i == outerXY.length-1){
break;
}
var oPath = createTag('path', {'fill': '#fff', 'stroke-width': '30', 'stroke': '#f0f0f0', 'd': 'M' + outerXY[i].x + ' ' + outerXY[i].y + 'A' + outerR + ' ' + outerR + ' 0 0 1 ' + outerXY[i+1].x + ' ' + outerXY[i+1].y + 'L' + innerXY[i+1].x + ' ' + innerXY[i+1].y + 'A' + innerR + ' ' + innerR + ' 0 0 0 ' + innerXY[i].x + ' ' + innerXY[i].y + 'Z'});
oSvg.appendChild(oPath);
}
var oCircle = createTag('circle', {'cx': centX, 'cy': centY, 'r': innerR, 'fill': '#fff'});
oSvg.appendChild(oCircle);
}
</script>
</head>
<body>
<div id="wrap">
<svg id="svg1" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
</svg>
</div>
</body>
</html>
效果展示:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{background: #fff; margin: 0; }
#wrap{background: #f0f0f0; width: 400px; height: 400px;}
</style>
<script>
window.onload = function(){
var svgSN = "http://www.w3.org/2000/svg";
var oWrap = document.getElementById("wrap");
var oSvg = document.getElementById("svg1");
function createTag(tag, objAttr){
var oTag = document.createElementNS(svgSN, tag);
for(var attr in objAttr){
oTag.setAttribute(attr, objAttr[attr]);
}
return oTag;
}
var outerXY = [{x: 20, y: 200}];
var innerXY = [{x: 130, y: 200}];
var centX = 200;
var centY = 200;
var outerR = 180;
var innerR = 70;
var angle = 360;
var num = 6;
var agSum = 0;
for(var i=0; i<num; i++){
var agSum = 60;
var agNum = 60 * i;
agSum += agNum;
if(i == num-1){
agSum = 360;
}
var outerX = centX - Math.cos(agSum * Math.PI / 180) * outerR;
var outerY = centY - Math.sin(agSum * Math.PI / 180) * outerR;
outerXY.push({x: outerX, y: outerY});
var innerX = centX - Math.cos(agSum * Math.PI / 180) * innerR;
var innerY = centY - Math.sin(agSum * Math.PI / 180) * innerR;
innerXY.push({x: innerX, y: innerY});
}
for(var i=0; i<num; i++){
if( i == outerXY.length-1){
break;
}
var oPath = createTag('path', {'fill': '#fff', 'stroke-width': '30', 'stroke': '#f0f0f0', 'd': 'M' + outerXY[i].x + ' ' + outerXY[i].y + 'A' + outerR + ' ' + outerR + ' 0 0 1 ' + outerXY[i+1].x + ' ' + outerXY[i+1].y + 'L' + innerXY[i+1].x + ' ' + innerXY[i+1].y + 'A' + innerR + ' ' + innerR + ' 0 0 0 ' + innerXY[i].x + ' ' + innerXY[i].y + 'Z'});
oSvg.appendChild(oPath);
}
var oCircle = createTag('circle', {'cx': centX, 'cy': centY, 'r': innerR, 'fill': '#fff'});
oSvg.appendChild(oCircle);
}
</script>
</head>
<body>
<div id="wrap">
<svg id="svg1" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
</svg>
</div>
</body>
</html>
效果展示:
相关文章推荐
- android从上推出menu动画样式
- 动态规划部分题目小结
- 基于Ubuntu 14.04的机器学习环境搭建
- C语言打印最长字符串
- BC#64 4.Tree
- maven小白
- leetcode day7
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 http://www.jb51.net/css/383986.html
- 让你轻松进阶高手的十大算法
- iOS Core data多线程并发访问的问题
- com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 ‘xxx' 无效
- 信息安全系统设计基础 实验三 实时系统的移植 20135327郭皓 20135329 李海空
- 工作一周+文章预备
- 成功的背后!(给所有的IT人)
- mysql limit分页查询优化写法
- Java对日期的处理
- logback logback.xml常用配置详解(三) <filter>
- php数据库操作封装类
- java连接oracle数据库的实现代码
- masonry 轻量级自动布局