仿制淘宝sku点击效果

1.依赖jquery,主要利用二维数组。

2.原生手写。

代码如下:

  1 <!DOCTYPE html>
  2 <html>
  3     <head>
  4         <meta charset="UTF-8">
  5         <title></title>
  6         <style>
  7             input{
  8                 width: 50px;
  9                 height: 35px;
 10                 background: orange;
 11             }
 12         </style>
 13     </head>
 14     <body>
 15         <div class="container">
 16               <div class="row">
 17                 <input type="button" value="红" />
 18                 <input type="button" value="黄" />
 19                 <input type="button" value="蓝"/>
 20                 <input type="button" value="白"/>
 21                 <input type="button" value="军绿"/>
 22
 23             </div>
 24
 25             <div class="row">
 26                 <input type="button" value="xl"/>
 27                 <input type="button" value="xxl"/>
 28                 <input type="button" value="xxxl"/>
 29             </div>
 30
 31             <div class="row">
 32                 <input type="button" value="纯棉"/>
 33                 <input type="button" value="牛仔"/>
 34                 <input type="button" value="针织"/>
 35             </div>
 36
 37             <div class="row">
 38                 <input type="button" value="A"/>
 39                 <input type="button" value="B"/>
 40                 <input type="button" value="C"/>
 41                 <input type="button" value="D"/>
 42                 <input type="button" value="E"/>
 43             </div>
 44           </div>
 45
 46         <div class="box">
 47
 48         </div>
 49
 50
 51         <script src="jquery-3.2.1.min.js"></script>
 52         <script type="text/javascript">
 53
 54             //给按钮添加选中取消标志
 55             $(".container .row input").attr("data-check",1);
 56             //获取矩阵按钮
 57             function getBtn(ele){
 58                 var arr=[];
 59                 var contain = $(ele);
 60                 for(let i=0;i<contain.length;i++){
 61                     arr.push($.makeArray(contain[i].children));
 62                 }
 63                 return arr;
 64             }
 65             //生成二维数组
 66             var data = getBtn(".container .row");
 67
 68
 69             //判断点击的元素是否在二维数组中
 70             function getIndex(ele,map){
 71                 var res=[];
 72                 for(let i=0;i<map.length;i++){
 73                     for(let j=0;j<map[i].length;j++){
 74                         if(map[i][j] == ele){
 75                             res = [i,j];
 76                         }
 77                     }
 78                 }
 79                 return res;
 80             }
 81
 82             //生成默认值
 83             function init(data){
 84                 var arr = [];
 85                 for(let i = 0;i<data.length;i++){
 86                     arr.push([i,0]);
 87                 }
 88                 return arr;
 89             }
 90             var defaultVal = init(data);
 91
 92
 93             //渲染函数
 94             function myRender(s,data){
 95                     var str="";
 96                     for(let i = 0; i<data.length;i++){
 97                         str+=data[s[i][0]][s[i][1]].value+",";
 98                     }
 99                     $(".box").append("<p>"+str+"</p>");
100             }
101
102             //绑定点击事件
103             $(".container .row input").on("click",function(){
104                 var _this=$(this);
105                 if(_this.attr("data-check")==1){
106                     _this.attr("data-check",0);
107                     _this.css("background","gray");
108                     _this.siblings().css("background","orange")
109
110                     //判断在哪行那列
111                     var res = getIndex(_this[0],data);
112
113                     //插入要渲染的数据
114                     defaultVal.splice(res[0],1,res);
115
116                     //渲染数据
117                     myRender(defaultVal,data);
118
119             }else{
120                     _this.attr("data-check",1);
121                     _this.css("background","orange");
122             }
123         })
124
125         </script>
126     </body>
127 </html>

事实上这个东西还有无限扩展,包括利用vue或react进行dom操作,还有各种接口,商品数量的操作等,时间有限,先这些。

时间: 2024-12-15 17:29:57

仿制淘宝sku点击效果的相关文章

jquery仿淘宝规格颜色选择效果

