【问题标题】:Creating radio circular rotating button css and jquery? [closed]创建单选圆形旋转按钮css和jquery? [关闭]
【发布时间】:2015-08-26 21:18:59
【问题描述】:

我创建了这个脚本:你可以在这里看到Live Demo

但我的问题是: 我有 3 个部分,你可以在图片中看到

我希望指针停留并指向接近点击的部分

例如,当鼠标单击 195 度后,将鼠标指针移回右侧部分或将鼠标光标移回左侧部分后鼠标单击 340 度时,在此脚本中,我只需要 3 度 0 , 90和180

和其他度数点击返回指针到这个度数的附近

【问题讨论】:

  • 我无法理解这个问题是什么问题?谁能帮帮我?
  • 问题的问题是没有问题。就一个问题。您应该设置一个 jsBin.com 重新创建问题,发布相关代码,而不是寻求帮助。您可以先使用我在 cmets 中发布的那个。
  • @RokoC.Buljan:我更新了我的问题,这就够了吗?
  • 除了你说你创建了脚本...... :) 我看不到脚本的任何部分处理“如果点击这里 -> 执行此操作”......我的意思是你需要一些点击事件后的那种checkresponse。这非常容易。我的脚本已经为您提供了所需的学位,您只需要一个if 并告诉脚本该做什么。按钮设计也太不切实际了,箭头移动了,但标志留在原地:)
  • 我去年禁止提问,我觉得这个问题是有道理的,选择删除这个问题好吗?

标签: jquery html css


【解决方案1】:

我创造了一些可能对你有帮助的东西......
只是,下次你应该至少提供你最好的尝试以获得一些答案。

LIVE DEMO

 <div class="slideButton">
   <div class="slider"></div>
   <div class="pointer"></div>
   <div class="panel"></div>
 </div>

.slideButton{  
  background-color: hsla(190, 90%, 0%, 1);
  background-image:url(http://i.imgur.com/FTt4CCI.png);
  width:101px;
  height:101px;
  position:relative;
  border-radius:56px;
  overflow:hidden;
  cursor:pointer;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.2);
}
.slider{
  position:absolute;
  background:url(http://i.imgur.com/tQCNIgo.png);
  width:101px;
  height:101px;
          transition: 0s;
  -webkit-transition: 0s;
}
.pointer{
  background:url(http://i.imgur.com/SLzrzp6.png);
  width:101px;
  height:101px;
  position:absolute;
  border-radius:50px;
          transition: 1.2s;
  -webkit-transition: 1.2s;
}
.panel{
  font-family:Arial, Helvetica, sans-serif;
  font-size:9px;
  text-align:center;
  width:26px;
  height:26px;
  top:36px;
  left:36px;
  border-radius:30px;
  position:absolute;
  line-height:28px;
  color:#39a;
  background:#444;
  box-shadow:inset 0 1px 6px rgba(0,0,0,0.8);
  border:1px solid #aaa;
            transition: 1.2s;
  -webkit-transition: 1.2s;
}
.slideButton:hover > .panel{
  color:#6ef;  
  transition: 0.2s;
  background:#445;
  box-shadow:inset 0 1px 6px rgba(0,0,0,0.4);
  text-shadow: 0 0 5px #fff;
}

$('.slideButton').each(function(){

var $el = $(this),
    $sl = $el.find('.slider'),
    $po = $el.find('.pointer'),
    $pa = $el.find('.panel'),
    rad = $el.width()/2 ,
    elP = $el.offset(),
    elPos = { x:elP.left, y:elP.top },
    s = {d:0,p:0},
    s2 = {d:s.d,p:s.p};

function d(e){
    var mPos = {x: e.pageX-elPos.x,y: e.pageY-elPos.y}; 
    var getAtan = Math.atan2(mPos.x-rad, mPos.y-rad);    
    s.d = -getAtan/(Math.PI/180) + 180;
    s.p =  Math.round(s.d*100/360);
    $pa.text(s.p);
}

$el.mousemove(function(e){
  d(e);  
  $el.css({backgroundColor: 'hsla(190, 90%, '+ s.p +'%, 1)'});
  $sl.css({transform:'rotate('+ s.d +'deg)'});
}).click(function(){
  s2 = {d:s.d, p:s.p};
  $po.css({transform:'rotate('+ s.d +'deg)'});
}).mouseleave(function(){
  $el.css({backgroundColor: 'hsla(190, 90%, '+ s2.p +'%, 1)'});
  $sl.css({transition:'0.3s',transform:'rotate('+ s2.d +'deg)'});
  setTimeout(function(){
       $sl.css({transition:'0s'}); 
       $pa.text(s2.p);    
  },210);
});

});

【讨论】:

  • 再次,这让我们看看 SO 上的人们有多么乐于助人! +1
  • 哇你太棒了
  • @Roko 谢谢你的好回答,但你知道我的问题是什么吗?你能帮我编辑我的问题吗?
  • @MinA 我想,但你实际上并没有努力提出你的问题。到目前为止,您完全不清楚您想要什么以及您尝试了什么。这是一个基本示例,但是按钮应该如何执行以及在哪个鼠标/触摸事件中……您根本没有解释。到目前为止,我可以帮助您jsbin.com/IhiJInIT/1/edit,直到您使用一些代码和更多信息编辑您的问题。
  • @RokoC.Buljan,你能回答这个问题吗:stackoverflow.com/questions/20373764/…
猜你喜欢
  • 2012-04-12
  • 2020-10-29
  • 1970-01-01
  • 1970-01-01
  • 2016-11-14
  • 2019-12-24
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
相关资源
最近更新 更多