js效果 整理
整理中。。。
1、js获取页面及元素高度、宽度
其他参考文献:http://www.open-open.com/lib/view/open1420120422531.html
js:
网页可见区域宽: document.body.clientWidth;(不含滚动条)
网页可见区域高: document.body.clientHeight;(不含滚动条)
网页可见区域宽: document.body.offsetWidth;(包括边线的宽);
网页可见区域高: document.body.offsetHeight;(包括边线的宽);
网页正文全文宽: document.body.scrollWidth;
网页正文全文高: document.body.scrollHeight;
网页被卷去的高(ff):document.body.scrollTop;
网页被卷去的高(ie): document.documentElement.scrollTop;
网页被卷去的左: document.body.scrollLeft;
网页正文部分上: window.screenTop;
网页正文部分左: window.screenLeft;
某个元素的宽度: obj.offsetWidth;
某个元素的高度: obj.offsetHeight;
某个元素的上边界到body最顶部的距离: obj.offsetTop;(在元素的包含元素不含滚动条的情况下)
某个元素的左边界到body最左边的距离: obj.offsetLeft;(在元素的包含元素不含滚动条的情况下)
返回当前元素的上边界到它的包含元素的上边界的偏移量: obj.offsetTop;(在元素的包含元素含滚动条的情况下)
返回当前元素的左边界到它的包含元素的左边界的偏移量: obj.offsetLeft;(在元素的包含元素含滚动条的情况下)
屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth
HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量
jquery:
获取浏览器显示区域(可视区域)的高度 : $(window).height();
获取浏览器显示区域(可视区域)的宽度 : $(window).width();
获取页面的文档高度:$(document).height();
获取页面的文档宽度 :$(document).width();
浏览器当前窗口文档body的高度: $(document.body).height();
浏览器当前窗口文档body的宽度: $(document.body).width();
获取滚动条到顶部的垂直高度 (即网页被卷上去的高度) :$(document).scrollTop();
获取滚动条到左边的垂直宽度 :$(document).scrollLeft();
获取或设置元素的宽度:$(obj).width();
获取或设置元素的高度:$(obj).height();
获取或设置元素的宽度:$(obj).innerWidth(); (height + padding)
获取或设置元素的高度:$(obj).innerHeight(); (height + padding)
获取或设置元素的宽度:$(obj).outerWidth(); (height + padding + border)
获取或设置元素的高度:$(obj).outerHeight(); (height + padding + border)
获取或设置元素的宽度:$(obj).outerWidth(true); (height + padding + border + margin)
获取或设置元素的高度:$(obj).outerHeight(true); (height + padding + border + margin)
某个元素的上边界到body最顶部的距离:obj.offset().top;(在元素的包含元素不含滚动条的情况下)
某个元素的左边界到body最左边的距离:obj.offset().left;(在元素的包含元素不含滚动条的情况下)
返回当前元素的上边界到它的包含元素的上边界的偏移量:obj.offset().top(在元素的包含元素含滚动条的情况下)
返回当前元素的左边界到它的包含元素的左边界的偏移量:obj.offset().left(在元素的包含元素含滚动条的情况下)
2、选中改变样式,其他默认样式
<dl class="use_class">
<dd>个人</dd>
<dd>机构</dd>
</dl>
<script type="text/javascript" src="../js/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
// 用户类别选择,个人、机构
$(document).ready(function(){
$("dd").click(function(){
$(this).css("background","#46b0d5").siblings().css("background","#ccc");
});
</script>
3、JS判断浏览器是否支持某一个CSS3属性的方法
css3表现冲击最大的就是动画了,因此很有必要去事先判断浏览器是否支持,写CSS3动画库就只有部分浏览器支持
function supportCss3(style) {
var prefix = ['webkit', 'Moz', 'ms', 'o'],
i,
humpString = [],
htmlStyle = document.documentElement.style,
_toHumb = function (string) {
return string.replace(/-(\w)/g, function ($0, $1) {
return $1.toUpperCase();
});
}; for (i in prefix)
humpString.push(_toHumb(prefix[i] + '-' + style)); humpString.push(_toHumb(style)); for (i in humpString)
if (humpString[i] in htmlStyle) return true; return false;
}
alert(supportCss3('animation-play-state'));//使用方法
4、JS实现-DIV自动居中代码
window.onload = function(){
function box(){
//获取DIV为‘box’的盒子
var oBox = document.getElementById('box');
//获取元素自身的宽度
var L1 = oBox.offsetWidth;
//获取元素自身的高度
var H1 = oBox.offsetHeight;
//获取实际页面的left值。(页面宽度减去元素自身宽度/2)
var Left = (document.documentElement.clientWidth-L1)/2;
//获取实际页面的top值。(页面宽度减去元素自身高度/2)
var top = (document.documentElement.clientHeight-H1)/2;
oBox.style.left = Left+'px';
oBox.style.top = top+'px';
}
box();
//当浏览器页面发生改变时,DIV随着页面的改变居中。
window.onresize = function(){
box();
}
}
5、JS自动刷新页面
Javascript刷新页面的几种方法:
history.go(0)
location.reload()
location=location
location.assign(location)
document.execCommand('Refresh')
window.navigate(location)
location.replace(location)
document.URL=location.href
例如:
function myrefresh()
{
window.location.reload();
}
setTimeout('myrefresh()',1000); //指定1秒刷新一次
6、点击空白关闭弹窗的js写法推荐?
$(document).mouseup(function(e){
var _con = $(' 目标区域 '); // 设置目标区域
if(!_con.is(e.target) && _con.has(e.target).length === 0){ // Mark 1
some code... // 功能代码
}
});
/* Mark 1 的原理:
判断点击事件发生在区域外的条件是:
1. 点击事件的对象不是目标区域本身
2. 事件对象同时也不是目标区域的子元素
*/
7、js写一个弹出窗
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js实现一个弹出框</title>
<style type="text/css">
/*预先写好弹出窗的样式*/
#menu{height: 900px;}
#close{
width:30px;
height:30px;
cursor:pointer;
position:absolute;
right:5px;
top:5px;
text-indent:-999em;
background-color:blue;
}
#mask{
background-color:pink;
opacity:0.5;
filter: alpha(opacity=50);
position:absolute;
left:0;
top:0;
z-index:1;
}
#login{
position:fixed;
z-index:2;
}
.loginCon{
position:relative;
width:670px;
height:380px;
/*background:url(img/loginBg.png) #2A2C2E center center no-repeat;*/
background-color: #ccc;
}
</style>
<script>
function openNew(){
//获取页面的高度和宽度
var sWidth=document.body.scrollWidth;
var sHeight=document.body.scrollHeight; //获取页面的可视区域高度和宽度
var wHeight=document.documentElement.clientHeight; var oMask=document.createElement("div");
oMask.id="mask";
oMask.style.height=sHeight+"px";
oMask.style.width=sWidth+"px";
document.body.appendChild(oMask);
var oLogin=document.createElement("div");
oLogin.id="login";
oLogin.innerHTML="<div class='loginCon'><div id='close'>关闭</div></div>";
document.body.appendChild(oLogin); //获取登陆框的宽和高
var dHeight=oLogin.offsetHeight;
var dWidth=oLogin.offsetWidth;
//设置登陆框的left和top
oLogin.style.left=sWidth/2-dWidth/2+"px";
oLogin.style.top=wHeight/2-dHeight/2+"px";
//点击关闭按钮
var oClose=document.getElementById("close"); //点击登陆框以外的区域也可以关闭登陆框
oClose.onclick=oMask.onclick=function(){
document.body.removeChild(oLogin);
document.body.removeChild(oMask);
};
}; window.onload=function(){
var oBtn=document.getElementById("btnLogin");
//点击登录按钮
oBtn.onclick=function(){
openNew();
return false;
} }
</script> </head>
<body>
<div id="menu">
<div id="login-area">
<button id="btnLogin">登录</button>
</div>
</div>
</body>
</html>
8、限制显示字数
8.1非文本框字数显示限制
var cname = document.getElementsByClassName('text-slick');
for (var i = 0; i < cname.length; i++) {
var nowLength = cname[i].innerHTML.length;
if (nowLength > wordLength) {
cname[i].innerHTML = cname[i].innerHTML.substr(0,wordLength) + '...';
}
}
8.2文本框字数显示限制
<div class="ui-text"> <textarea name="text" id="text" cols="" rows="" placeholder="" maxlength="48" class="ui-input" data-num="48"></textarea>
<div class="ui-textTips">还可以输入<em>48</em>个字</div>
</div>
JS代码:
function tipsText(){
$('.ui-text').each(function(){
var _this = $(this);
var elm = _this.find('.ui-input');
var txtElm = _this.find('.ui-textTips');
var maxNum = _this.find('.ui-input').attr('data-num') || 500;
console.log($.support.leadingWhitespace);
if(!$.support.leadingWhitespace){
_this.find('textarea').on('propertychange',function(){
changeNum(elm,txtElm,maxNum);
});
_this.find('input').on('propertychange',function(){
changeNum(elm,txtElm,maxNum);
});
} else {
_this.on('input',function(){
changeNum(elm,txtElm,maxNum);
});
}
});
} tipsText(); //获取文字输出字数,可以遍历使用
//txtElm动态改变的dom,maxNum获取data-num值默认为120个字,ps数字为最大字数*2
function changeNum(elm,txtElm,maxNum) {
//汉字的个数
//var str = (elm.val().replace(/\w/g, "")).length;
//非汉字的个数
//var abcnum = elm.val().length - str;
total = elm.val().length;
if(total <= maxNum ){
texts = maxNum - total;
txtElm.html('还可以输入<em>'+texts+'</em>个字');
}else{
texts = total - maxNum ;
txtElm.html('已超出<em class="error">'+texts+'</em>个字');
}
return ;
}
文本框字数显示限制 方法二
<html lang='en'>
<head>
<meta charset='utf-8'/>
<title>demo</title>
<style type="text/css">
.sr { width: 300px; height: 300px; padding: 10px; outline: none; border: 1px solid #D4D4D4; background-color: #F3F3F3; }
</style> </head>
<body> <!-- onkeyUp="textLimitCheck(this, 20);" -->
<textarea name="sca" class="sr" cols=45 rows=10 id="praiseName"></textarea>
<br>
<font color=#666666>限 6 个字符 已输入 <font color="#CC0000"><span id="info_limit">0</span></font> 个字</font> <script>
/* 拼音输入法的时候字还没打完就被限制了。
function textLimitCheck(thisArea, maxLength){
if (thisArea.value.length > maxLength){
alert(maxLength + ' 个字限制. \r超出的将自动去除.');
thisArea.value = thisArea.value.substring(0, 20);
thisArea.focus(); } /*回写span的值,当前填写文字的数量*/
/*messageCount.innerText = thisArea.value.length;
}*/ //控制字数
var lim = new limit();
lim.txtNote = document.getElementById("praiseName");
lim.txtLimit = document.getElementById("info_limit");
lim.limitCount = 6;
lim.init();
function limit(){
var txtNote;//文本框
var txtLimit;//提示字数的input
var limitCount;//限制的字数
this.init = function(){
txtNote = this.txtNote;
txtLimit = this.txtLimit;
limitCount = this.limitCount;
txtNote.maxLength = limitCount;
txtNote.onkeydown = function(){txtLimit.innerText = txtNote.value.length;};
txtNote.onkeyup = function(){txtLimit.innerText = txtNote.value.length;};
}
}
// 输入法输入的时候,显示超出设置字数时进行截屏或者其他操作,操作完后,不会自动截取文字 所以需要输入框失去焦点时再截取一次 $('#praiseName').blur(function() {
$this = $(this);
var val = $this.val();
var length = $this.val().length;
var lengthNum = 30;//设置限制的字数 //超过指定字数便截取
if (length > lengthNum) {
var text = $this.val().substring(0, lengthNum);
$this.val(text);
$('#info_limit').text(lengthNum);
};
});
//也可以直接在dom上加onblur事件οnblur="onsubstring();
//function onsubstring(){
// var txtNote = document.getElementById("praiseName");
// var txtLimit = document.getElementById("info_limit");
// var limitCount = 6;
// if (txtNote.value.length > limitCount) {
// var text = txtNote.value.substring(0, limitCount);
// txtNote.value = text;
// txtLimit.innerText = limitCount;
// };
//}; //由于需要验证去除空格,我用到了jquery的 $.trim() 方法,去除输入的文字前后空格,基本满足要求
$('#praiseName').blur(function() {
$this = $(this);
var val = $.trim($this.val());
$this.val(val);//去除空格后,重新赋值
var length = $this.val().length;
var lengthNum = 8;//设置限制的字数
//超过指定字数便截取
if (length > lengthNum) {
var text = $this.val().substring(0, lengthNum);
$this.val(text);
$('#info_limit').text(lengthNum);
}else{
$('#info_limit').text(length);
};
}); //若需要多次使用,可采用下列修改
$("#XX").blur(function(){
blurLength($(this), 20, $('#XX'));
});
$("#XX").blur(function(){
blurLength($(this), 90, $('#XX'));
}); //验证输入框字符串
function blurLength(t, n, l){
var val = $.trim($(t).val());
$(t).val(val);//去除空格后,重新赋值
var length = $(t).val().length;
var lengthNum = n;//设置限制的字数
//超过指定字数便截取
if (length > lengthNum) {
var text = $(t).val().substring(0, lengthNum);
$(t).val(text);
$(l).text(lengthNum);
}else{
$(l).text(length);
};
}
//其他要求 需要在输入时判断只能输入数字和小数点。并且小数点后只保留两位
var lims = new limit();
lims.txtNote = document.getElementById("diningPrice");
lims.txtLimit = document.getElementById("diningPriceNum");
lims.limitCount = 5;
lims.mark = 1;
lims.init();
function limit(){
var txtNote;//文本框
var txtLimit;//提示字数的input
var limitCount;//限制的字数
var mark;//判断标识
this.init = function(){
txtNote = this.txtNote;
txtLimit = this.txtLimit;
limitCount = this.limitCount;
mark = this.mark;
txtNote.maxLength = limitCount;
txtNote.onkeydown = function(){
if (mark == 1) {
clearNoNum(txtNote);
}
txtLimit.innerText = txtNote.value.length;
};
txtNote.onkeyup = function(){
if (mark == 1) {
clearNoNum(txtNote);
}
txtLimit.innerText = txtNote.value.length;
};
}
} //过滤除数字和点外的其他输入内容
function clearNoNum(obj){
obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符
obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数
if(obj.value.indexOf(".")< 0 && obj.value !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
obj.value= parseFloat(obj.value);
}
}
//其他要求 限制只能输入中文、英文和数字
function limit(){
var txtNote;//文本框
var txtLimit;//提示字数的input
var limitCount;//限制的字数
this.init = function(){
txtNote = this.txtNote;
txtLimit = this.txtLimit;
limitCount = this.limitCount;
txtNote.maxLength = limitCount;
txtNote.onkeydown = function(){
txtNote.value = txtNote.value.replace(/[^\u4E00-\u9FA5A-Za-z0-9]/g,'');
txtLimit.innerText = txtNote.value.length;
};
txtNote.onkeyup = function(){
txtNote.value = txtNote.value.replace(/[^\u4E00-\u9FA5A-Za-z0-9]/g,'');
txtLimit.innerText = txtNote.value.length;
};
}
} </script>
</body>
</html>
js效果 整理的更多相关文章
- 《JavaScript实用效果整理》系列分享专栏
整理一些使用的JavaScript效果,在Web开发中遇到的比较好的动态效果,都收藏在这里,对以后的网站开发增加不少的色彩 <JavaScript实用效果整理>已整理成PDF文档,点击可直 ...
- 类js效果
类似js效果,点击看看 代码 onclick="return confirm('您确定要看看吗?')" 放入a标签里面
- m.jd.com首页中的js效果
m.jd.com中的部分js效果 昨天把m.jd.com的首页布局写好了,今天写一下首页中部分js效果.头部背景色透明度的改变,焦点图轮播,京东快报的小轮播,以及秒杀倒计时.这里html,css样式就 ...
- 常用js方法整理common.js
项目中常用js方法整理成了common.js var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data ...
- Tab选项卡切换卡JS效果
<script type="text/javascript"> /* tab切换选项卡js效果 writed by *** 2010.08.13 1.currentid ...
- 项目中常用js方法整理common.js
抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧. var h = {}; h.get = function (url, data, ok, error) { $ ...
- JS效果的步骤
一.写JS效果的步骤 1.先实现布局 (XHTML+CSS2) 2.实现原理 (1)希望把某个元素移除你的视线: a. display:none; 显示为无,不占据空间 b. vi ...
- Github上html页面(包括CSS样式和JS效果)如何显示出来
在看Github上项目时,发现有的html页面效果能很好的展现出来,而有的则不能.对这个问题很好奇,因此研究了一下,最终做到了将页面展示出来的目的.下面以我的Github的开源项目bootstrap- ...
- WebView 实现JS效果和a标签的点击事件
目前很多android app都可以显示web页面的界面,嵌入式开发,这个界面一般都是WebView这个控件加载出来的,学习该控件可以为你的app开发提升扩展性. 先说下WebView的一些优点: 可 ...
随机推荐
- 新一代数据安全的制胜法宝-UBA
[摘要]在入侵防御领域,运用数据分析的方法保护数据的技术其实没有什么新的东西,比如防火墙-分析数据包的内容以及其他的元数据,如IP地址,从增长的数据条目中检测和阻断攻击者:防病毒软件不断的扫描文件系统 ...
- KETTLE教程实战
kettle初探 Kettle简介:Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,数据抽取高效稳定.Kettle 中文名称叫水壶,该项目的主程 ...
- js-编程练习题-输出年月日以及练习字符串分割,检索,转换整数(int)
这是在慕课网上看到的编程题-如有侵权,请联系本人删除. 当然:题是他们的,做题是我的...嘿嘿嘿 某班的成绩出来了,现在老师要把班级的成绩打印出来. 效果图: XXXX年XX月X日 星期X--班级总分 ...
- luogu P1031 均分纸牌
题目很简单,但是可以学一学贪心策略 把纸牌均匀分布,从左往右推掉不用的纸牌 #include <iostream> using namespace std; int main() { in ...
- IOS开发中制作属于自己的静态库.a、资源库.bundle、.framework
一.什么是库 库实际上是一种代码共享的方式,主要用于代码重用和源码隐藏,通常分为动态库和静态库. 静态库:链接时完整的拷贝至可执行文件中,被多次使用就有多份冗余拷贝. 动态库:链接时不复 ...
- Cookie俩步操作实现n天免登陆
实现这个功能主要思路是:在登录成功的时候去给用户名和密码加上Cookie,将他们的值存在Cookie中,为了下次登录记住用户名和密码,然后在登录界面,获取所有的cookie,然后将值一一遍历出来.和用 ...
- 模拟实现 Promise(小白版)
模拟实现 Promise(小白版) 本篇来讲讲如何模拟实现一个 Promise 的基本功能,网上这类文章已经很多,本篇笔墨会比较多,因为想用自己的理解,用白话文来讲讲 Promise 的基本规范,参考 ...
- 8种创建Java线程的方式,你知道几个?
作者:唐彤 简介 创建线程,是多线程编程中最基本的操作,彤哥总结了一下,大概有8种创建线程的方式,你知道吗? 1.继承Thread类并重写run()方法 public class CreatingTh ...
- 《Java知识应用》Java加密方式(Base64)详解
1. 说明 Base64加密方式:比较简单,加密快,对普通大众可以起到加密的作用.在程序员眼中和透明一样. Base64应用场景:图片转码(应用于邮件,img标签,http加密) 2. 案例 impo ...
- 《Java基础知识》Java final关键字:阻止继承和多态
在 Java 中,声明类.变量和方法时,可使用关键字 final 来修饰.final 所修饰的数据具有“终态”的特征,表示“最终的”意思.具体规定如下: final 修饰的类不能被继承. final ...