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 ...
随机推荐
- ASP.NET中分布式事务的使用
之前发表了一篇事务的存储过程,最近在做项目的时候遇到分布式事务,所有总结一下,跟大家分享和交流一下经验.首先说明为什么要分布式事务呢?先说说我在项目的哪里遇到分布式事务吧,我是在做网站后台开发的时候, ...
- Reverse Integer (JAVA)
public class Solution { public int reverse(int x) { StringBuffer sb = new StringBuffer(x+"" ...
- 重写TextView,实现圆形背景,文本居中显示
最近,在做考试试题排版,产品提出题号希望显示成圆形背景,序号文本居中显示. (有点问题:文本没有绝对居中,暂时没做处理.) 为此,我采取的方式是重写TextView的onDraw方法,绘制一个圆形背景 ...
- 微信SDK导入报错 Undefined symbols for architecture i386:"operator delete[](void*)", referenced from:
异常信息: Undefined symbols for architecture i386: "operator delete[](void*)", referenced fro ...
- php variance
function variance ($a) { /** variable and initializations */ $the_variance = 0.0; $the_mean = 0.0; $ ...
- Ubuntu14.04右键菜单添加Sublime 2打开选项
序 Ubuntu上安装Sublime的时候直接下载的压缩包(软件中心里没有找到Sublime),于是每次想用Sublime打开一个文件的时候就得先打开Sublime然后从File -> Open ...
- KVO的实现原理探寻
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- TensorFlow 深度学习笔记 从线性分类器到深度神经网络
转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地址 视频/字幕下载 L ...
- SQL Server 解决CPU 高占用的一般step
第一步: 看这些CPU是不是SQL Server用的. 第二步: 确定SQL Server 有没有引发17883\17884错误 第三步: 找出使用CPU最高的语句进行优化.(sys.dm_exec_ ...
- 32位程序调用Oracle11gR2数据库libclntsh.so失败
[问题描述]32位程序调用Oracle11gR2数据库的libclntsh.so库时会返回失败. [问题原因]32位程序只能调用32位的Oracle客户端实例包,而R2数据库默认安装完毕后是没有lib ...