HTML+CSS+JS仿京东购物车页面动态效果

简介: HTML+CSS+JS仿京东购物车页面动态效果

1 用到的知识

前面静态页面知识:HTML+CSS仿京东购物车页面静态页面

1.1 js选择器

var  fav=document.getElementsByName("fav");

1.2 循环语句

for(var i in fav){

           

       fav[i].checked=flag;

           

       }

1.3 文档修改语句  

document.getElementById("zongz").innerText=0;

1.4 模块移除属性

div.remove();

2 HTML代码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet" type="text/css" href="css/reset.css"/>
    <link rel="stylesheet" type="text/css" href="css/jd.css"/>
    <link rel="stylesheet" type="text/css" href="icon/iconfont.css"/>
  </head>
  <body>
    <!--导航开始-->
      <div class="nav">
         <div class="warp">
            <ul class="nav_ul1">
              <li><a href=""><i class="iconfont">&#xe6d3;</i> 京东首页</a></li>
              <li><a href="">配送到:北京</a></li>
            </ul>
            <ul class="nav_ul2">
              <li><a href="">洋洋宝贝</a><span>|</span></li>
              <li><a href="">我的订单</a><span>|</span></li>
              <li><a href="">我的京东</a><span>|</span></li>
              <li><a href="">京东会员</a><span>|</span></li>
              <li><a href="">企业采购</a><span>|</span></li>
              <li><a href="">京东手机</a><span>|</span></li>
              <li><a href="">关注京东</a><span>|</span></li>
              <li><a href="">客户服务</a><span>|</span></li>
              <li><a href="">网站导航</a></li>
            </ul>
         </div>
      </div>
    <!--导航结束-->
    <!--搜索框开始-->
      <div class="search">
          <div class="warp">
              <img src="img/logo.jpg" />
              <div class="search_div">
                  <input type="text" class="search_text" />
                  <input type="button" value="搜索"  class="search_but"/>
              </div>
          </div>
      </div>
    <!--搜索框结束-->
    <!--标题开始-->
      <div class="title warp">
          <h3>全部商品</h3>
          <div>
             <span>配送到</span>
            <select>
              <option>昌平区</option>
              <option>顺义区</option>
              <option>大兴区</option>
              <option>朝阳区</option>
              <option>昌平区</option>
            </select>
          </div>
      </div>
    <!--标题结束-->
    <!--显示菜单的开始-->
      <div class="tips warp">
         <ul>
          <li>
            <input type="checkbox" />
            全选
          </li>
          <li>商品</li>
          <li>单价</li>
          <li>数量</li>
          <li>小计</li>
          <li>操作</li>
         </ul>
      </div>
    <!--显示菜单的结束-->
    <!--商品详情展示开始-->
      <div class="info warp">
          <ul>
            <li class="info_1"><input type="checkbox" /> </li>
            <li class="info_2"> <img src="img/img1.jpg" width="80px"/> </li>
            <li class="info_3"><a>【京东超市】desha春秋季儿童休闲服</a></li>
            <li class="info_4"><a>颜色:灰色+粉红</a> </li>
            <li class="info_5">¥182.5</li>
            <li class="info_6">
              <button>-</button>
              <input type="text" name="" id="" value="1" />
              <button class="bot">+</button>
            </li>
            <li class="info_7">¥182.5</li>
            <li>
              <a>删除</a><br />
              <a>已到我的关注</a>
            </li>
          </ul>
      </div>
     <div class="info warp">
          <ul>
            <li class="info_1"><input type="checkbox" /> </li>
            <li class="info_2"> <img src="img/img1.jpg" width="80px"/> </li>
            <li class="info_3"><a>【京东超市】desha春秋季儿童休闲服</a></li>
            <li class="info_4"><a>颜色:灰色+粉红</a> </li>
            <li class="info_5">¥182.5</li>
            <li class="info_6">
              <button>-</button>
              <input type="text" name="" id="" value="1" />
              <button class="bot">+</button>
            </li>
            <li class="info_7">¥182.5</li>
            <li>
              <a>删除</a><br />
              <a>已到我的关注</a>
            </li>
          </ul>
      </div>
       <div class="info warp">
          <ul>
            <li class="info_1"><input type="checkbox" /> </li>
            <li class="info_2"> <img src="img/img1.jpg" width="80px"/> </li>
            <li class="info_3"><a>【京东超市】desha春秋季儿童休闲服</a></li>
            <li class="info_4"><a>颜色:灰色+粉红</a> </li>
            <li class="info_5">¥182.5</li>
            <li class="info_6">
              <button>-</button>
              <input type="text" name="" id="" value="1" />
              <button class="bot">+</button>
            </li>
            <li class="info_7">¥182.5</li>
            <li>
              <a>删除</a><br />
              <a>已到我的关注</a>
            </li>
          </ul>
      </div>
    <!--商品详情展示结束-->
    <!--结算开始-->
     <div class="balance warp">
         <ul class="balance_ul1">
          <li>
            <input type="checkbox" name="" id="" value="" />
            全选
          </li>
          <li><a>删除选中商品</a></li>
          <li><a>移到我的关注</a></li>
          <li><a>清除下柜商品</a></li>
         </ul>
         <ul class="balance_ul2">
           <li>已经选择<span>1</span>件商品</li>
           <li>总价 <span>¥12</span></li>
           <li>
            <button class="butt">去结算</button>
           </li>
         </ul>
     </div>
    <!--结算结束-->
  </body>
