js实现弧形菜单特效

前一阵子,因为做安卓项目,需要用到一个弧形菜单的效果,园子里有一份是用java代码写的模仿path的(这玩意我都没听过啊),无奈,小弟不才,没有办法应用在我的Jquery-Mobile+PhoneGap的项目中,于是自己写一份来。

其实不难,各位大神见到我的代码请轻拍。

<!-----不会传图片  哎o(︶︿︶)o 唉---->

 var show=false;
//初始化,其实是因为我不会控制转场的时间,导致我的代码在转场前就运行了,所以才写的这么一个函数
function inittool_m (){
$("#mapdisplay").append('<img class="tool_m" onclick="ClearScreen()" src="jquery-mobile/lib/images/map_clear1.png" width="50" height="25" style="position:absolute;right:0px;bottom:0px" >
<img class="tool_m"  src="jquery-mobile/lib/images/map_measureL1.png" width="50" height="25" style="position:absolute;right:0px;bottom:0px;">
<img class="tool_m" "  src="jquery-mobile/lib/images/map_measureP1.png" width="50" height="25" style="position:absolute;right:0px;bottom:0px">
<img class="tool_m"  src="jquery-mobile/lib/images/map_zoomin1.png" width="50" height="25" style="position:absolute;right:0px;bottom:0px">
<img class="tool_m"  src="jquery-mobile/lib/images/map_zoomout1.png" width="50" height="25" style="position:absolute;right:0px;bottom:0px">
<img class="tool_m" src="jquery-mobile/lib/images/geoLoca.png" width="50" height="25" style="position:absolute;right:0px;bottom:0px">')
    }

//显示,按照屏幕右下角,发散
function tool_m_show(){
    //alert("i")
        var r=150;        
    var imgs=$(".tool_m");
    var len=imgs.length;
    var angl=Math.PI/(len-2)/2;
    $.each(imgs,function(index,img){
        if(index==len-1){
            $(img).fadeIn(200);
            return;}
        var i=index;
        var ang=angl*i;
        var p_x=Math.floor(r*Math.sin(ang));
        var p_y=Math.floor(r*Math.cos(ang));
        $(img).animate({
            right:p_x,
            bottom:p_y,            
            },"slow").fadeIn(200);
        })
        show=true;
        }
//收缩
function tool_m_hide(){
            var imgs=$(".tool_m");
            
            $.each(imgs,function(index,img){
            $(img).animate({right:0,bottom:0},"slow").fadeOut(200);
        })    
            show=false;    
            }
//toggle
function toggleTool_m(obj){
    var imgs=$(".tool_m");
    //alert($(imgs[0]).css('right'))
    if(show){
        tool_m_hide();
        }else{
        tool_m_show()
            }
        
        }

 

 

转载于:https://my.oschina.net/tnjin/blog/625550

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Vue2实现弧形菜单栏的步骤: 1. 在Vue项目中安装`vue-radial-menu`组件库。 ```shell npm install vue-radial-menu --save ``` 2. 在需要使用弧形菜单栏的组件中引入`vue-radial-menu`组件。 ```javascript import RadialMenu from 'vue-radial-menu' ``` 3. 在组件的`template`中使用`RadialMenu`组件,并设置相应的属性。 ```html <template> <div> <radial-menu :items="items" :radius="100" :start-angle="0" :end-angle="180" :animation-duration="0.5" :animation-delay="0.1" :animation-type="'ease'" :menu-class="'my-menu'" :item-class="'my-item'" :active-class="'my-active-item'" @select="onSelect" /> </div> </template> ``` 4. 在组件的`script`中定义`items`数组和`onSelect`方法。 ```javascript export default { components: { RadialMenu }, data() { return { items: [ { icon: 'fa fa-home', label: 'Home', action: 'home' }, { icon: 'fa fa-user', label: 'Profile', action: 'profile' }, { icon: 'fa fa-envelope', label: 'Messages', action: 'messages' }, { icon: 'fa fa-cog', label: 'Settings', action: 'settings' } ] } }, methods: { onSelect(action) { console.log('Selected action:', action) } } } ``` 5. 根据需要自定义菜单项的样式和动画效果。 ```css .my-menu { background-color: #fff; border-radius: 50%; box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); } .my-item { background-color: #f00; color: #fff; border-radius: 50%; box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); transition: transform 0.5s ease; } .my-active-item { transform: scale(1.2); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值