这样一套代码就搞定手机端尺寸自适应,gwc.js文

2019-07-18 作者:小鱼儿主页高手论坛   |   浏览(110)

示例一:

本文实例讲述了jquery控制表单输入框显示默认值的方法。分享给大家供大家参考。具体实现方法如下:

什么是rem

小鱼儿主页高手论坛,本文实例讲述了js cookies实现悬浮购物车的方法。分享给大家供大家参考。具体分析如下:

<head>
  <title>测试JS扩展方法</title>
  <script type="text/javascript">
    // 合并多个空白为一个空白 
    String.prototype.ResetBlank = function() {    //对字符串扩展
      var regEx = /s /g; 
      return this.replace(regEx, ' '); 
    }; 

    window.onload = function()
    {
      var str = "你   在他想还好吗?";
      alert(str);
      str = str.ResetBlank();    //这样就能够调用了,跟C#的很像吧!
      alert(str);
    }
  </script>
</head>
<!DOCTYPE html>
<html>
<head>
<script language="javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
 $('.someClass').each(function() {
  var $this = $(this);
  var defaultVal = $this.attr('title');
  $this.focus(function() {
   if ($this.val() === defaultVal) {
    $this.val('');
   }
  });
  $this.blur(function() {
   if ($this.val().length === 0) {
    $this.val(defaultVal);
   }
  });
 });
});
</script>
<style>
input {
 display:block;
 margin-bottom:5px;
}
</style>
</head>
<body>
<input class="someClass" type="text" title="Name" value="Name" />
<input class="someClass" type="text" title="Email Address"
value="Email Address" />
<input class="someClass" type="text" title="Default Value Here"
value="Insert form refill here" />
</body>
</html>

在我看来,rem就是1rem单位就等于html节点fontsize的像素值。所以改变html节点的fontsize是最为关键的一步。根据手机宽度改变相对大小就可以实现自适应了,就不用什么媒体查询那些的。

在 “商品列表展示页”做上 “悬浮的”与“DataList”结合的 “无刷新购物车”,只需计算出总价,不必去单独页面结算。找了些资料修改了一下,整理示例如下:

示例二:

希望本文所述对大家的jQuery程序设计有所帮助。

我们的设计图往往宽度是640或者其他尺寸的,不过我建议是用这个尺寸,以640为基准,以小到大,实现自适应,下面实现的比例为1rem=40px(640宽度)。

gwc.js文件如下:

// 清除两边的空格 
String.prototype.trim = function() { 
  return this.replace(/(^s*)|(s*$)/g, ''); 
}; 
// 合并多个空白为一个空白 
String.prototype.ResetBlank = function() { 
  var regEx = /s /g; 
  return this.replace(regEx, ' '); 
}; 

// 保留数字 
String.prototype.GetNum = function() { 
  var regEx = /[^d]/g; 
  return this.replace(regEx, ''); 
}; 

// 保留中文 
String.prototype.GetCN = function() { 
  var regEx = /[^u4e00-u9fa5uf900-ufa2d]/g; 
  return this.replace(regEx, ''); 
}; 

// String转化为Number 
String.prototype.ToInt = function() { 
  return isNaN(parseInt(this)) ? this.toString() : parseInt(this); 
}; 

// 得到字节长度 
String.prototype.GetLen = function() { 
  var regEx = /^[u4e00-u9fa5uf900-ufa2d] $/; 
  if (regEx.test(this)) { 
    return this.length * 2; 
  } else { 
    var oMatches = this.match(/[x00-xff]/g); 
    var oLength = this.length * 2 - oMatches.length; 
    return oLength; 
  } 
}; 

// 获取文件全名 
String.prototype.GetFileName = function() { 
  var regEx = /^.*/([^/?]*).*$/; 
  return this.replace(regEx, '$1'); 
}; 

// 获取文件扩展名 
String.prototype.GetExtensionName = function() { 
  var regEx = /^.*/[^/]*(.[^.?]*).*$/; 
  return this.replace(regEx, '$1'); 
}; 

