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 ...
随机推荐
- 从Android Handler内部类到WeakReference的知识关联
Handler: 普通使用方法: Handler用于处理和从队列MessageQueue中得到Message.一般我们要重写Handler的handleMessage(Message msg){}方法 ...
- C# 枚举运用"位"操作和"或"操作
定义: /// <summary> /// The js function type(the same as name). /// </summary> [Flags] pub ...
- SQL Server 强行Insert包含自增列值的记录
SET IDENTITY_INSERT 表 ON INSERT INTO 表 ([ID] ,[SequenceNumber] ,[EnumCode] ,[Description]) VALUES ( ...
- sublime 快键
Keyboard Shortcuts - Windows/Linux Warning This topic is a draft and may contain wrong information. ...
- XML及PullParser解析
一.什么是XML 1.概念:extensive markup language(可扩展的标记语言) XML是一种通用的数据存储和交换格式,与平台无关,与编程语言无关,与操作系统无关.给数据集成和交互提 ...
- PHP学习笔记八【数组】
<?php //定义数组 $hens[0]=3; $hens[1]=5; $hens[2]=1; $hens[3]=3.4; $hens[4]=2; $hens[5]=50; //遍历整个数组 ...
- LAMP介绍及安装
LAMP介绍及安装 1. LAMP是什么? LAMP,包含Linux + Apache + PHP + Mysql. LAMP适用环境 适用于追求极致稳定的WEB环境,缺点是需要消耗更多资源. 除了L ...
- css基础之 联网使用bootstrap
在<head></head>中添加 <meta charset="utf-8"> <meta http-equiv="X-UA- ...
- stringstream函数(i o)
stringstream函数 头文件 #include<sstream> stringstream是字符串流,被用来切分数据或转化类型 样例一(摘) 输入n,代表接下来输入n行资料,每行 ...
- Sicily 1790. Single Round Match
高进度求余 或者 将一个数奇位上的数字与偶位上的数字分别加起来,再求它们的差,如果这个差是11的倍数(包括0),那么,原来这个数就一定能被11整除. #include <iostream> ...