js、jquery、css使用过程中学到的一些方法技巧
快速查看
| 1 | 动态创建script/link/style标签 |
| 2 | 在不适合使用iframe的情况下,让页面像iframe那样能分块滚动 |
| 3 | 鼠标在元素上时显示tip风格的提示信息 |
1、动态创建script/link/style标签
//动态创建link
var link=document.createElement("link");
link.setAttribute("rel", "stylesheet");
link.setAttribute("type", "text/css");
link.setAttribute("href", url); var heads = document.getElementsByTagName("head");
if(heads.length)
heads[0].appendChild(link);
else
document.documentElement.appendChild(link);
//动态创建style
var style=document.createElement("style");
style.setAttribute("type", "text/css"); if(style.styleSheet){// IE
style.styleSheet.cssText = cssString;
} else {// w3c
var cssText = document.createTextNode(cssString);
style.appendChild(cssText);
} var heads = document.getElementsByTagName("head");
if(heads.length)
heads[0].appendChild(style);
else
document.documentElement.appendChild(style);
//动态创建script
var script=document.createElement("script");
script.setAttribute("type", "text/javascript");
script.setAttribute("src", "JustWalking.js");
var heads = document.getElementsByTagName("head");
if(heads.length)
heads[0].appendChild(script);
else
document.documentElement.appendChild(script);
2、在不适合使用iframe的情况下,让页面像iframe那样能分块滚动
由于页面中用到了jquery-jstree插件,
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/common/inc.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>所有菜单资源</title>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script language="javascript">
$(function(){
//计算当前页面的高度、宽度
var clientHeight, clientWidth;
if($.browser.msie){
//如何是IE浏览器document.body.clientHeight属性得到窗口高度
clientHeight = document.body.clientHeight;
clientWidth = document.body.clientWidth;
}
else{// w3c
clientHeight = self.innerHeight;
clientWidth = self.innerWidth;
}
//客户区高度减去#menuTree div距离客户区顶部的距离
clientHeight = clientHeight - $("#menuTree").position().top;
//动态创建#menuTree div的css
var css = "#menuTree {width:" + clientWidth + "px;height:" + clientHeight+ "px;overflow:scroll;}";
var style=document.createElement("style");
style.setAttribute("type", "text/css"); if(style.styleSheet){// IE
style.styleSheet.cssText = css;
} else {// w3c
var cssText = document.createTextNode(css);
style.appendChild(cssText);
} var heads = document.getElementsByTagName("head");
if(heads.length)
heads[0].appendChild(style);
else
document.documentElement.appendChild(style);
});
// 其他代码...
</script>
</head>
<body>
<a href="system/acl!allMenuResource.action?params">菜单授权</a>
<a href="system/acl!allActionResource.action?params">操作授权</a>
<a href="javascript:auth()">保存授权</a> |
<a href="javascript:permit_all()">全部允许</a>
<a href="javascript:deny_all()">全部拒绝</a>
<a href="javascript:extends_all()">全部继承</a>
<a href="javascript:cancel_all()">全部取消</a>
<hr/>
<div id="menuTree">
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<s:iterator value="#menuIds">
<td width="150" valign="top">
<div id="menuTree_<s:property/>"></div>
</td>
</s:iterator>
</tr>
</table>
</div>
</body>
</html>
3、鼠标在元素上时显示tip风格的提示信息
首先为提示块定义默认样式:
<style type="text/css">
<!--
/* 定义提示信息块宽度、字体颜色、默认不显示、内边距、边框、背景色 */
#tooltip{
width:120px;
color:black;
display:none;
padding:5px;
border:1px solid black;
background-color:#FFFFCC;
}
-->
</style>
在鼠标下方显示提示,并跟随鼠标移动:
<script type="text/javascript">
$(function(){
//为文本框添加提示信息
$("input").hover(function(e){//mouseover
var x = e.pageX + 10;
var y = e.pageY + 20;
var myTitle = "以字母、数字、下划线开头,6~16个字符,区分大小写";
var tooltipHtml = "<div id='tooltip'>" + myTitle + "</div>"; //创建提示框
$("body").append(tooltipHtml); //添加到页面中
$("#tooltip").css({
"top": y + "px",
"left": x + "px",
"position":"absolute",//很重要,缺少该属性#tooltip将会位于奇怪的位置 }).show("fast");//设置提示框的坐标,并显示
}, function(){//mouseout
$("#tooltip").remove();
}).mousemove(function(e){//tip跟随鼠标移动,比较耗费系统资源,并且效果不太流畅,如无必要不推荐使用
$("#tooltip").css({
"top": (e.pageY + 20) + "px",
"left": (e.pageX + 10) + "px"
});
});
});
</script>
如果觉得在鼠标下方遮盖了其他元素,可以在元素前或后添加提示信息,只需要对mouseover事件的处理函数进行如下修改:
var x = e.target.offsetLeft + e.target.offsetWidth + 10;
var y = e.target.offsetTop + 20;
好吧,昨天下载了jquery-ui,发现有现成的tooltip插件可以用,真方便啊_(:3」∠)_
4、单击div上传文件,并且页面中不显示<input type="file"/>
<script type="text/javascript">
$(function(){
$(".imageView").click(function(){
$("#avatar").click();
});
});
</script>
<style type="text/css">
<!--
#avatar{
width: 0px;
height: 0px;
position: absolute;
top: -20px;
left: -20px;
}
-->
</style>
<form id="uploadForm" action="system/login.action" method="post" enctype="multipart/form-data">
<input type="hidden" name="method:userInfoInput"/>
<div><input type="file" name="avatar" id="avatar"/></div>
</form>
<div class="imageView">选择你要上传的 头像</div>
4、var args = Array.prototype.slice.call(arguments); 的作用
这儿主要说明的是javascript中call()方法和arguments对象的作用,看了一些网上的东西,大致上了解整个语句的运作流程了。
首先说说call的用法:
//call的作用是调用object对象上的method方法,但在调用的时候,用obj对象替换object
//object是window的时候通常是省略的
object.method.call(obj, arg1,...);
//上面的方法等同于obj.method(arg1,...);obj自身是可以没有定义method这个方法的
//因此var args = Array.prototype.slice.call(arguments);就相当于
var args = arguments.slice();
另一个要说的就是arguments对象了,arguments对象是函数实参的副本
function a(x, y){
//在这儿看到的arguments就是指的x, y
//arguments类似于数组,但并不是真的数组,不能直接调用slice()方法
//所以才用了Array.prototype.slice.call(arguments);
var args = Array.prototype.slice.call(arguments);
//此时args[0]是x的值,args[1]是y的值
}
js、jquery、css使用过程中学到的一些方法技巧的更多相关文章
- js,jquery,css,html5特效
包含js,jquery,css,html5特效,源代码 本文地址:http://www.cnblogs.com/roucheng/p/texiao.html 2017新年快乐特效 jQuery最新最全 ...
- js jquery css 选择器总结
js jquery css 选择器总结 一.原始JS(Document 对象)选择器. id选择器:document.getElementById("test"); name选择器 ...
- Django加入JS,CSS,图片等外部文件的方法
Django加入JS,CSS.图片等外部文件的方法 By 白熊花田(http://blog.csdn.net/whiterbear) 转载需注明出处,谢谢. 在使用Django搭建站点时,往往须要使用 ...
- ios jquery css('left')无法读取属性解决的方法
ios jquery css('left')无法读取属性解决的方法 <pre>$(this).position().left因为display:none状态下是读取不了 $(this).o ...
- 前端html、CSS快速编写代码插件-Emmet使用方法技巧详解
前端html.CSS快速编写代码插件-Emmet使用方法技巧详解 Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来 ...
- 制作移动端手机网站过程中的SEO优化方法技巧
据国内三大运营商数据来看,中国的手机用户数已达10亿,超过2/5的移动用户每个月都会从手机终端访问网页,如今的移动端手机网站比例肯定有提升,但是对于这些存在的移动版本网站来说,马海祥查看了很大一部分手 ...
- 同时处理html+js+jquery+css的插件安装(Spket&Aptana插件安装)
Spket 在线安装方法:Help->Software Updates(或者Install New Software)->Add site Location:http://www.spke ...
- js jquery中判断checkbox是否被选中的方法
在js中: document.getElementById("checkboxID").checked 返回true或者false jQuery中: $("input ...
- jQuery CSS 的操作函数
jQuery CSS 操作函数 下面列出的这些方法设置或返回元素的 CSS 相关属性. CSS 属性 描述 css() 设置或返回匹配元素的样式属性. height() 设置或返回匹配元素的高度. o ...
随机推荐
- 【十】注入框架RoboGuice使用:(Your First Testcase)
上一篇我们简单的介绍了一下RoboGuice的使用([九]注入框架RoboGuice使用:(Your First Injected Service and BroadcastReceiver)),今天 ...
- RMAN备份各种物理文件
RMAN运行脚本的方式:RMAN TARGET / @backup_db.rmanRMAN TARGET / cmdfile=backup_db.rman在RMAN中执行操作系统中保存的脚本:RMAN ...
- 淘宝开源任务调度框架tbschedule
背景 分布式任务调度是非常常见的一种应用场景,一般对可用性和性能要求不高的任务,采用单点即可,例如linux的crontab,spring的quarz,但是如果要求部署多个节点,达到高可用的效果,上面 ...
- Unhandled event loop exception 解决办法
网上搜索了一下.对其他人有效的办法有两种: 1. 安装了adsafe .卸载掉就可以了. 2.安装了流氓软件:百度杀毒. 卸载掉也解决问题了 我就是第三种情况.到现在还没解决的热.!. 谁还有更好的 ...
- RTMP流媒体播放过程(转)
http://blog.csdn.net/leixiaohua1020/article/details/11704355 本文描述了从打开一个RTMP流媒体到视音频数据开始播放的全过程. 注意:RTM ...
- exist和not exist用法
参考:http://wenku.baidu.com/view/577f4d49cf84b9d528ea7a6f.html //这个讲的很详细 引用自:http://chenling1018.bl ...
- 【笔记】JS中的数组方法
push()方法:可以向数组的末尾添加一个或者多个元素,并且返回新的长度 pop()方法:可以删除数组最后一个元素,并且返回被删除的元素,注意:如果数组是空的,该方法不进行任何操作,返回undef ...
- java 成神之路
一.基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http://www.jcp.org/en/jsr/detail?id=133 http://i ...
- 从汇编看c++的new和delete
下面是c++源码: class X { private: int _x; public: X() : _x(xx) {} ~X() {} }; int main() { X* xp = new X; ...
- [汇编语言]-第二章DEBUG
Debug查看CPU各种寄存器中得内容,内存的情况和在机器码级跟踪程序的运行. 1- 进入Debug xp 开始-运行 cmd 输入 debug 2- Debug功能 r 查看,改变CPU寄存器的内容 ...