//替换所有
String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { 
  if (!RegExp.prototype.isPrototypeOf(reallyDo)) { 
    return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi" : "g")), replaceWith); 
  } else { 
    return this.replace(reallyDo, replaceWith); 
  } 
}; 
//格式化字符串 add By 刘景宁 2010-12-09  
String.Format = function() { 
  if (arguments.length == 0) { 
    return ''; 
  } 

  if (arguments.length == 1) { 
    return arguments[0]; 
  } 

  var reg = /{(d )?}/g; 
  var args = arguments; 
  var result = arguments[0].replace(reg, function($0, $1) { 
    return args[parseInt($1)   1]; 
  }); 
  return result; 
}; 

// 数字补零 
Number.prototype.LenWithZero = function(oCount) { 
  var strText = this.toString(); 
  while (strText.length < oCount) { 
    strText = '0'   strText; 
  } 
  return strText; 
}; 

// Unicode还原 
Number.prototype.ChrW = function() { 
  return String.fromCharCode(this); 
}; 

// 数字数组由小到大排序 
Array.prototype.Min2Max = function() { 
  var oValue; 
  for (var i = 0; i < this.length; i  ) { 
    for (var j = 0; j <= i; j  ) { 
      if (this[i] < this[j]) { 
        oValue = this[i]; 
        this[i] = this[j]; 
        this[j] = oValue; 
      } 
    } 
  } 
  return this; 
}; 

// 数字数组由大到小排序 
Array.prototype.Max2Min = function() { 
  var oValue; 
  for (var i = 0; i < this.length; i  ) { 
    for (var j = 0; j <= i; j  ) { 
      if (this[i] > this[j]) { 
        oValue = this[i]; 
        this[i] = this[j]; 
        this[j] = oValue; 
      } 
    } 
  } 
  return this; 
}; 

// 获得数字数组中最大项 
Array.prototype.GetMax = function() { 
  var oValue = 0; 
  for (var i = 0; i < this.length; i  ) { 
    if (this[i] > oValue) { 
      oValue = this[i]; 
    } 
  } 
  return oValue; 
}; 

// 获得数字数组中最小项 
Array.prototype.GetMin = function() { 
  var oValue = 0; 
  for (var i = 0; i < this.length; i  ) { 
    if (this[i] < oValue) { 
      oValue = this[i]; 
    } 
  } 
  return oValue; 
}; 

// 获取当前时间的中文形式 
Date.prototype.GetCNDate = function() { 
  var oDateText = ''; 
  oDateText  = this.getFullYear().LenWithZero(4)   new Number(24180).ChrW(); 
  oDateText  = this.getMonth().LenWithZero(2)   new Number(26376).ChrW(); 
  oDateText  = this.getDate().LenWithZero(2)   new Number(26085).ChrW(); 
  oDateText  = this.getHours().LenWithZero(2)   new Number(26102).ChrW(); 
  oDateText  = this.getMinutes().LenWithZero(2)   new Number(20998).ChrW(); 
  oDateText  = this.getSeconds().LenWithZero(2)   new Number(31186).ChrW(); 
  oDateText  = new Number(32).ChrW()   new Number(32).ChrW()   new Number(26143).ChrW()   new Number(26399).ChrW()   new String('26085199682010819977222352011620845').substr(this.getDay() * 5, 5).ToInt().ChrW(); 
  return oDateText; 
}; 
//扩展Date格式化 
Date.prototype.Format = function(format) { 
  var o = { 
    "M ": this.getMonth()   1, //月份      
    "d ": this.getDate(), //日      
    "h ": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时      
    "H ": this.getHours(), //小时      
    "m ": this.getMinutes(), //分      
    "s ": this.getSeconds(), //秒      
    "q ": Math.floor((this.getMonth()   3) / 3), //季度      
    "S": this.getMilliseconds() //毫秒      
  }; 
  var week = { 
    "0": "u65e5", 
    "1": "u4e00", 
    "2": "u4e8c", 
    "3": "u4e09", 
    "4": "u56db", 
    "5": "u4e94", 
    "6": "u516d" 
  }; 
  if (/(y )/.test(format)) { 
    format = format.replace(RegExp.$1, (this.getFullYear()   "").substr(4 - RegExp.$1.length)); 
  } 
  if (/(E )/.test(format)) { 
    format = format.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "u661fu671f" : "u5468") : "")   week[this.getDay()   ""]); 
  } 
  for (var k in o) { 
    if (new RegExp("("   k   ")").test(format)) { 
      format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00"   o[k]).substr((""   o[k]).length))); 
    } 
  } 
  return format; 
} 
Date.prototype.Diff = function(interval, objDate) { 
  //若参数不足或 objDate 不是日期类型則回传 undefined 
  if (arguments.length < 2 || objDate.constructor != Date) { return undefined; } 
  switch (interval) { 
    //计算秒差                             
    case 's': return parseInt((objDate - this) / 1000); 
      //计算分差 
    case 'n': return parseInt((objDate - this) / 60000); 
      //计算時差 
    case 'h': return parseInt((objDate - this) / 3600000); 
      //计算日差 
    case 'd': return parseInt((objDate - this) / 86400000); 
      //计算周差 
    case 'w': return parseInt((objDate - this) / (86400000 * 7)); 
      //计算月差 
    case 'm': return (objDate.getMonth()   1)   ((objDate.getFullYear() - this.getFullYear()) * 12) - (this.getMonth()   1); 
      //计算年差 
    case 'y': return objDate.getFullYear() - this.getFullYear(); 
      //输入有误 
    default: return undefined; 
  } 
}; 

