国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery實現徑向動畫菜單效果

2019-11-20 12:02:02
字體:
來源:轉載
供稿:網友

最終效果:

在徑向菜單的制作前,首先需要知道幾點知識點:

Math.sin(x)      x 的正玄值。返回值在 -1.0 到 1.0 之間;

Math.cos(x)    x 的余弦值。返回的是 -1.0 到 1.0 之間的數;

這兩個函數中的X 都是指的“弧度”而非“角度”,弧度的計算公式為: 2*PI/360*角度,使用js表示是這樣的:Math.PI/180*度數(1度=180/Math.PI)

如:30° 角度 的弧度 = 2*PI/360*30

如何計算圓上任何點坐標(用于計算出子菜單相對于圓的位置)

以父容器左上角為圓點,建立坐標系

代碼如下:

<!DOCTYPE html><html lang="zh-cn"><head><title>徑向菜單的制作</title><meta charset="utf-8"/><meta name="keywords" content="" /><meta name="description" content="" /><script type="text/javascript" src="jquery.js"></script> <!--此處需引入jquery文件--><style type="text/css">* {margin: 0;padding: 0;}body {background-color: #292a38;font-family: "Microsoft Yahei";}h1 {margin-top: 20px;text-align: center;color: #fff;} .navWrap {position: relative;width: 200px;height: 200px;margin: 50px auto;border: 2px dotted #4e5061;border-radius: 50%;}.navWrap .main-nav {position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);/*分別向左上移動元素對象的50%,保證居中*/width: 40px;height: 40px;line-height: 40px;font-size: 12px;text-align: center;text-decoration: none;color: #fff;border-radius: 3px;text-shadow: 1px 1px 0px #000;background: #15a5f3;cursor: pointer;} .navWrap nav {position: absolute;width: 100%;height: 100%;transform: scale(0);transition: all 0.5s ease-out;opacity: 0;} .navWrap.active nav {transform: scale(1);opacity: 1;}.navWrap nav > a{position: absolute;width: 30px;height: 30px;background: #f44283;text-align: center;line-height: 30px;text-decoration: none;color: #fff;border-radius: 3px;text-shadow: 1px 1px 0px #000;transform: translate(-50%,-50%);} </style></head> <body><h1>徑向動畫菜單效果演示</h1><div class="navWrap"><nav><a>1</a><a>2</a><a>3</a><a>4</a><a>5</a><a>6</a><a>7</a><a>8</a></nav><a class="main-nav">點我</a></div><script type="text/javascript">$(document).ready(function() {var isLocated = false; //防止重復初始化子菜單位置$(".navWrap").on('click', '.main-nav', function(event) {event.preventDefault();var me = $(this);var navWrap = me.closest('.navWrap');var nav = navWrap.find('nav a');if(!navWrap.hasClass('active')&&!isLocated){ //Y=R+Rsinθ//X=R+Rcosθvar r = navWrap.width()/2;var startAngle =0, endAngle=360; //可以通過改變角度,做出各種各樣的徑向菜單//子菜單的夾角var total = nav.length;var gap = (endAngle - startAngle)/total;//角度->弧度var radian = Math.PI/180;/** 計算并確定各個子菜單的最終位置*/$.each(nav,function(index, el) {// 當前子菜單與x軸正向的夾角 θ (角度->弧度)var myAngle = (startAngle + gap*index) * radian; // θvar x = r+r*Math.cos(myAngle),//myAngle為弧度y = r+r*Math.sin(myAngle);// 設置當前子菜單的位置 (left,top) = (x,y)$(this).css({left: x + 'px',top: y + 'px'});});isLocated = true;}navWrap.toggleClass('active');});})</script></body></html>

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 齐齐哈尔市| 武隆县| 泸定县| 黄骅市| 惠安县| 汨罗市| 漠河县| 城口县| 裕民县| 无极县| 手游| 右玉县| 玛曲县| 和田市| 井冈山市| 山东省| 潞城市| 麻江县| 台州市| 沽源县| 平潭县| 雷山县| 泸西县| 沙洋县| 县级市| 长岭县| 边坝县| 土默特左旗| 曲麻莱县| 柳江县| 凌云县| 闸北区| 呈贡县| 水富县| 孝感市| 凭祥市| 绵竹市| 泗洪县| 黄浦区| 临漳县| 搜索|