jquery实现的仿淘宝规格颜色选择效果源代码如下 jquery仿淘宝规格颜色选择效果 -收缩HTML代码 运行代码 [如果运行无效果,请自行将源代码保存为html文件运行] <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script> <style> dd,dl{zoom:1;ove

C#编写Windows服务程序 (服务端),client使用 消息队列 实现淘宝 订单全链路效果

需求: 针对 淘宝提出的 订单全链路 产品接入 .http://open.taobao.com/doc/detail.htm?id=102423&qq-pf-to=pcqq.group oms(订单管理系统) 实现  , 完毕后 效果:在千牛工作台 --订单全链路  可看到效果例如以下图   -------------------------------------------------------------------------------------------------------

C#编写Windows服务程序 (服务端),客户端使用 消息队列 实现淘宝 订单全链路效果

需求: 针对 淘宝提出的 订单全链路 产品接入 .http://open.taobao.com/doc/detail.htm?id=102423&qq-pf-to=pcqq.group oms(订单管理系统) 实现  , 完成后 效果:在千牛工作台 --订单全链路  可看到效果如下图   ---------------------------------------------------------------------------------------------------------

仿淘宝页面 点击元素 收起或展开内容 js 兼容各标准浏览器和IE高低版本

HTML代码块如下: <div class="classification"> <div class="cf_commodity only_title">商品分类</div> <div class="cf_list"> <div class="cf_allGoods"> <div class="cf_listATitle"><i&

原生JS实现简单的淘宝放大镜效果

大家经常去淘宝买东西会发现,淘宝上的放大镜效果挺有意思的,这里简单的实现了下,代码中的图片地址 亲们可以自行更换; <!DOCTYPE html> <html> <head> <title>放大镜</title> <meta charset="utf-8" /> <style type="text/css"> *{ margin: 0; padding: 0; } body{ hei

仿淘宝分页按钮效果简单美观易使用的JS分页控件

分页按钮思想: 1.少于9页,全部显示 2.大于9页,1.2页显示,中间页码当前页为中心,前后各留两个页码 附件中有完整例子的压缩包下载.已更新到最新版本 先看效果图: 01输入框焦点效果 02效果 模仿淘宝的分页按钮效果控件kkpager  JS代码: Js代码   var kkpager = { //divID pagerid : 'div_pager', //当前页码 pno : 1, //总页码 total : 1, //总数据条数 totalRecords : 0, //是否显示总页数

iOS手机淘宝加入购物车动画分析

本文转载至 http://www.jianshu.com/p/e77e3ce8ee24 1.最终效果 仿淘宝动画 2.核心代码 _cartAnimView=[[UIImageView alloc] initWithFrame:CGRectMake(_propView.frame.size.height*0.025,_propView.frame.size.height* -0.025 , _propView.frame.size.height*0.2, _propView.frame.size.

iOS 手机淘宝加入购物车动画分析

1.最终效果 仿淘宝动画 2.核心代码 _cartAnimView=[[UIImageView alloc] initWithFrame:CGRectMake(_propView.frame.size.height*0.025,_propView.frame.size.height* -0.025 , _propView.frame.size.height*0.2, _propView.frame.size.height*0.2)]; [self.view addSubview:_cartAni

Android--仿淘宝商品详情(继续拖动查看详情)及标题栏渐变

绪论 最近一直比较忙,也没抽出时间来写博客,也不得不说是自己犯了懒癌,人要是一懒就什么事都不想做了,如果不能坚持下来的话,那么估计就废了,??.最近自己攒了好多东西,接下来的时间我会慢慢都分享出来的.好了废话不多说了,下面我们开始正题: 今天要分享的是淘宝的详情页,之前在淘宝上买东西的时候看到淘宝的详情页效果比较不错,所以今天就来仿一下它的效果吧,可能没有淘宝的好,希望见谅啊. 效果图 先上效果图: 这是淘宝的: ? 我自己做的: ? 怎么样效果还差不多吧?GIF图效果看的不太清楚,见谅. 下面