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 ...
随机推荐
- C# Socket学习笔记一
小记:刚接触网络编程觉得网络是个神奇的东西,所以对它就很有兴趣,想了解下网络是如何进行进行数据传输的,那么开始第一天的学习吧!ReadyGo!!! 首先我们要了解一下几点内容: 1.网络中进程之间如何 ...
- apache启动问题: Could not reliably determine the server's fully qualified domain name
[root@rusky]# service httpd startStarting httpd: httpd: apr_sockaddr_info_get() failed for ruskyhttp ...
- mysql(5.7)在CentOs7下的安装、配置与应用
和之前版本的mysql有一些不同,现把完整过程记下来,或许对新手来说有用. 本文描述的安装是采用通用的二进制压缩包(linux - Generic)以解压方式安装,相当于绿色安装了. 一.下载通用 ...
- iOS9基础知识(OC)笔记
1月16日 Objective C(20世纪80年代初) 一.OC语言概述 1.1985年,Steve Jobs成立了NeXT公司 2.1996年,12月20日,苹果公司宣布收购了NeXT ...
- js编码规范
使用统一的 编码规范 编写代码能提高JS代码的可读性,利于后期的维护和扩展,利于团队开发. 引用规范: 1.采用<script>...</script>方式引入 *.js 文件 ...
- C#传递参数大集合
方法的参数是个值得特别注意的地方.方法的参数传递有四种类型:传值(by value),传址(by reference),输出参数(by output),数组参数(by array).传值参数无需额外的 ...
- 在Yii框架中使用PHPExcel
PHPExcel是一个比较好用的php读取excel文件的类库,今天遇到了在yii中如何加载PHPExcel类文件的问题,因为Yii的autoload机制是安装类名去找文件,即文件名就是相应的类名,而 ...
- HTML5的结构学习(1) --- 新增的主体结构元素
1.article 元素 解释:代表文档.页面和应用程序中独立的.完整的.可以被独自引用的内容. 主要用途:博客中的文章.评论,贴吧中的帖子,或者独立的插件等. article中可以包含多种元素例 ...
- 如何看linux是32位还是64位
查看linux是多少位的几位方法: 查看linux机器是32位还是64位的方法: 方法一: file /sbin/init 或者 file /bin/ls 结果如下:/sbin/init: ELF ...
- 正三角形的外接圆面积,nyoj-274
正三角形的外接圆面积 时间限制:1000 ms | 内存限制:65535 KB 难度:0 描述给你正三角形的边长,pi=3.1415926 ,求正三角形的外接圆面积. 输入 只有一组测试数据 ...