首页 前端知识 基于js、html、css的一个购物车

基于js、html、css的一个购物车

2024-05-31 19:05:24 前端知识 前端哥 782 619 我要收藏

3.css代码:

body {

background-color: #bcdecf;

}

div.box {

width: 700px;

margin: 50px auto 0;

}

div.box table {

border-collapse: collapse;

width: inherit;

text-align: center;

background-color: #f6f6f6;

}

div.box table td,

div.box th {

border: 1px solid #999;

}

div.box th {

height: 40px;

}

div.box table tbody img {

height: 50px;

}

div.box table tbody tr span {

cursor: default;

}

div.box table tbody tr td:nth-child(2) img {

vertical-align: middle;

}

div.box table tbody tr td:nth-child(4) span {

display: inline-block;

width: 15px;

line-height: 30px;

background-color: #666;

color: #eee;

vertical-align: middle;

}

div.box table tbody tr td:nth-child(4) input {

width: 20px;

height: 20px;

outline: none;

vertical-align: middle;

text-align: center;

}

div.box table tbody tr td:nth-child(6) span {

padding: 4px 10px;

background-color: #cd4646;

color: white;

}

div.box div.bottom {

padding: 15px 0;

margin-top: 15px;

height: 25px;

background-color: white;

display: flex;

justify-content: space-between;

position: relative;

}

div.box div.bottom span.delAll {

cursor: default;

}

div.box div.bottom div.js {

padding: 0 6px;

background-color: #00A5FF;

color: white;

margin-right: 10px;

cursor: default;

}

div.box div.bottom aside div {

display: inline-block;

}

div.box div.bottom aside div span {

position: absolute;

width: 50px;

line-height: 20px;

padding: 0 5px;

background-color: rgba(255, 255, 255, .4);

color: #333;

font-size: 10px;

margin-left: -60px;

margin-top: 20px;

transform: rotate(30deg);

cursor: pointer;

}

div.box div.bottom aside img {

height: 60px;

vertical-align: middle;

}

div.box div.bottom aside {

position: absolute;

background-color: #0a74cb;

width: 100%;

top: -70px;

padding: 5px;

box-sizing: border-box;

display: none;

}

div.box div.bottom aside.on {

display: block;

}

div.box div.bottom aside:after {

position: absolute;

content: “”;

border: 10px solid transparent;

border-top-color: #0a74cb;

bottom: -19px;

right: 280px;

}

div.box div.bottom a,

div.box div.bottom a:visited {

color: #0b97ff;

text-decoration: none;

}

js代码:

function $(exp) { //获取元素 #box

var el;

//对exp匹配以#开头的字符串,且匹配数字、字母、下划线、且以+结尾的字符串,如果存在该匹配,则返回true

if(/^#\w+$/.test(exp)) {

el = document.querySelector(exp);

} else {

el = document.querySelectorAll(exp);

}

return el;

}

var arr = []; /表单的数据,以数组存储/

arr[arr.length] = {

src: ‘1.jpg’,

txt: ‘Casio/卡西欧 EX-TR350’,

price: 5999.88

};

arr[arr.length] = {

src: ‘2.jpg’,

txt: ‘Canon/佳能 PowerShot SX50 HS’,

price: 3888.50

};

arr[arr.length] = {

src: ‘3.jpg’,

txt: ‘Sony/索尼 DSC-WX300’,

price: 1428.50

};

arr[arr.length] = {

src: ‘4.jpg’,

txt: ‘Fujifilm/富士 instax mini 25’,

price: 640.60

};

var temp = $(‘#temp’).innerHTML;

var tbody = $(‘#tbody’);

arr.forEach(function(el) { //把数据插入到HTML中 相当于初始化

tbody.innerHTML += temp.replace(“{src}”, el.src).replace(“{txt}”, el.txt).replace(“{price}”, el.price)

.replace(“{subtotal}”, el.price);

});

var trs = $(‘#tbody tr’);

var box = KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲box');//():调用上面的函数

var aside = $(‘#bottom aside’)[0];

box.onclick = function(ev) {

//利用事件冒泡的原理,把事件添加给父级box

// var oEvent = ev || event; //意思是 ev 成立时 oEvent = event,否则 oEvent = ev

var e = ev || event;

//打印事件

console.log(“即将打印数据”);

console.log(e);

var target = e.target || e.srcElement; //获取当前点击对象

var cls = target.className;

if(cls.indexOf(“check”) != -1) cls = ‘check’;

switch(cls) {

case ‘add’: //添加商品数量

var tr = target.parentNode.parentNode; //找到点击过那一行

var tds = tr.cells;

target.previousSibling.value++; //数量那一栏的数字加一

tds[4].innerText = (tds[2].innerText * target.previousElementSibling.value).toFixed(2);

//修改小计里面的价格

break;

case ‘reduce’: //减少商品数量

//target:接受事件作用的DOM节点对象

var tr = target.parentNode.parentNode; //找到点击过那一行

//tr.cells:返回当前行的所有列

var tds = tr.cells;

/target.nextElementSibling.value:为标签后面的标签的值,target.nextElementSibling:当前标签的下一个兄弟标签/

if(target.nextElementSibling.value != 1) target.nextElementSibling.value–;

//数量那一栏减一 tds[4]:即为数量那一栏 tds[2]:单价 target.nextElementSibling.value:数量

tds[4].innerText = (tds[2].innerText * target.nextElementSibling.value).toFixed(2);

//修改小计里面的价格

break;

case ‘text’: //直接修改数量那一栏input的值

var tr = target.parentNode.parentNode;

var tds = tr.cells;

target.onblur = function() { //失去焦点时执行

// this:表示触发当前事件的对象

tds[4].innerText = (tds[2].innerText * this.value).toFixed(2);

// this.onblur:对离开当前DOM节点触发的事件进行销毁

this.onblur = null; //销毁事件

};

break;

case ‘del’: //删除商品

var tr = target.parentNode.parentNode;

if(confirm(‘你确定要删除吗?’))

tbody.removeChild(tr);

break;

case ‘check’: //复选框选择商品

chk(target); //执行复选框函数

break;

case ‘delAll’: //删除全部商品

if(confirm(‘你确定要删除吗?’))

tbody.innerHTML = ‘’;

break;

case ‘show’: //显示、隐藏商品

aside.classList.toggle(‘on’);

break;

case ‘cancel’:

var index = target.getAttribute(‘data-index’);

trs[index].cells[0].children[0].checked = false;

}

total(); //计算价格

};

var total_all = $(‘#total’);

var num = $(‘#num’);

total();

function total() { //计算价格

var sum = 0,

number = 0;

trs = $(‘tbody tr’);

var str = “”;

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

最后

javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

资料领取方式:点击这里获取前端全套学习资料

css源码pdf

JavaScript知识点
节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

最后

javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

资料领取方式:点击这里获取前端全套学习资料

[外链图片转存中…(img-JdGnwf3P-1711764679550)]

[外链图片转存中…(img-auj3OeAm-1711764679550)]

转载请注明出处或者链接地址:https://www.qianduange.cn//article/10201.html
标签
评论
发布的文章

JSON&yaml和Properties

2024-06-06 10:06:54

JavaScript中的JSON.stringify()

2024-06-06 10:06:52

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!