- JS
//底部跳转功能
function jump(){
$(‘#foot’).on(‘click’,‘.icon-dingdan’,function(){
location.href=‘index.html’
}).on(‘click’,‘.icon-gouwuche’,function(){
location.href=‘gouwuche.html’
}).on(‘click’,‘.icon-yonghu’,function(){
location.href=“user.html”
})
}
//渲染商品信息
function getlist(){
let product=localStorage.getItem(‘shopList’)
let productArr=JSON.parse(product)||[]
let tableHead=`
商品名 图片 价格 数量 总价 删除`
let tableStr=productArr.map(item=>{
return `
${item[0].product} ${item[0].id} ${item[0].id} 删除`
}).join(‘’)
$(‘table’).html(tableHead+tableStr)
}
//删除功能
$(‘table’).on(‘click’,‘.del’,function(){
//拿到id根据id删除
let id=$(this).attr(‘data-index’)
let data=JSON.parse(localStorage.getItem(‘shopList’))
let productIndex=data.findIndex(item=>item.id==id)
data.splice(productIndex,1)
localStorage.setItem(‘shopList’,JSON.stringify(data))
getlist()
})
//增加和减少
$(‘table’).on(‘click’,‘input[name=“sub”]’,function(){
if($(this).next().val()>1){
( t h i s ) . n e x t ( ) . v a l ( (this).next().val( (this).next().val((this).next().val()-1)
let priceAll= ( t h i s ) . n e x t ( ) . v a l ( ) ∗ (this).next().val()* (this).next().val()∗(this).parent().prev().html()
$(this).parent().next().html(priceAll.toFixed(2))
}
total()
}).on(‘click’,‘input[name=“add”]’,function(){
( t h i s ) . p r e v ( ) . v a l ( p a r s e I n t ( (this).prev().val(parseInt( (this).prev().val(parseInt((this).prev().val())+1)
let priceAll= ( t h i s ) . p r e v ( ) . v a l ( ) ∗ (this).prev().val()* (this).prev().val()∗(this).parent().prev().html()
$(this).parent().next().html(priceAll.toFixed(2))
total()
})
//计算总价
function total(){
let sum=0
$(‘.singleTotal’).each((index,item)=>{
sum=sum+Number($(item).html())
})
$(‘.total’).html(‘¥’+sum)
}
total()
getlist()
jump()
- CSS
#main {
width: 100%;
flex: 1;
overflow: auto;
background-color: aquamarine;
}
#main table {
width: 100%;
height: 100%;
}
#main table tr td img {
width: 80px;
height: 80px;
}
#main table tr .fun {
width: 100px;
}
#main table tr .fun input {
vertical-align: top;
width: 20px;
height: 20px;
}
#main .total {
margin-left: 30px;
font-size: 30px;
color: red;
}
/*# sourceMappingURL=gouwuche.css.map */
- 用户界面代码
- HTML
登录 注册
- JS
//底部跳转功能
function jump(){
$(‘#foot’).on(‘click’,‘.icon-dingdan’,function(){
location.href=‘index.html’
}).on(‘click’,‘.icon-gouwuche’,function(){
location.href=‘gouwuche.html’
}).on(‘click’,‘.icon-yonghu’,function(){
location.href=“user.html”
})
}
//渲染注册输入框
$(‘.login’).on(‘click’,function(){
let str=`
`
$(‘.input’).html(str)
login()
})
//渲染登录输入框
$(‘.sigin’).on(‘click’,function(){
let str=`
`
$(‘.input’).html(str)
sigin()
})
//注册功能
function login(){
$(‘.loginInput’).on(‘submit’,function(e){
e.preventDefault()
$.ajax({
url:‘http://127.0.0.1:4000/api/login’,
method:‘get’,
data:{
username:$(‘.loginInput input[name=“name”]’).val(),
password:$(‘.loginInput input[name=“password”]’).val(),
},
success:function(data){
if(data.status==0){
alert(‘注册成功’)
}
}
})
})
}
//登录功能
function sigin(){
$(‘.siginInput’).on(‘submit’,function(e){
e.preventDefault()
console.log($(‘input[name=“name”]’).val());
$.ajax({
url:‘http://127.0.0.1:4000/api/sigin’,
method:‘get’,
data:{
username:$(‘input[name=“name”]’).val(),
password:$(‘input[name=“password”]’).val(),
},
success:function(data){
console.log(data);
if(data.status==0){
//登录成功渲染欢迎界面
alert(‘登录成功’)
let str=`
欢迎${data.data[0].username} 退出`
$(‘#main’).html(str)
//退出功能
siginout()
}
}
})
})
}
//欢迎界面和退出
function siginout(){
$(‘.siginout’).on(‘click’,function(){
let str=`
登录 注册`
$(‘#main’).html(str)
})
}
jump()
- 商品详细代码
- HTML
- JS
function getShop(){
//分割字符串拿到url中的id
let url=location.href
let idArr=url.substring((url.indexOf(‘?’)+1))
let id=idArr.split(‘=’)[1]
console.log(id);
$.ajax({
url:‘http://127.0.0.1:4000/api//list/id’,
method:‘get’,
data:{
id:id
},
success:function(data){
if(data.status==0){
let list=data.data
let productStr=list.map(item=>{
return `
${item.product}
¥${item.id}
立即购买`
}).join(‘’)
$(‘.render’).html(productStr)
}
}
})
}
//回到主界面
$(‘.back’).on(‘click’,function(){
location.href=‘index.html’
})
getShop()
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
Vue
-
什么是MVVM?
-
mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?
-
组件之间的传值?
-
Vue 双向绑定原理
-
描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?
-
虚拟 DOM 实现原理
-
Vue 中 key 值的作用?
-
Vue 的生命周期
-
Vue 组件间通信有哪些方式?
-
vue 中怎么重置 data?
-
组件中写 name 选项有什么作用?
-
Vue 的 nextTick 的原理是什么?
-
Vuex 有哪几种属性?
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
-
什么是MVVM?
-
mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?
-
组件之间的传值?
-
Vue 双向绑定原理
-
描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?
-
虚拟 DOM 实现原理
-
Vue 中 key 值的作用?
-
Vue 的生命周期
-
Vue 组件间通信有哪些方式?
-
vue 中怎么重置 data?
-
组件中写 name 选项有什么作用?
-
Vue 的 nextTick 的原理是什么?
-
Vuex 有哪几种属性?
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算