Web前端知识技术整理(JS、Html、CSS简单应用)

一、Checkbox多选框全部选中或取消:

不准确的代码:

135473701ba64d86b5b73a692a8e2f58.png

Jquery1.6以前可以用.attr()方法,jquery1.6以后用.prop()方法

 

因为在1.6之前的所有版本中都使用一个方法(.attr())来处理attributes和properties。但是老的.attr()方法有一些bug,很难维护。jQuery1.6.1对Attributes模块进行了更新,移除了attributes和properties之间模棱两可的东西,

 

在不确定jquery版本的情况下可以用以下代码,对需要的选项click()方法。

6eb6e68ef6db4f72bc1daf42ecb6dd55.png

 

 

 

二、鼠标滑过 :hover

在<a>标签上,鼠标滑过用:hover很正常,但是在<span>,<div>等其他标签时用:hover

有一个前提是:在html文件中添加<!DOCTYPE html >标签才能起作用:

注:在CSS1中此伪类仅可用于a对象。且对于无href属性(特性)的a对象,此伪类不发生作

用。在CSS2以后此伪类可以应用于任何对象

c3c0c3507e1f403994daa99b7db58fe7.png

 

 

三、在IE浏览器里有一种现象,就是鼠标点击的地方会出现虚线,如下

38144efe6ab641a181384727f4faa7fc.png

解决的办法是加上一个css样式:

 

54db3bc6a13e4a65996e7c118a6b4658.png

 

四、input的绚丽效果:

1、内部发光效果

f67b426e83b64a47b59d2a121a90eed8.png

2、外部发光效果

836262954eab4f0b964f284ffb6cf341.png

3、阴影效果

ae9072cc291f482c8e46f9330614731b.png

 

五、java里的时间类型通过json传到前台用js接收处理,可以用一下方法:

 

d1a9d647402a4f93a7b060c1818d3856.png

 

六、前台的js里定义的数组,通过ajax请求传到后台,后台也用特殊的方法(getParameterValues)获取,如下:

 

109f8b048a864af8b07a4179056d9d0b.png

 

七、在IE浏览器里点击input上传文件