//检测是否为空 
Object.prototype.IsNullOrEmpty = function() { 
  var obj = this; 
  var flag = false; 
  if (obj == null || obj == undefined || typeof (obj) == 'undefined' || obj == '') { 
    flag = true; 
  } else if (typeof (obj) == 'string') { 
    obj = obj.trim(); 
    if (obj == '') {//为空 
      flag = true; 
    } else {//不为空 
      obj = obj.toUpperCase(); 
      if (obj == 'NULL' || obj == 'UNDEFINED' || obj == '{}') { 
        flag = true; 
      } 
    } 
  } 
  else { 
    flag = false; 
  } 
  return flag;

您可能感兴趣的文章:

  • IE下支持文本框和密码框placeholder效果的JQuery插件分享
  • JQuery记住用户名和密码的具体实现
  • jquery 实现密码框的显示与隐藏示例代码
  • 密码框显示提示文字jquery示例
  • jQuery判断密码强度实现思路及代码
  • jquery实现输入框实时输入触发事件代码
  • Jquery动态添加输入框的方法
  • jQuery实现的输入框选择时间插件用法实例
  • js与jquery实时监听输入框值的oninput与onpropertychange方法
  • jQuery实现6位数字密码输入框

为什么这样搞?

// JavaScript Document
//计算单个小计
 function EveryCount()
 {
  var index=window.event.srcElement.parentElement.parentElement.rowIndex;
  var a=document.getElementById("test").rows(index).cells(1).innerText;
  var b=document.getElementById("Num" index).value;
  var c=parseFloat(a)*parseFloat(b);
  document.getElementById("test").rows(index).cells(3).innerText=c;
  TotalCount();
  updateOrderCookie();//修改cookies中保存的数量
 }
//计算总计
function TotalCount()
{
  var rowscount=document.getElementById("test").rows.length;
  var sum=0;
  for(var i=1;i<=(parseInt(rowscount)-1);i  )
  {
    var littecount=document.getElementById("test").rows(i).cells(3).innerText;
    sum=parseFloat(sum) parseFloat(littecount);
  }
  document.getElementById("total").innerText=sum;
}
//<--Start--将订单数据写入div
function WriteOrderInDiv()
{
 var gwc="<table id='test' style='border:0px;' ><tr><td width='40%'>商品名称</td><td>单价(¥)</td><td>数量</td><td>小计</td></tr>";
 var OrderString=unescape(ReadOrderForm('24_OrderForm'));//获取cookies中的购物车信息
 //document.write(OrderString);
 var strs= new Array(); //定义一个数组,用于存储购物车里的每一条信息
 var OneOrder="";
 //strs=OrderString.split("|");//用|分割出购物车中的每个产品
 strs=OrderString.split("|");//用|分割出购物车中的每个产品
 for (i=1;i<strs.length ;i   )  
 {
 gwc ="<tr>";
 //OneOrder=strs[i].split("&");
 OneOrder=strs[i].split("&");
 for (a=1;a<OneOrder.length ;a   )  
 {
  if(a!=3)
  {
  gwc ="<td>";
  gwc =OneOrder[a];
  gwc ="</td>";
  }
  else
  {
  gwc ="<td id='dd'>";
  gwc ="<input title='填写想购买的数量,请使用合法数字字符' style='width:10px;' id='Num" i "' type='text' onkeyup='EveryCount();'value='" OneOrder[a] "'>";
  gwc ="</td>";
  }
  //document.getElementById("gwc").innerHTML =OneOrder[a] "<br/>";//每个产品的每个属性分割后字符输出
 }
 gwc ="<td>";
  gwc =OneOrder[2]*OneOrder[3];
  gwc ="</td>";
  gwc ="</tr>";
    //document.getElementById("gwc").innerHTML =strs[i] "<br/>";  //每个产品分割后的字符输出
  }
 gwc ="</table>";
 document.getElementById("Cart").innerHTML=gwc;
 TotalCount();
}
//<--End--将订单数据写入div
//--Start--展开/收缩购物车
function show(id)
{
if (document.getElementById(id).style.display=="") 
{
document.getElementById(id).style.display='none';
}
else{document.getElementById(id).style.display='';
}
}
//<--End--展开/收缩购物车
//<--Start--从cookie中读出订单数据的函数
function ReadOrderForm(name)
{
  var cookieString=document.cookie;
  if (cookieString=="")
  {
    return false;
  }
  else
  {
    var firstChar,lastChar;
    firstChar=cookieString.indexOf(name);
    if(firstChar!=-1)
    {
      firstChar =name.length 1;
      lastChar = cookieString.indexOf(';', firstChar);
      if(lastChar == -1) lastChar=cookieString.length;
      return cookieString.substring(firstChar,lastChar);
    }
    else
    {
      return false;
    }
  }  
}
//-->End
//<--Start--添加商品至购物车的函数,参数(商品编号,商品名称,商品数量,商品单价)
function SetOrderForm(item_no,item_name,item_amount,item_price)
{
  var cookieString=document.cookie;
  if (cookieString.length>=4000)
  {
    alert("您的订单已满n请结束此次订单操作后添加新订单!");
  }
  else if(item_amount<1||item_amount.indexOf('.')!=-1)
  {
    alert("数量输入错误!");
  }
  else
  {
    var mer_list=ReadOrderForm('24_OrderForm');
    var Then = new Date();
    Then.setTime(Then.getTime() 30*60*1000);
    var item_detail="|" item_no "&" item_name "&" item_price "&" item_amount;
    if(mer_list==false)
    {
      document.cookie="24_OrderForm=" escape(item_detail) ";expires="   Then.toGMTString();
      alert("“" item_name "”n" "已经加入您的订单!");
    }
    else
    {
      if (mer_list.indexOf(escape(item_no))!=-1)
      {
        alert('此商品您已添加n请进入订单修改数量!')
      }
      else
      {
        document.cookie="24_OrderForm=" mer_list escape(item_detail) ";expires="   Then.toGMTString();
        alert("“" item_name "”n" "已经加入您的订单!");
      }
    }
  }
}
//-->End
//<--Start--修改数量后,更新cookie的函数
function updateOrderCookie()
{
 var rowscount=document.getElementById("test").rows.length;
  var item_detail="";
  for(var i=1;i<=(parseInt(rowscount)-1);i  )
  {
    item_detail ="|" document.getElementById("test").rows(i).cells(0).innerText "&" document.getElementById("test").rows(i).cells(0).innerText "&" document.getElementById("test").rows(i).cells(1).innerText "&" document.getElementById("Num" i).value;
   // document.write(document.getElementById("test").rows(i).cells(1).innerText);
  }
 var Then = new Date();
 Then.setTime(Then.getTime() 30*60*1000);
 document.cookie="24_OrderForm=" escape(item_detail) ";expires="   Then.toGMTString();
}
//<--End--订单更新
//<--清空购物车
function clearOrder() 
{
var Then = new Date();
document.cookie="24_OrderForm='';expires="   Then.toGMTString();
}
//<--End

以上所述就是本文的全部内容了,希望大家能够喜欢。

这样一套代码就搞定手机端尺寸自适应,不需要媒体查询,而且利用Sass和Less能够给我们节约更多的时间,以及更好的体验。

gwc.html文件如下:

本文由小鱼儿玄机30码发布于小鱼儿主页高手论坛,转载请注明出处:这样一套代码就搞定手机端尺寸自适应,gwc.js文

关键词: 小鱼儿玄机30码