欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

如何使用CSS3+JS绘制各种各样按钮的示例代码分享

程序员文章站 2022-04-19 11:56:03
...

我认为按钮的绘制分以下三个步骤

  • 第一步,绘制按钮的轮廓

    • 选择合适的html标签,设置轮廓的CSS

/* html代码 */
<a href="#" class="button off"></a>
body{
    background-color: #E6C9B6;
}

/* CSS样式 */
/* 按钮轮廓 */
.button{
    display: block;
    margin:100px auto;
    position: relative;
    width:100px;
    height:40px;
    border-radius: 50px;
    border:1px solid #fff;
    background-color: #E9E4E0;
}

效果图

如何使用CSS3+JS绘制各种各样按钮的示例代码分享

仿IOS-1.jpg

  • 第二步,绘制按钮的默认状态

    • 这一步很重要,由于我们不会再给html文件添加其他的标签,所以我们需要用 :after 伪类对按钮进行CSS渲染

      /* 接在上面继续写 */
      .button:after{
         display: block;
         position: absolute;    //相对按钮的轮廓进行决定定位
         top:2px;
         bottom: 2px;        //即设置top,又设置bottom使元素自动拉伸到最大
         left:2px;           //实际上,按钮的宽度即为容器的高度-(top+bottom)
         width:36px;           //按钮的宽度
         line-height: 36px;    //按钮文字的高度,如果不需要文字,可移除
         text-align: center;
         text-transform: uppercase;
         font-size: 16px;
         background-color: #fff;      //这里的背景颜色是按钮的背景颜色
         border:2px solid;
         transition: all 500ms;        //按钮的动画时长
      }

      实际上,做到这一步之后会发现,在浏览器上的效果没有一点变化,还是之前的那样子,不过不用着急,我们再加一点东西就很明显了

    • 在轮廓内添加小按钮

      .off:after {
         content: 'off';
         border-radius:30px;
         color: #999;
      }

      默认为off状态

如何使用CSS3+JS绘制各种各样按钮的示例代码分享

仿IOS-2.jpg

- 再接着绘制要切换的状态
.on:after {
          content: 'ON';
          border-radius:30px;
          transform: translate(56px, 0);   
          color:transparent;
          background-color:#4BD429;
        }

如何使用CSS3+JS绘制各种各样按钮的示例代码分享

仿IOS-3.jpg

  • 最后一步,写JS代码进行切换

    实际上,在CSS的切换之中,toggleClass是最为方便的。
    但是!!!
    这种切换方法不能切换你要触发的JS事件,
    毕竟,我们画按钮是为了完成某些功能,
    所以我采用的是这种方式,但也许并不是最好的

    var zn=0;
    $('.button').click(function(e){
      if(zn==1){
          $(this).removeClass("on").addClass("off");
          //此处可填要触发的事件
          zn=0;
      }else{
          $(this).removeClass("off").addClass("on");
           //此处可填要触发的事件
          zn=1;
      }
    });

    到此,一个完整的开关按钮就绘制完成了
    感谢你能花3~5分钟的时间阅览我不专业的教程

PS:昨天要绘制一个按钮控制灯泡的开关(实际上就是切换背景图片),然后我四周一看,看到了墙壁上的一个公牛开关,既然是控制电灯的,我就想玩一玩仿真开关,忍着中午的睡意,还真勉强的给绘制出来了
  绘制过程并不复杂,我也就不细说了,贴下效果图和代码,感兴趣的可以自行看一下

如何使用CSS3+JS绘制各种各样按钮的示例代码分享

仿真开关.jpg

如何使用CSS3+JS绘制各种各样按钮的示例代码分享

仿真-2.jpg

PS:我引用了一个初始化的CSS文件,可能需要
box-sizing:border-box;

<style type="text/css">
    /*开关的轮廓*/
    .button{
        display: block;
        position: relative;
        width:160px;
        height:180px;
        border-radius: 5px;
        background-color: #f1f1f1;
    }
    .button2{
        display: block;
        position: relative;
        width:160px;
        height:180px;
        border-radius: 5px;
        background-color: #f1f1f1;
    }
    /*指示灯*/
    .indicate{
        display: block;
        position: absolute;
        margin:60px 0 0 70px;
        width: 20px;
        height: 4px;
        border-radius: 2px;
        background-color: #A8C1C2;
        z-index: 1;
        transition: all 200ms;
    }
    .indicate_yes{
        margin:69px 0 0 70px;
        background-color: #A3D7E7;
    }
    /*开关内部的小按钮*/
    .button:after{
        display: block;
        position: absolute;
        top:40px;
        bottom: 40px;
        left:20px;
        right:20px;
        line-height: 52px;
        border:1px solid #FFF;
        transition: all 200ms;
    }
    .button2:after{
        display: block;
        position: absolute;
        top:49px;
        bottom: 31px;
        left:20px;
        right:20px;
        line-height: 52px;
        border:1px solid #FFF;
        transition: all 200ms;
    }
    /*默认状态的小按钮*/
    .on:after {
      content: '';
      border-radius: 5px;
      /* CSS3的颜色渐变凸显按钮的凸出感 */
      background: linear-gradient(#fff, #f2f2f2 80%,#fff);
      /* CSS3的影音的综合应用,绘制按钮的边缘,给予立体感 */
      box-shadow: 0 1px 0 0 #fff,
          0 3px 0.5px 0 #E7E9EA,
          0 5px 0.5px 0 #DEDFDF,
          0 6px 0.5px 0 #CCCCCD,
          0 7px 0.5px 0 #C5C7C7,
          0 8px 2px 0 #818283,
          0 9px 2px 0 #A7A8A8;
    }
    /*关闭后的小按钮*/
    .off:after {
      content: '';
      border-radius: 5px;
      background: linear-gradient(#fff, #f2f2f2 80%,#fff);
      box-shadow: 0 -1px 0 0 #fff,
          0 -3px 0.5px 0 #E7E9EA,
          0 -5px 0.5px 0 #DEDFDF,
          0 -6px 0.5px 0 #CCCCCD,
          0 -7px 0.5px 0 #C5C7C7,
          0 -8px 2px 0 #818283,
          0 -9px 2px 0 #A7A8A8;
    }
    </style> 

/* JS代码 */
<script type="text/javascript">
$('.button').click(function(e) {
  var toggle = this;
  e.preventDefault();
  $(toggle).toggleClass('on')
         .toggleClass('off')
         .toggleClass("button2");
  //指示灯亮/灭
  $(this).children(".indicate")
    .toggleClass("indicate_yes");
});

//localStorage.clear();
</script>

以上就是如何使用CSS3+JS绘制各种各样按钮的示例代码分享的详细内容,更多请关注其它相关文章!