全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

前端入坑纪 27

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

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

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 备注已添加,相对来说还算详细,有兴趣的小伙伴可以尝试实验下。加油吧!!!

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


# Js自定义多选效果  # Js自定义多选框  # 用原生JS实现简单的多选框功能  # AngularJS 单选框及多选框的双向动态绑定  # html+javascript+bootstrap实现层级多选框全层全选和多选功能  # AngularJS单选框及多选框实现双向动态绑定  # JavaScript判断表单中多选框checkbox选中个数的方法  # JS 实现列表与多选框选择附预览动画  # ExtJS 下拉多选框lovcombo  # ExtJS Grid使用SimpleStore、多选框的方法  # 用 Javascript 验证表单(form)中多选框(checkbox)值  # javascript 单选框  # 多选框美化代码  # 兼容ie和firefox版本的js反选 全选 多选框  # JSP+Ajax 添加、删除多选框  # JS面向对象之多选框实现  # 请选择  # 这是  # 如有  # 要有  # 它是  # 用了  # 有兴趣  # 自定义  # 还算  # 刚开始  # 来实现  # 太难  # 完后  # 转成  # 大家多多  # 先给  # 就上  # 多选  # 这真  # 加油吧 


相关文章: Bpmn 2.0的XML文件怎么画流程图  北京的网站制作公司有哪些,哪个视频网站最好?  建站之星导航如何优化提升用户体验?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  html制作网站的步骤有哪些,iapp如何添加网页?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?    正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  如何选购建站域名与空间?自助平台全解析  网站图片在线制作软件,怎么在图片上做链接?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  如何快速搭建高效WAP手机网站吸引移动用户?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  如何打造高效商业网站?建站目的决定转化率  西安专业网站制作公司有哪些,陕西省建行官方网站?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  名字制作网站免费,所有小说网站的名字?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  如何挑选优质建站一级代理提升网站排名?  高端建站三要素:定制模板、企业官网与响应式设计优化  Android自定义控件实现温度旋转按钮效果  北京企业网站设计制作公司,北京铁路集团官方网站?  建站之星3.0如何解决常见操作问题?  广州建站公司哪家好?十大优质服务商推荐  股票网站制作软件,网上股票怎么开户?  建站之星北京办公室:智能建站系统与小程序生成方案解析  魔毅自助建站系统:模板定制与SEO优化一键生成指南  如何在宝塔面板中创建新站点?  如何在IIS7中新建站点?详细步骤解析  网站微信制作软件,如何制作微信链接?  建站之星如何开启自定义404页面避免用户流失?  如何通过VPS建站无需域名直接访问?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  如何在腾讯云服务器上快速搭建个人网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  常州自助建站费用包含哪些项目?  如何用花生壳三步快速搭建专属网站?  建站之星会员如何解锁更多建站功能?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  黑客入侵网站服务器的常见手法有哪些?  ,购物网站怎么盈利呢?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何通过NAT技术实现内网高效建站?  香港服务器选型指南:免备案配置与高效建站方案解析  网站制作需要会哪些技术,建立一个网站要花费多少?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何选择可靠的免备案建站服务器?  如何通过西部数码建站助手快速创建专业网站?  如何高效利用亚马逊云主机搭建企业网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。