<input type=”file” id=”inputbtn”/>这个标签,鼠标必须点击到这个标签才能起作用,如果是用$(“#inputbtn”).click();这种方法是不能用的,这是IE的一种安全机制,以下是解决方案的例子:

 

5833d80ec7f0407dbfe2f9173e898854.png

 

八、一些背景图大小不合适时可以通过background-size这个属性控制背景图片的大小,如图:

 

a9a895503f244dfd95611f967802d08a.png

九、锚点定位:

2975655fdfce40819b0ba365a5c1ef2c.png

 

十、<canvas> 标签定义图形,比如图表和其他图像。

我们在调整画布大小时,希望画布中的图形保持不变,只是改变画布本身的大小。在Canvas元素的内部存在一个名为2d渲染环境(2d redering context)的对象,所以,通过Css设置画布尺寸会引起奇怪的效果。

解决方案:

通过Html设置画布大小。可以直接在Html页面上设置Canvas元素的大小:

<canvasid="testCanvas" width="200"height="100"></canvas>

也可以通过js设置画布大小:

varcanvas = document.getElementById("testCanvas");

canvas.width= 200;

canvas.height= 100;

第二种方式可以动态设置大小

 

 

 

十一、页面分为左右模式

没有使用框架的情况下,页面一般分为左右样式,但是如果按百分比来确定左右的

宽度,会出现很多问题,最常见的就是右边的被挤的换行了,还有就是,中间和屏幕的

左右两边大部分是用确定宽度的margin来实现的,再加上左右两个模块是用百分比,

这样在不同的分辨率下就不好控制了。所以我建议,左边的可以确定宽度,

然后float:left,右边的设一个最小宽度,再设个margin-left稍大于左边的宽度,

如下:

 

 

 

十二、详情里左边的点击改变颜色,实现代码如下

functionchangerresultcolor(flag){

varalls=flag.parentNode.children;

for(varj=0;j<alls.length;j++){//先清空所有的class

if(alls[j].nodeName == "A"){

alls[j].className="";

}

}

$(flag).addClass("resultcolora");//添加class

}

这里的class就是单独对需要的元素渲染,

 

 

十三、jquery实现的tab页的效果,代码和效果如下:

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title></title>

<scriptsrc="jquery-1.10.2.min.js"type="text/javascript"></script>

<scriptsrc="jquery-ui.js"type="text/javascript"></script>

<linkrel="Stylesheet" type="text/css"href="jquery-ui.css"/>

</head>

<body>

<div>

<divid="tabs">

<ul>

<li><ahref="#tab1">Tab 1</a></li>

<li><ahref="#tab2">Tab 2</a></li>

<li><ahref="#tab3">Tab 3</a></li>

</ul>

<divid="tab1">Content 1</div>

<divid="tab2">Content 2</div>

<divid="tab3">Content 3</div>

</div>

<script>

$(document).ready(function(){

$( "#tabs" ).tabs({

activate:function( event, ui ) {}

});

});

</script>

</div>

</body>

 

</html>

 

 

十四、在展示一些详细信息时对样式把握不好就很乱,以下是总结的一种格式,可以很好展示:

 

 

 

十五、JQuery中each()的使用方法说明

each()函数是基本上所有的框架都提供了的一个工具类函数,通过它,你可以遍历对象、数组的属性值并进行处理。

jQuery和jQuery对象都实现了该方法,对于jQuery对象,只是把each方法简单的进行了委托:把jQuery对象作为第一个参数传递给jQuery的each方法.换句话说:jQuery提供的each方法是对参数一提供的对象的中所有的子元素逐一进行方法调用。而jQuery对象提供的each方法则是对jQuery内部的子元素进行逐个调用。

 

 

十六、判断是否联网

  1. window.navigator.onLine;

返回浏览器的联网状态.正常联网(在线)返回true,不正常联网(离线)返回false.一旦浏览器的联网状态发生改变,该属性值也会随之变化. 当用户点击链接或者脚本进行网络请求时,如果发现浏览器连接不上互联网.则该属性会被赋值为false.

各浏览器对该属性的实现有些不同.

在Chrome和Safari中,如果浏览器连接不上局域网 (LAN)或者路由器,就是离线状态; 其他情况都是在线状态. 所以当该属性值为false的时候,你可以说浏览器不能正常联网, 但如果该属性值为true的时候, 并不意味着浏览器一定能连接上互联网.还有其他一些可能引起误判的原因,比如你的电脑安装了虚拟化软件,可能会有一个虚拟网卡.它总是显示正常联网.因此,如果你想得到浏览器确切的联网状态,应该使用其他额外的检查手段.

2、可以使用加载图片的方法判断

var image = new Image();

image.src="http://www.baidu.com/img/baidu_sylogo1.gif?<%=Math.random()%>";

image.onload = function(){}

image.οnerrοr= function(){}

 

 

十七、动态加载js

要实现动态加载JS脚本有4种方法:

 

1、直接document.write

<script language="javascript">

document.write("<script

src='test.js'><\/script>");

</script>

 

2、动态改变已有script的src属性

<script src='' id="s1"></script>

<script language="javascript">

s1.src="test.js"

</script>

 

3、动态创建script元素

<script>

var oHead = document.getElementsByTagName('HEAD').item(0);

var oScript= document.createElement("script");

oScript.type = "text/javascript";

oScript.src="test.js";

oHead.appendChild( oScript);

</script>

 

  这三种方法都是异步执行的,也就是说,在加载这些脚本的同时,主页面的脚本继续运行,如果用以上的方法,那下面的代码将得不到预期的效果。

 

要动态加载的JS脚本:a.js,以下是该文件的内容。

var str = "中国";

alert( "这是a.js中的变量:" + str );

 

4、原理:用XMLHTTP取得要脚本的内容,再创建 Script 对象。

注意:a.js必须用UTF8编码保存,要不会出错。因为服务器与XML使用UTF8编码传送数据。

<scriptlanguage="JavaScript">

functionGetHttpRequest() {

if ( window.XMLHttpRequest ) // Gecko

return new XMLHttpRequest() ;

else if ( window.ActiveXObject ) // IE

return newActiveXObject("MsXml2.XmlHttp") ;

}

 

functionAjaxPage(sId, url){

var oXmlHttp = GetHttpRequest() ;

oXmlHttp.OnReadyStateChange =function() {

if ( oXmlHttp.readyState == 4 ) {

if ( oXmlHttp.status == 200 || oXmlHttp.status== 304 ) {

IncludeJS( sId, url,oXmlHttp.responseText );

} else {

alert( 'XML request error: ' +oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;

}

}

}

oXmlHttp.open('GET', url, true);

oXmlHttp.send(null);

}

 

functionIncludeJS(sId, fileUrl, source) {

if ( ( source != null ) && (!document.getElementById( sId ) ) ){

var oHead =document.getElementsByTagName('HEAD').item(0);

var oScript = document.createElement("script" );

oScript.language ="javascript";

oScript.type ="text/javascript";

oScript.id = sId;

oScript.defer = true;

oScript.text = source;

oHead.appendChild( oScript );

}

}

AjaxPage("scrA", "b.js" );

alert("主页面动态加载JS脚本。");

alert("主页面动态加载a.js并取其中的变量:" + str );

</script>

注:.处理服务器端的响应

* *XMLHttpRequest对象中有一个readyState属性

* *0 代表未初始化,还没有调用open方法

* *1 代表正在加载,open方法已被调用,但send方法还没有被调用

* *2 代表已经加载完毕,send已经被调用,请求已经开始.

* *3 代表交互中,服务器正在发送数据

* *4 代表完成,响应发送完毕

200:服务器处理成功

304:文件没有被修改

 

 

 

十八、liger ui clone

很多时候同一个div需要重复使用,这时候就需要克隆一下再用,代码如下:

 

 

 

 

 

 

 

 

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值