弧形菜单

css部分

    body,div,p,span{ margin:0; padding:0; font-size:12px; font:12px Arial,‘Hiragino Sans GB‘,‘Microsoft YaHei‘,sans-serif; color:#555;}
    .m-MenuWap{ width:995px; height:931px; position:relative; margin-top:50px;}    .m-MenuWap a{ position:absolute; display:none; background-size:100% 100% !important;}
    .m-MenuWap a.in{ width:180px; height:180px;}
    .m-MenuWap a.out{ width:119px; height:119px;}

引入jquery

<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>

html部分

<div class="m-MenuWap"></div>

js调用

$(".m-MenuWap").circleMenu({
    num:6,
    className:"in",
    imgName:"inImg",
    radius:230,
    size:"180,180",
    href:["http://www.baidu.com","http://www.baidu.com","http://www.baidu.com","http://www.baidu.com","http://www.baidu.com","http://www.baidu.com"]
});

js部分

(function($){
    $.fn.circleMenu = function(o){
        var defs = {
            ground:$(".ground"),
            num:6,
            className:"in",
            imgName:"inImg",
            radius:200,//中心距离
            menuRange:"360",//展开范围
            size:"180,180",//按钮尺寸
            href:[]
        };
        var obj = this;
        var opt = $.fn.extend({},defs,o);
        var style;
        var circular = 2 * Math.PI / 360 * (parseFloat(opt.menuRange) / opt.num);
        var size = opt.size.split(",");
        var leftOr = parseInt(obj.width()/2-size[0]/2),topOr = parseInt(obj.height()/2-size[1]/2);
        for(i=0 ; i<opt.num ; i++){
            var left = opt.radius * Math.cos(i * circular) + leftOr;
            var top = opt.radius * Math.sin(i * circular) + topOr;
            style = ‘background:url(images/‘+opt.imgName+(i+1)+‘.png);left:‘+left+‘px; top:‘+top+‘px; width:‘+size[0]+‘px; height:‘+size[1]+‘px;‘
            obj.append(‘<a href="‘+opt.href[i]+‘" class="‘+opt.className+‘" style="‘+style+‘" data-i="‘+i+‘"></a>‘);

        }
        function animate(){
            var $tar = obj.find("a");
            var _length = $tar.length;
            var _num = -1;
            var isdo = true;
            if(isdo){
                opt.ground.addClass("active")
                setTimeout(function(){showPic()},100)
            }
            function showPic(){
                var c = setInterval(function(){
                    _num = _num + 1;
                    if(_num >_length-1){
                        clearInterval(c)
                    }else{
                        console.log(_num);
                        $tar.eq(_num).fadeIn();
                    }
                },100)
            }
        }
        animate()
    }
})(jQuery);
时间: 2024-10-02 23:53:00

弧形菜单的相关文章

原生js写的一个弧形菜单插件

弧形菜单是一种半弧式或者全弧形菜单,是一种不同于传统横向或者竖向菜单形式的菜单.最近在网上看到好多人写出了这种效果,于是也尝试自己写了一个. 实现方式:原生态js 主要结构: 1.参数合并 1 var defaultPra = { 2 mainMenuId: "ArcMenu",//主菜单id 3 menuBoxId:"menuBox",//菜单包裹id 4 position: "",//弧形菜单 5 customPosition:"0

弧形菜单(Android)

弧形菜单(Android) 前言:公司需求,自己写的一个弧形菜单! 效果: 开发环境:AndroidStudio2.2.1+gradle-2.14.1 涉及知识:1.自定义控件,2.事件分发等 部分代码: public class HomePageMenuLayout extends ViewGroup { private Context context; // 菜单项的文本 private String[] mItemTexts = null; private int StatusHeight

弧形菜单2(动画渐入)Kotlin开发(附带java源码)

弧形菜单2(动画渐入+Kotlin开发) 前言:基于AndroidStudio的采用Kotlin语言开发的动画渐入的弧形菜单...... 效果: 开发环境:AndroidStudio2.2.1+gradle-2.14.1 涉及知识:1.自定义控件,2.事件分发等 部分代码: Activity: class HomepageActivity : AppCompatActivity() { private var homePageMenuLayout: HomePageMenuLayout? = n

Android 实现自定义的卫星式菜单(弧形菜单)View

一.总述 Android 实现卫星式菜单也叫弧形菜单的主要要做的工作如下:1.动画的处理2.自定义ViewGroup来实现卫星式菜单View (1)自定义属性       a. 在attrs.xml中定义属性       b. 在布局中使用自定义属性       c. 在自定义View中读取布局文件中的自定义属性 (2)onMeasure 测量 child 即测量主按钮以及菜单项 (3)onLayout 布局 child 即布局主按钮以及菜单项 (4)设置主按钮的选择动画       a.为菜单

Android 自定义ViewGroup实现弧形菜单

1.直接继承ViewGroup类,onMeasure测量子控件,onLayout第一个子控件放在边角,其他的子控件根据弧度计算其位置来进行layout. 2.动画效果:第一个按钮的旋转动画 RotateAnimation,其他的控件TranslateAnimation和RotateAnimation两个动画,点击ScaleAnimation动画和AlphaAnimation动画 ,设置好延迟的时间间隔就可以看到效果了. import android.content.Context; import

android源码大放送(实战开发必备),免费安卓demo源码,例子大全文件详细列表

免费安卓demo源码,例子大全文件详细列表 本列表源码永久免费下载地址:http://www.jiandaima.com/blog/android-demo 卷 yunpan 的文件夹 PATH 列表 卷序列号为 0000-73EC E:. │ jiandaima.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2016.03.10更新.txt │ ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签

沧海一声笑,移动应用的CRASH原因我找到! --记最新款数字化测试“星云测试“的使用攻略

沧海一声笑,移动应用的CRASH原因我找到! --记最新款数字化测试"星云测试"的使用攻略 世界进步那么快,很多新鲜的点子层出不穷,于是我们创业,我们做最酷的手机应用,做最轰炸的应用推广.不加国际友人,仅咱泱泱大中华14亿人口,智能手机用户目前就已经超过5亿人,并还在继续疯长中!据说到2015年1月,仅我们中国的主要应用商店APP应用累计超过400万个.感觉像我们一样优秀的IT天才们的春天已经到来!就凭咱的脑子和实力,从各种大众脸的App应用中脱颖而出那是必然的!我们肯定是笑到最后的那

C++windows内核编程笔记day07_day08,可视化建菜单、加速键使用、绘图等

可视化操作创建的菜单,加载到窗口. 方法1:注册时指定菜单 wce.lpszMenuName=MAKEINTRESOURCE(IDR_MENUMAIN);//数字形式的资源ID转换为字符串形式的资源 方法2: //创建窗口时加载菜单资源 HMENU menumain= LoadMenu(g_hinstance,MAKEINTRESOURCE(IDR_MENUMAIN)); menumain 传入 CreateWindowEx();//倒数第三个参数 窗口指定小图标: 1.注册时指定 wce.hI

Android菜单menu控件大全

下载:http://www.see-source.com/androidwidget/list.html?type=16 Android-NewPopupMenu使用PopupWindow实现的Popup菜单2015-08-07 更新下载: 0次   浏览 1次 MenuAnimation可以弹出子菜单的Menu2015-08-07 更新下载: 0次   浏览 1次 ExpandableButtonMenu弹出menu菜单的效果2015-08-07 更新下载: 0次   浏览 1次 Circul