仿淘宝购物车数字文本加和减时数字上翻和下翻功能

首先加载jQuery.js插件。
js 文件网上可以下载

然后,一个页面加入购物车里两个商品的文本框

 <table width="100%" border="0" class="tb_c lh20">
 <tr>
 <td>
<input type="text"  maxlength="3" id="goods1" goodsID="1"  value="1" shopCartID="7507"  price="50" class="sdddq"  onkeyup="this.value=this.value.replace(/\D/g,'')"> 
</td>
</tr>
 <tr>
 <td>
<input type="text"  maxlength="3" id="goods2"  goodsID="2"  value="1" shopCartID="7508" price="60"  class="sdddq"  onkeyup="this.value=this.value.replace(/\D/g,'')"> 
</td>
</tr>
</table>

然后文本框的样式
.sdddq {
font-family: “宋体”;
font-size: 12px;
height: 20px;
line-height:20px;
width: 70px;
text-align:center;
padding-bottom:4px;
}

然后在购物车页面里的初始化,就是生成 一个带加和减小按钮的div覆盖在文本框上

<script type="text/javascript">
$(document).ready(function () {
    $(".tb_c  .sdddq").each(function () {
        var id = "#" + $(this).attr("id");//文本框ID
        var shopCartID = $(this).attr("shopCartID");//购物车ID
        var goodsID = $(this).attr("goodsID");//商品ID
        var price = $(this).attr("price");//商品价格
        //var addressState;
        //alert(shopCartID);
        //alert(value);
        inputp.addNew($(id), 1, goodsID, shopCartID, price);
    });
</script>

最重要的一个js文件

var inputp={
		indexInput:0,
		
		addNew:function(obj,stepNum,goodsID,shopCartID,price){
		//alert(obj);
			this.initNew(obj,stepNum,goodsID,shopCartID,price);
			this.indexInput++;
		},
		getDigit:function(val,num){
			var digitNum=0;
			if(num.toString().split(".")[1]){
				digitNum=num.toString().split(".")[1].length;
			}
			 
			if(digitNum>0){
		 		val=val.toFixed(digitNum);
			}
			return val;
			
		},
		initNew:function(obj,stepNum,goodsID,shopCartID,price){
			var iptID="#"+obj.attr("id");
			 //obj=$(iptID);
			
			
			var width=obj.width();
			var height=obj.height();
			var height1=height;

			var _root = this;
		 	width+=3;
			//height+=0; 
			 
			obj.css("border-style","none");
			obj.css("border-width","0px");
		   
			obj.css("width",width-height1*2-2);
			//obj.css("height",height+3+"px");
			obj.css("text-align","center");
			obj.css("outline","none");
			obj.css("vertical-align","middle");
			obj.css("line-height",height+"px");
			
			
			obj.wrap("<div id='"+obj.attr('id')+"T' style='position:relative;overflow:hidden;width:"+width+"px;height:"+height+"px;border: 1px solid #CCC;line-height:20px;'></div>");
			
			obj.before("<div id='"+obj.attr('id')+"l'  onselectstart='return false;' style='-moz-user-select:none;cursor:pointer;text-align:center;width:"+height1+"px;height:"+height1+"px;line-height:"+height1+"px;border-right-width: 1px;border-right-style: solid;border-right-color: #CCC;float:left'>-</div>");
			//obj.after(" <div id='"+obj.attr('id')+"r'  onselectstart='return false;' style='-moz-user-select:none;cursor:pointer;text-align:center;width:"+height1+"px;height:"+height1+"px;line-height:"+height1+"px;border-left-width: 1px;border-left-style: solid;border-left-color: #CCC;float:right'>+</div>");
			obj.before("<div id='"+obj.attr('id')+"r'  onselectstart='return false;' style='-moz-user-select:none;cursor:pointer;text-align:center;width:"+height1+"px;height:"+height1+"px;line-height:"+height1+"px;border-left-width: 1px;border-left-style: solid;border-left-color: #CCC;float:right'>+</div>");
			
			if(obj.val()<=1){
				var jianid="#"+obj.attr('id')+"l";
				$(jianid).text("");
				$(jianid).css("cursor","default");
			}
			
		    if(obj.val()>=200)
			{   
			    var jiaid="#"+obj.attr('id')+"r";
				$(jiaid).text("");
				$(jiaid).css("cursor","default");
			
			}
			
			$("#"+obj.attr('id')+"l").click(function(){
				
				_root.leftDo(obj,stepNum,goodsID,shopCartID,price);
			});
			$("#"+obj.attr('id')+"r").click(function(){
				_root.rightDos(obj,stepNum,goodsID,shopCartID,price);
			});
			
			
		},
		leftDo:function(obj,stepNum,goodsID,shopCartID,price){
			var val=this.formatNum(obj.val());
			val=Math.abs(val);
			val-=stepNum;
			
			val=this.getDigit(val,stepNum);
			 //alert(val);
			if(val<1){
				val=1;
				obj.val(1);
				var jianid="#"+obj.attr('id')+"l";
				$(jianid).text("");
				$(jianid).css("cursor","default");
				
			}else{
			    //$(jianid).text("-");
			    //alert(val);
			    var jianid="#"+obj.attr('id')+"r";
				$(jianid).text("+");
				$(jianid).css("cursor","pointer");
				if(val==1)
				{
				var jianid="#"+obj.attr('id')+"l";
				$(jianid).text("");
				$(jianid).css("cursor","default");
				}
				this.moveDo(obj,val,true,stepNum);
				 var method="updateGoodsSum";
                 gaijia(method,shopCartID,goodsID,val); 
				
			};
			
			var zj=price*(val);
             $('#xj_'+goodsID).text("¥"+zj);
			
			
		},
		rightDos:function(obj,stepNum,goodsID,shopCartID,price){
			
			var val=this.formatNum(obj.val());
			val=Math.abs(val);
			val+=stepNum;
			val=this.getDigit(val,stepNum);
			
			//alert(val);	
			
			 if(val>200)
             {
                val=200;
                obj.val(200);
                //alert(obj.val());
                var jiaid="#"+obj.attr('id')+"r";
				$(jiaid).text("");
				$(jiaid).css("cursor","default");
                 
             }else
             {
                 //n_b=n_b+1;
                var jianid="#"+obj.attr('id')+"l";
				$(jianid).text("-");
				$(jianid).css("cursor","pointer");
                
                  if(val==200)
                 {
                    var jiaid="#"+obj.attr('id')+"r";
				    $(jiaid).text("");
                     $(jiaid).css("cursor","default");
                 }
                 this.moveDo(obj,val,false,stepNum);
                 var method="updateGoodsSum";
                 gaijia(method,shopCartID,goodsID,val); 
                
                 
             }
             
             var zj=price*(val);
             $('#xj_'+goodsID).text("¥"+zj);
			 
		},
		moveDo:function(obj,num,isup,stepNum){
			var startTop=0;
			var endTop=0;
			if(stepNum>=1){
				if(num.toString().split(".")[1]){
					 num=num.toString().split(".")[0];
					 
					 obj.val(num);
				}
			}
			
			
			var num1=num;
			var lens1=num.toString().length;
			var divwidth=parseFloat(obj.css("font-size"))/2;
		 	if(isup){
				//obj.val(num1);
				var isDecimal=false;
			 	for(i=lens1-1;i>=0;i--){
					var s=num.toString();
					var s1=s.substr(i,1);
					var s1num=parseFloat(s1);
					if(s1num!=9||isNaN(s1num)){
						if(isNaN(s1num)){
							//num=parseFloat(s.substr(i-1,lens1-i));
//							num++;
//							num=this.getDigit(num,stepNum);
                            //isDecimal=true;
						}else{
							num=parseFloat(s.substr(i,lens1-i));
							num++;
							break;
						}
						
					}
				}
				//num=this.getDigit(num,stepNum)
				startTop=-20;
				endTop=0;
			}else{
				var isDecimal=false;
			 	for(i=lens1-1;i>=0;i--){
					var s=num.toString();
					var s1=s.substr(i,1);
					var s1num=parseFloat(s1);
				 	if(s1num!=0||isNaN(s1num)){
						
						if(isNaN(s1num)){
							//num=parseFloat(s.substr(i-1,lens1-i));
//							num=this.getDigit(num,stepNum);
							isDecimal=true;
						}else{
							num=parseFloat(s.substr(i,lens1-i));
							break;
						}
					}
				}
				if(isDecimal){
					num=this.getDigit(num,stepNum);
				}
				startTop=20;
				endTop=0;
			}
		 
			
			if($("#"+obj.attr('id')+"Num").length <1){
				//background-color:#fff;
				var numstr=num.toString();
				var widths=divwidth*numstr.length;
				var stri="<div id='"+obj.attr('id')+"sy' style='position:relative;width:0px;height:0px'><div id='"+obj.attr('id')+"Num' style='width:"+widths+"px;z-index:100;position:absolute;height:"+obj.height()+"px;top:"+startTop+"px; line-height:"+obj.height()+"px;font-family: "+obj.css("font-family")+";font-size:"+obj.css("font-size")+";'>";
				for(i=0;i<numstr.length;i++){
					var nums=numstr.substr(i,1);
					if(nums=="."){
						stri+="<div style='float:left;width:"+divwidth+"px;'>&nbsp;";
					}else{
						stri+="<div style='float:left;width:"+divwidth+"px;background-color:#fff'>";
						stri+=nums;
					}
					stri+="</div>";
				}
				stri+="</div></div>";
				 
				$("#"+obj.attr('id')+"T").prepend(stri);
			 	var leftOff=0;
				if(num1.toString().length-num.toString().length>0){
					leftOff=(divwidth*(num1.toString().length-num.toString().length))/2;
				}
				var pz=0;
				if(/msie/.test(navigator.userAgent.toLowerCase())){
					pz=0; 
				}
     			if(/firefox/.test(navigator.userAgent.toLowerCase())){
					pz=-0.6; 
				}
				if(/webkit/.test(navigator.userAgent.toLowerCase())){
					 
				}    
			 	if(/opera/.test(navigator.userAgent.toLowerCase())){
					//pz=1;
				} 
				var leftpx=(obj.width()/2)+obj.height()-($("#"+obj.attr('id')+"Num").width()/2)+1+leftOff+pz;
			 	$("#"+obj.attr('id')+"Num").css("left",leftpx);
				$("#"+obj.attr('id')+"Num").animate({ 
					top:endTop+'px'
					//,opacity:0.4
				},  
				300,  
				function(){  
					$("#"+obj.attr('id')+"sy").remove();
					if(isup){
					     obj.val(num1);   
					}else{
						obj.val(num1);
					}
				});  
			}		
		}
		,
		
		formatNum:function(val){
			var val=parseFloat(val);
			if(isNaN(val)){ 
				val=0;
			}
			return val;	
		}
		
	};

以上代码即可完成加入购物车数字上翻下翻效果,是不是很棒啊!如果不懂的地方可以评论。
演示网站是我做的,如果有不懂的地方可以v我,shisezhe0

演示网址https://www.shisezhe.com/shoppingCart.html
说明:如果直接点上面的网址会因为购物车里没有商品而跳出,请到商品页添加几个商品就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值