</html>

3 CSS代码

3.1 预处理css

body,div,h1,h2,h3,h4,h5,h6,li,ol,ul{margin: 0px; padding: 0px;}
body{text-align: center;font-size:14px;}
a{text-decoration: none;}
li{list-style: none;}

3.2 jd购物车页面的css

.nav{
  height: 30px;
  background-color: #f1f1f1;
}
.warp{
  width: 1000px;
  margin: 0px auto;
}
.nav_ul1,.nav_ul2 li{
  float: left;
}
.nav_ul1 li{
  float: left;
  line-height: 30px;
  margin-right: 20px;
}
.nav_ul1 a,.nav_ul2 a,.nav_ul2 span{
  font-size: 12px;
  color: gray;
}
.nav_ul2{
  float: right;
}
.nav_ul2 li,.nav_ul2 span{
  line-height: 30px;
  margin-left: 15px;
}
.nav a:hover{
  color: red;
}
/*搜索框开始*/
.search{
  margin-top: 20px;
}
.search img{
  /*清除之前的样式*/
  clear: both;
  float: left;
}
.search_div{
  float: right;
  margin-top: 25px;
}
.search_text{
  width: 265px;
  height: 21px;
  border: 3px solid #c91623;
  position: relative;
  left: 4px;
  top: -1px;
}
.search_but{
  width: 51px;
  height: 29px;
  background-color: #c91623;
  border: 0px;
  color: #FFFFFF;
}
/*搜索框结束*/
/*标题开始*/
.title{
  margin-top: 130px;
}
.title h3{
  float: left;
  font-size: 23px;
  color:#c91623 ;
}
.title div{
  float: right;
  font-size: 14px;
  color:gray ;
}
/*标题结束*/
/*显示菜单的开始*/
.tips{
  width: 1000px;
  height: 50px;
  background-color: #f1f1f1;
  margin-top: 165px;
  border: 1px  solid  #e9e9e9;
}
.tips li{
  float: left;
  line-height: 50px;
  font-size: 12px;
  color: gray;
}
.tips li:nth-child(1){width: 90px; border-top: 3px solid #c91623 ;}
.tips li:nth-child(2){margin-left: 80px;}
.tips li:nth-child(3){margin-left: 430px;}
.tips li:nth-child(4){margin-left: 70px;}
.tips li:nth-child(5){margin-left: 110px;}
.tips li:nth-child(6){margin-left: 50px;}
/*显示菜单的结束*/
/*商品详情展示开始*/
.info{
   width: 1000px;
   height: 125px;
   background-color: #fff4e8;
   border: 1px  solid gray;
   margin-top: 30px;
  border-top: 3px solid  gray;
}
.info li{
    float:  left; 
    margin-top: 20px;
}
.info a{
  font-size: 12px;
  color: #333333;
}
.info_1{
  margin-left: 23px;
}
.info_2{
  margin-left: 15px;
  border: 1px  solid gray;
}
.info_3{
    width: 270px;
    height: 20px;
}
.info_4{
   margin-left: 45px;
}
.info_5{
  margin-left: 70px;
}
.info_6{
   margin-left: 40px;
}
.info_6 input{
  width: 30px;
  height: 12px;
  text-align: center;
  position: relative;
  top: -2px;
  left: -5px;
}
.info_6 button{
   width: 30px;
   height: 18px;
}
.bot{
   position: relative;
  left: -10px;
}
.info_7{
   margin-left: 40px;
}
/*商品详情展示结束*/
/*结算模块开始*/
.balance{
  width: 1000px;
  height: 50px;
  border: 1px  solid  gray;
  margin-top: 30px;
}
.balance_ul1,.balance_ul1>li,.balance_ul2>li{
  float: left;
  line-height: 50px;
  margin-left: 14px;
}
.balance_ul2{
  float: right;
}
.butt{
  width: 100px;
  height: 50px;
  background-color: #C91623;
  border: 0px;
  color: #FFFFFF;
  font-size: 20px;
  font-weight: bold;
}
.balance span{
   font-size: 25px;
   color: #C91623 ;
  font-weight: bold;
}
/*结算模块结束*/

4 jd购物车页面的js

//获得所有的多选框对象
var  fav=document.getElementsByName("fav");
//判断是否全选操作
function checkTest1(th){
  var  flag =th.checked;
  for(var i in fav){
    fav[i].checked=flag;
    }
}
//单选决定全选操作
function  checkTest2(){
    var  flag =true;
    for(var i=1;i<fav.length-1;i++){
       if(!fav[i].checked){
        flag=false;
        break;
       }
    }
    //决定框是否勾选
    fav[0].checked=flag;
    fav[fav.length-1].checked=flag;
    //价格是否统计
    //商品的总价格
    var  zong =0;
    //统计是否有勾选的对象
    var num=0;
    //统计商品的数量
    var spNum=0;
    for(var i=1;i<fav.length-1;i++){
         if(fav[i].checked){
            num++;
           //获得ul父节点
           var par=fav[i].parentNode.parentNode;
           //获得指定ul下面的所有的li
           var li= par.getElementsByTagName("li");
           //单个商品的总价格
           var z=li[6].innerText.split("¥")[1];
           //获得所有商品的总价格
           zong+=Number(z);
           document.getElementById("zongz").innerText=zong;
           //获得商品的数量
           var z2=li[5].getElementsByTagName("input");
           var  num2=z2[0].value;
           spNum+=Number(num2);
           //获得商品数量统计的对象
           document.getElementById("snum").innerText=spNum;
         }
    }
    if(num==0){
      document.getElementById("zongz").innerText=0;
      document.getElementById("snum").innerText=0;
    }
}
//控制数量的增加和减少
function  checkTest3(th,sig){
  var pre;
  if(sig=="1"){
  //获得下一个节点
  pre=th.nextElementSibling;  
  if(Number(pre.value)>0){
    //获得节点的value值
  pre.value=Number(pre.value)-1;
  }
  }else {
  //获得上一个节点对象
   pre=th.previousElementSibling;
   //获得节点的value值
  pre.value=Number(pre.value)+1;
  }
  //计算每一个商品总的价格
  //获得每一个商品的单价
  var val=pre.parentNode.previousElementSibling.innerHTML;
  //计算总的价格
  var zong =Number(val)*Number(pre.value);
  //把总的价格赋值给指定的对象
  pre.parentNode.nextElementSibling.innerHTML="¥"+zong;
}
//删除指定的节点
function  checkTest4(th){
  //获得父节点div
  var div=th.parentNode.parentNode.parentNode;
  div.remove();
}

5 效果展示

 

目录
相关文章
|
2月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
伪类:伪类这个叫法源自于它们跟类相似,但实际上并没有类会附加到标记中的标签上。 伪类分为两种(以及新增的伪类选择器): UI伪类:会在HTML元素处于某种状态时(例如:鼠标指针位于连接上),为该元素应用CSS样式。 :hover 结构化伪类:会在标记中存在某种结构上的关系时 例如: 某元素是一组元素中的第一个或最后一个,为该元素应用CSS样式。 :not和:target(CSS3新增的两个特殊的伪类选择器)
177 1
|
6月前
|
移动开发 前端开发 JavaScript
征信报告修改器,征信报告生成器,制作软件无痕修改软件【js+html+css】
本项目为信用评分模拟器教学工具,采用HTML5实现,仅供学习参考。核心功能通过JavaScript构建,包含虚拟数据生成、权重分配及信用因素分析(如还款记录、信用使用率等)。
|
6月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
3月前
|
编解码 前端开发 JavaScript
js react antd 实现页面低分变率和高分变率下字体大小自适用,主要是配置antd
在React中结合Ant Design与媒体查询,通过less变量和响应式断点动态调整`@font-size-base`,实现多分辨率下字体自适应,提升跨设备体验。
155 2
|
6月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
6月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
6月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
11月前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
499 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
10月前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
289 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布

热门文章

最新文章