Web前端设计模式--购物车拖拽的实现...

设计场景:

           Ben负责的书城网用户量不断增加,书城书籍的类型和数量也在不断扩大,这时候就有客户抱怨,说书城网站的购物车不够智能,体现在需点击图书项上的+号小标才能将它加入购物车,而且如果想要查看自己的购物车内容,还需点击页面购物车图标跳转到购物车内容列表去查看,这种跳转的效果相当糟糕,令一些老年客户抱怨不已,因为他们记忆力不佳,经常要返回查看自己买了什么...

 

设计目标:

          实现购物车智能化...

 

解决方案:

         Ben开始着手来解决,初步构思是建立一个可供商品拖拽的购物车...在这样,在原来的商品列表上只要轻轻一拖,就把商品拖进购物车,直观,方便,关键是可见性好...

        1、 Ben先写了三个样式,商品列表的样式,商品列表副本的样式,购物车中商品列表的样式...

            

 商品列表样式和商品列表副本的样式(副本的样式绝对定位)       

01 .leftContent 
02 {
03     width:400px;
04     height:466px
05     margin-left:56px
06     padding:18px;
07     border-top:solid 3px #09acf7;
08     border-bottom:solid 3px #09acf7;
09     border-left:solid 1px #09acf7;
10     border-right:solid 1px #09acf7;
11     float:left
12     margin-right:60px;
13 }
14   
15  .BookItem  /*商品列表的样式,绝对定位*/
16 {
17   width:180px;
18   height:125px
19   float:left; overflow:hidden;
20   margin-right:20px;
21   margin-bottom:20px;
22   cursor:move;
23 }
24    
25  .BookItemMove /*商品列表副本的样式,相对定位*/
26 {
27   width:180px;
28   height:125px
29   float:left; overflow:hidden;
30   margin-right:20px;
31   margin-bottom:20px;
32   position:absolute;
33   background-color:White;
34 }
35   
36 .BookItem dl,.BookItemMove dl 
37 {
38   float:left; width:180px; height:125px; float:left; overflow:hidden;
39 }
40 .BookItem dl dt,.BookItemMove dl dt
41 {
42     float:left; height:120px; width:80px; margin-right:12px;
43 }
44   
45 .BookItem dl dt img,.BookItemMove dl dt img
46
47     width:80px; height:120px;
48 }
49   
50 .BookItem dl dd,.BookItemMove dl dd
51 {
52     height:120pxline-height:1.8em; font-size:12px; text-decoration:underline
53 }

 

 购物车的样式:

01 .rightContent
02 {
03     width:430px;
04     float:left;
05     overflow:hidden;
06     height:auto;
07     min-height:200px;
08     border-top:solid 3px #09acf7;
09     border-bottom:solid 3px #09acf7;
10     border-left:solid 1px #09acf7;
11     border-right:solid 1px #09acf7;
12     padding:18px;
13     font-size:12px;
14  }
15   
16   
17 .BookItemN
18 {
19   width:180px;
20   height:150px
21   float:left; overflow:hidden;
22   margin-right:20px;
23   margin-bottom:20px;
24   cursor:move;
25   border:solid 1px #09acf7;
26 }
27   
28  .BookItemN img /*删除按钮的样式*/
29  {
30    float:right; margin:0; padding:0; cursor:pointer; margin-right:5px; margin-top:5px;
31  }
32    
33    
34 .BookItemN dl 
35 {
36   float:left; width:180px; height:125px; overflow:hidden;padding:0px; margin-left:8px; margin-top:0px;
37 }
38 .BookItemN dl dt
39 {
40     float:left; height:120px; width:80px; margin-right:12px;
41 }
42   
43 .BookItemN dl dt img
44
45     width:80px; height:120px;
46 }
47   
48 .BookItemN dl dd
49 {
50     height:120pxline-height:1.8em; font-size:12px; text-decoration:underline
51 }
52   
53 #container
54 {
55   margin-top:66px;  
56 }

 

下面是脚本,具体思路是在图书栏中的图书项上建立副本,它的绝对定位的,位置与图书项的位置一样,内容也一样,当鼠标点击副本的时候唤醒副本,副本随着鼠标的移动而移动

如果鼠标移入购物车范围内并点击释放水鼠标左键的时候,就会追加副本的内容到购物车,副本回到原来位置;如过不在购物车范围内,则副本返回原来位置,不执行任何操作...

代码如下:

 

最终效果:

 

 

 

 

设计小结:

          实际项目中购物车的数量超过6条是呈列表显示状态,这边就不弄了,代码比较粗糙,主要是介绍一种思路,这是我在做自己项目中的总结,希望有更好的办法...

 

源码下载:(https://files.cnblogs.com/wzh2010/Drag.rar

posted @ 2010-12-02 18:55  rob_2010  阅读(317)  评论(0)    收藏  举报