常用组件
来源:互联网 发布:talk是什么软件 编辑:程序博客网 时间:2024/06/03 21:27
一、轮播器组件
属性:clientWidth、clientHeight、scrollWidth、scrollHeight
说明:表格和iframe框架除外,因为offsetParent未必等于父容器
属性:offsetLeft、offsetTop
说明:用绝对的距离-滚动条滚动的距离即可
属性:offsetLeft、scrollLeft、offsetTop、scrollTop
说明:调用元素的getBoundingClientRect()方法,返回一个对象,含有元素的left、right、top、bottom、height、width属性
1、网页元素的相对位置:
var X= this.getBoundingClientRect().left;
var Y =this.getBoundingClientRect().top;
2、网页元素的绝对位置=相对位置+滚动距离
var X= this.getBoundingClientRect().left+document.documentElement.scrollLeft;
var Y =this.getBoundingClientRect().top+document.documentElement.scrollTop;
六、表单的登录验证
class Slider{ constructor(id){ this.container=document.getElementById(id);//获取图片容器 this.items=this.container.querySelectorAll('.list-item'); } getSelectorItem(){ //获取当前展示的图片 let selected=this.container.querySelector('.current'); return selected; } getSelectorItemIndex(){ //获取当前选中的图片的索引 return Array.from(this.items).indexOf(this.getSelectorItem()); } slideTo(idx){ //跳转到idx这一张图片 let selected=this.getSelectorItem(); if(selected){ selected.className="list-item";//将当前展示的图片设置'隐藏样式' } let item=this.items[idx]; if(item){ item.className="current";//将要展示的图片设置'显示样式' } } slideNext(){ //下一张 let currentIdx=this.getSelectorItemIndex(); let nextIdx=(currentIdx+1)%this.items.length;//防止最后一张,使其循环显示 this.slideTo(nextIdx); } slidePrevious(){ //上一张 let currentIdx=this.getSelectorItemIndex(); let previousIdx=(this.items.length+currentIdx-1)%this.items.length;//防止第一张,使其循环显示 this.slideTo(previousIdx); }}//创建实例,绑定作用域let slider=new Slider('list');setInterval(slider.slideNext.bind(slider),3000);//或者setInterval(slider.slidePrevious.bind(slider),3000);二、获取网页大小
属性:clientWidth、clientHeight、scrollWidth、scrollHeight
function getPagearea(){ if (document.compatMode == "BackCompat"){ return { width:Math.max(document.body.scrollWidth,document.body.clientWidth), height:Math.max(document.body.scrollHeight,document.body.clientHeight) } } else { return { width:Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth), height:Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) } }}三、获取网页元素的【绝对位置】:元素的左上角到整张页面的左上角的距离
说明:表格和iframe框架除外,因为offsetParent未必等于父容器
属性:offsetLeft、offsetTop
function getElementLeft(element){ var actualLeft = element.offsetLeft; var current = element.offsetParent; while (current !== null){ actualLeft += current.offsetLeft; current = current.offsetParent; } return actualLeft;}function getElementTop(element){ var actualTop = element.offsetTop; var current = element.offsetParent; while (current !== null){ actualTop += current.offsetTop; current = current.offsetParent; } return actualTop;}四、获取网页元素的【相对位置】:元素的左上角相对于浏览器窗口左上角的距离
说明:用绝对的距离-滚动条滚动的距离即可
属性:offsetLeft、scrollLeft、offsetTop、scrollTop
function getElementLeft(element){ var actualLeft = element.offsetLeft; var current = element.offsetParent; while (current !== null){ actualLeft += current.offsetLeft; current = current.offsetParent; } if (document.compatMode == "BackCompat"){ var elementScrollLeft=document.body.scrollLeft; } else { var elementScrollLeft=document.documentElement.scrollLeft; } return actualLeft-elementScrollLeft;}function getElementTop(element){ var actualTop = element.offsetTop; var current = element.offsetParent; while (current !== null){ actualTop += current.offsetTop; current = current.offsetParent; } if (document.compatMode == "BackCompat"){ var elementScrollTop=document.body.scrollTop; } else { var elementScrollTop=document.documentElement.scrollTop; } return actualTop-elementScrollTop;}五、获取元素位置的快速方法:getBoundingClientRect()方法
说明:调用元素的getBoundingClientRect()方法,返回一个对象,含有元素的left、right、top、bottom、height、width属性
1、网页元素的相对位置:
var X= this.getBoundingClientRect().left;
var Y =this.getBoundingClientRect().top;
2、网页元素的绝对位置=相对位置+滚动距离
var X= this.getBoundingClientRect().left+document.documentElement.scrollLeft;
var Y =this.getBoundingClientRect().top+document.documentElement.scrollTop;
六、表单的登录验证
class CheckLoginTip{ //创建错误提示 constructor(){ this.tipU=document.createElement('p'); this.tipU.appendChild(document.createTextNode('用户名不能为空!')); this.tipP=document.createElement('p'); this.tipP.appendChild(document.createTextNode('密码格式错误!')); } //添加错误提示 addErrorTip(node,type){ node.className='error'; if (type==='username') { node.parentNode.appendChild(this.tipU); }else if (type==='password') { node.parentNode.appendChild(this.tipP); } } //移除错误提示 removeErrorTip(node,type){ node.className=''; if (type==='username') { node.parentNode.removeChild(this.tipU); }else if (type==='password') { node.parentNode.removeChild(this.tipP); } } //用户名是否为空 isValidName(value){ return value?false:true; } //验证密码 isValidPassword(password){ let len=password.length>6;//密码长度是否大于6位 let hasDigital=/\d+/.test(password);//密码是否含有数字 let hasCharater=/\w+/.test(password);//密码是否含有其他字符 return len&&hasDigital&&hasCharater; }}实际使用://创建表单验证实例var checkForm=new CheckLoginTip();var form=document.forms['login-form']; var username=form['username']; //name是关键字 var password=form['password']; //添加表单提交事件 form.addEventListener('submit',function(e){ if(!checkForm.isValidName(username.value)) { checkForm.addErrorTip(username,'username'); e.preventDefault(); } if(!checkForm.isValidPassword(password.value)) { checkForm.addErrorTip(password,'password'); e.preventDefault(); } }, false); //添加表单重置事件form.addEventListener('reset',function(){ checkForm.removeErrorTip(username,'username'); checkForm.removeErrorTip(password,'password');},false);//添加用户名失去焦点事件username.addEventListener('blur',function() { if (!checkForm.isValidName(username.value)) { checkForm.addErrorTip(username,'username'); } }, false); //添加用户名获得焦点事件 username.addEventListener('focus',function() { checkForm.removeErrorTip(username,'username'); }, false);//添加密码失去焦点事件 password.addEventListener('blur',function() { if (!checkForm.isValidPassword(password.value)) { checkForm.addErrorTip(password,'password'); } }, false); //添加密码获得焦点事件 password.addEventListener('focus',function(event) { checkForm.removeErrorTip(password,'password'); }, false);
阅读全文
0 0
- 常用组件
- 常用组件
- 常用组件
- 常用组件
- 常用GUI组件 1
- ASP常用组件
- firefox常用开发组件
- 窗口及常用组件
- 应用WebSnap常用组件
- 常用ASP组件下载
- Jmeter常用组件介绍
- 常用widget组件介绍
- 常用的JSF组件
- 常用AWT组件-2
- SWT组件常用样式
- iphone常用组件大小
- 9.1常用AWT组件
- zend framework常用组件
- 7 采集分页列表+ajax延时设置
- JAVA互联网架构之Spring学习其一配置bean及工厂
- rand5()生成rand7()
- P1147 连续自然数和
- swift model 解析的两种方法
- 常用组件
- [自制操作系统] 原子操作&核间中断&读写锁&PRWLock
- iOS Navigation Bar 导航栏折腾记 (Swift&OC)
- linux指令学习笔记
- AUTOSAR DATABASE ARXML 与 VECTOR DATABASE FILE对比
- linux下安装redis
- Java——Final关键字
- iOS Crash 捕获及堆栈符号化思路剖析
- IO-2、磁盘的使用