日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

径向菜单的制作

發布時間:2023/12/2 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 径向菜单的制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最終效果:

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

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>

?


更多專業前端知識,請上 【猿2048】www.mk2048.com

總結

以上是生活随笔為你收集整理的径向菜单的制作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。