【前端】使用jQuery封装一套UI组件 - 单选框

简介: 目前前端技术发展非常快,各大厂都开源和分享了自家的前端框架,非常多成熟的UI组件供大家选择,很实用也很方便,给开发上节省了不少时间成本,当然少不了学习成本,不过也不会占用太多时间,只要有前端基础的话,原理基本都是通用的,只是写法不一样。因此,除了学习现有的优秀前端之外,最好能自己根据原理封装一套自己的UI组件,目的是为了更好的理解前端知识点以及锻炼编程逻辑
作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More

【单选框特点】

1)单选框,一般为小圆圈 <br/>
2)左边的单选框,右边是文本 <br/>
3)单选框和文本为水平居中 <br/>
4)多个选项,则一般只可选中一个 <br/>
5)选中和不选中状态样式 <br/>

【静态布局】

1)先设置一个父标签div,设置div标签为即是块元素也是行内元素,display:inline-block,以及按钮样式cursor:pointer,高宽度由子标签决定 <br/>
2)然后再设置两个子标签span,左边span标签可设置高宽度inline-block,右边span直接设置文本 <br/>
3)左边span标签设置20px高宽度,以及边框样式border-radius同样设置20px,达到圆形形状

  • 效果

image.png

  • 代码
<div style="display:inline-block;cursor:pointer;">
    <span style="display:inline-block;width:20px;height:20px;border-radius:20px;background:#fff;border:1px solid #ccc;"></span>
    <span>男</span>
</div>

4)从上面效果看,很明显,单选框稍微大了一点,同时框和文本不在同一水平上,体验效果不佳 <br/>
5)重现调整框,设置14px高宽度以及边框值,同时设置垂直居中样式 <br/>

  • 效果

image.png

  • 代码
<div style="display:inline-block;cursor:pointer;">
    <span style="vertical-align:middle;display:inline-block;width:14px;height:14px;border-radius:14px;background:#fff;border:1px solid #ccc;"></span>
    <span style="vertical-align:middle;">男</span>
</div>

【交互设置】

1)设置单选框class值,然后绑定框点击事件 <br/>
2)将style样式放到class里,同时设置多一个选中class <br/>
3)选中class样式,图标和文本均变为蓝色 <br/>
4)选中class样式下的图标class样式添加一个:after选择器 <br/>
5)在选择器中,设置一个空格内容,父级设置绝对定位,选择器里设置相对父级定位,高宽度和边框设置为8px,以及top和left值,以及蓝色背景 <br/>

  • 选中效果

image.png

<style type="text/css">
    .radio-div {
        display: inline-block;
        cursor: pointer;
        margin-right: 10px;
    }

        .radio-div .icon {
            vertical-align: middle;
            display: inline-block;
            width: 14px;
            height: 14px;
            border-radius: 14px;
            background: #fff;
            border: 1px solid #ccc;
        }

        .radio-div .text {
            vertical-align: middle;
        }

    .radio-action-div .icon {
        border: 1px solid #099dff;
        position: relative;
    }

        .radio-action-div .icon::after {
            content: ' ';
            position: absolute;
            top: 3px;
            left: 3px;
            width: 8px;
            height: 8px;
            border-radius: 8px;
            display: inline-block;
            background: #099dff;
        }

    .radio-action-div .text {
        color: #099dff;
    }
</style>
<!--单选框-->
<div class="radio-div radio-action-div" data-value="1">
    <span class="icon"></span>
    <span class="text" style="">男</span>
</div>
<!--单选框-->
<div class="radio-div" data-value="0">
    <span class="icon"></span>
    <span class="text" style="">女</span>
</div>

6)设置js交互,可来回切换,以及data-value选中的值

  • 效果

image.png

  • 代码
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">

    $(function () {

        $(".radio-div").click(function () {
            var value = $(this).attr("data-value");
            $(".radio-div").removeClass('radio-action-div');
            $(this).addClass('radio-action-div');
            console.log(value);
        });
    });
</script>
相关文章
|
29天前
|
前端开发 开发者 UED
前端只是切图仔?来学学给开发人看的UI设计
该文章针对前端开发者介绍了UI设计的基本原则与实践技巧,覆盖了布局、色彩理论、字体选择等方面的知识,并提供了设计工具和资源推荐,帮助开发者提升产品的视觉与交互体验。
|
27天前
|
JSON 缓存 前端开发
个人练习前端技术使用Bootstrap、JQuery、thymeleaf
个人练习前端技术使用Bootstrap、JQuery、thymeleaf
22 2
|
5天前
|
JavaScript 索引
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
32 0
|
16天前
Element-UI组件的使用
【10月更文挑战第1天】
28 0
|
1月前
|
JavaScript
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
其实这个从零有点歧义,因为本质上是要基于`tdesign-vue-next`来进行二次封装为一套广告UI组件库,现在让我们在一起快乐的搭建自己的广告UI库之前,先对以下内容做出共识:
61 0
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
|
1月前
|
前端开发 数据安全/隐私保护
【前端web入门第二天】02 表单-input标签-单选框-多选框
本文介绍了HTML中`&lt;input&gt;`标签的基本使用方法及其应用场景,如登录、注册页面和搜索区域。通过设置`type`属性,可以实现文本框、密码框、单选框、多选框及文件上传等功能。此外,还详细说明了占位文本的使用、单选框的常用属性及多选框的默认选中状态,并提供了示例代码与效果展示。
|
19天前
|
JavaScript 前端开发 API
【前端基础篇】JavaScript之jQuery介绍
【前端基础篇】JavaScript之jQuery介绍
43 0
|
2月前
|
存储 搜索推荐 Java
探索安卓开发中的自定义视图:打造个性化UI组件Java中的异常处理:从基础到高级
【8月更文挑战第29天】在安卓应用的海洋中,一个独特的用户界面(UI)能让应用脱颖而出。自定义视图是实现这一目标的强大工具。本文将通过一个简单的自定义计数器视图示例,展示如何从零开始创建一个具有独特风格和功能的安卓UI组件,并讨论在此过程中涉及的设计原则、性能优化和兼容性问题。准备好让你的应用与众不同了吗?让我们开始吧!
|
2月前
|
JavaScript 前端开发 安全
[译] 在 Vue 组件中分离 UI 和业务逻辑。
[译] 在 Vue 组件中分离 UI 和业务逻辑。
|
2月前
|
开发者 C# Android开发
明白吗?Xamarin与Native的终极对决:究竟哪种开发方式更适合您的项目需求,让我们一探究竟!
【8月更文挑战第31天】随着移动应用开发的普及,开发者面临多种技术选择。本文对比了跨平台解决方案Xamarin与原生开发方式的优势与劣势。Xamarin使用C#进行跨平台开发,代码复用率高,可大幅降低开发成本;但因基于抽象层,可能影响性能。原生开发则充分利用平台特性,提供最佳用户体验,但需维护多套代码库,增加工作量。开发者应根据项目需求、团队技能和预算综合考量,选择最适合的开发方式。
90 0