Js自定义多选框效果的实例代码


Posted in Javascript onJuly 05, 2017

前端入坑纪 27

工作中的一个多选效果,感觉不算太难,就上传来分享下。

Js自定义多选框效果的实例代码

以上图文,纯属测试,如有雷同,请勿当真

HTML 结构

<div id="selexWps" class="seletProds clear">
    <div>
      <span>积分<em>5000</em></span>
      ![](wrap/img/pic.png)
      <p>请选择</p>
    </div>
    <div>
      <span>积分<em>5000</em></span>
      ![](wrap/img/pic.png)
      <p>请选择</p>
    </div>
    <div>
      <span>积分<em>6000</em></span>
      ![](wrap/img/pic.png)
      <p>请选择</p>
    </div>
    <div>
      <span>积分<em>7000</em></span>
      ![](wrap/img/pic.png)
      <p>请选择</p>
    </div>
    <div>
      <span>积分<em>8000</em></span>
      ![](wrap/img/pic.png)
      <p>请选择</p>
    </div>
    <div>
      <span>积分<em>9000</em></span>
      ![](wrap/img/pic.png)
      <p>请选择</p>
    </div>
  </div>
  <div class="endBtnsWrp clear">
    <a class="endBtn" href="javascript:;" rel="external nofollow" rel="external nofollow" >积分:<em id="talval">0</em></a>
    <a class="endBtn" href="javascript:;" rel="external nofollow" rel="external nofollow" >结算</a>
  </div>

这真不晓得什么要特意说明,真要有的话,那底部的结算条,它是fixed 布局,固定在屏幕底部。

CSS 结构

body {
      padding: 0;
      margin: 0;
      background-color: #fff;
      padding-bottom: 60px;
    }

    p {
      padding: 0;
      margin: 0;
    }

    ul,
    li {
      padding: 0;
      margin: 0;
      list-style: none;
    }

    a {
      text-decoration: none;
      color: #525252;
    }

    .fl {
      float: left;
    }

    .fr {
      float: right;
    }

    .clear::after {
      display: block;
      content: "";
      clear: both;
    }

    .seletProds>div {
      float: left;
      position: relative;
      text-align: center;
      border: 2px solid #d8d8d8;
      box-sizing: border-box;
      width: 30%;
      margin: 1.666%;
    }

    .seletProds p {
      font-size: 14px;
      line-height: 37px;
      border-top: 2px solid #d8d8d8;
      text-align: center;
      background-color: #fff;
      color: #525252;
    }

    .seletProds>div img {
      width: 80%;
    }

    .seletProds>div span {
      position: absolute;
      top: 0;
      right: 0;
      background: rgba(255, 92, 92, 0.79);
      padding: 0 3px;
      color: #fff;
      height: 17px;
      font-size: 12px;
    }

    .seletProds>div span em,
    .endBtnsWrp a em {
      font-style: normal;
    }

    .seletProds>div.on p {
      color: #fff;
      background-image: linear-gradient(-90deg, #53a0fe 0%, #5063ed 100%);
    }

    .endBtnsWrp {
      position: fixed;
      bottom: 0;
      left: 0;
      width: 100%;
    }

    .endBtn {
      display: block;
      float: left;
      width: 50%;
      line-height: 50px;
      font-size: 17px;
      color: #fff;
      background: #4a4a4a;
      text-align: center;
    }

    .endBtnsWrp a:first-child {
      background: #646464;
      width: 60%;
    }

    .endBtnsWrp a:last-child {
      background-color: #fcc647;
      width: 40%;
    }

css3的属性用了不少,因为这个项目的出发点就是手机端的。比如渐变背景,伪元素等。每个商品是通过浮动布局来实现的。

JS 结构

var odivs = document.getElementById('selexWps').getElementsByTagName("div");
    var emTal = 0; // 这是总的积分数,初始为0
    for (var i = 0; i < odivs.length; i++) {
       // 先给每个点击的项目添加个自定义属性,以便区别点击前和点击后,刚开始是off
      odivs[i].setAttribute("clickv", "off");
      odivs[i].onclick = function() {
        // 点击时,先获取里面的积分文字,转成数字类型
        var themVal = Number(this.getElementsByTagName("em")[0].innerText);
        // 这里判断未点击的点击后,要处理的操作
        if (this.getAttribute("clickv") == "off") {
          emTal += themVal;
          this.className = "on";
          this.getElementsByTagName("p")[0].innerText = "已选择";
          this.setAttribute("clickv", "on");
        } else {
         // 这里自然是已点击过,再点击的操作
          emTal -= themVal;
          this.className = "";
          this.getElementsByTagName("p")[0].innerText = "请选择";
          this.setAttribute("clickv", "off");
        }
         // 这里自然是把点完后,变更的最终积分数添加到页面的结算里
        document.getElementById("talval").innerText = emTal;
        //  console.log(emTal)
      }
    }

js 备注已添加,相对来说还算详细,有兴趣的小伙伴可以尝试实验下。加油吧!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
通过jQuery源码学习javascript(三)
Dec 27 Javascript
jQuery选择器源码解读(一):Sizzle方法
Mar 31 Javascript
jQuery+json实现动态创建复杂表格table的方法
Oct 25 Javascript
实例解析js中try、catch、finally的执行规则
Feb 24 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
Mar 08 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
Apr 08 jQuery
浅谈Webpack自动化构建实践指南
Dec 18 Javascript
iview table render集成switch开关的实例
Mar 14 Javascript
JavaScript寄生组合式继承原理与用法分析
Jan 11 Javascript
js实现橱窗展示效果
Jan 11 Javascript
原生小程序封装跑马灯效果
Oct 21 Javascript
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
使用 jQuery 实现表单验证功能
Jul 05 #jQuery
详解angularJS自定义指令间的相互交互
Jul 05 #Javascript
利用canvas实现的加载动画效果实例代码
Jul 05 #Javascript
AngularJS使用ocLazyLoad实现js延迟加载
Jul 05 #Javascript
vue一步步实现alert功能
Jul 05 #Javascript
详解vue.js移动端导航navigationbar的封装
Jul 05 #Javascript
JS实现移动端按首字母检索城市列表附源码下载
Jul 05 #Javascript
You might like
虫族 Zerg 魔法科技
2020/03/14 星际争霸
Php output buffering缓存及程序缓存深入解析
2013/07/15 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
[JS]点出统计器
2020/10/11 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
vue-router单页面路由
2017/06/17 Javascript
React-Native中禁用Navigator手势返回的示例代码
2017/09/09 Javascript
详解AngularJS 过滤器的使用
2018/06/02 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
python使用htmllib分析网页内容的方法
2015/05/08 Python
python 将md5转为16字节的方法
2018/05/29 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
Python字节单位转换实例
2019/12/05 Python
如何在sublime编辑器中安装python
2020/05/20 Python
keras打印loss对权重的导数方式
2020/06/10 Python
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
自学考试自我鉴定范文
2013/09/26 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
财务会计岗位职责
2015/02/03 职场文书
幼儿园三八妇女节活动总结
2015/02/06 职场文书
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript