Javascript学习第九、十天总结scroll家族和event对象及放大镜特效
来源:互联网 发布:java伪造ip请求头信息 编辑:程序博客网 时间:2024/06/06 03:18
1、scroll家族:
检测盒子内容的宽高:scrollWidth、scrollHeight
检测卷曲的部分宽高:obj.scrollTop,obj.scrollLeft
如果是页面被卷曲的部分:window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;
2、新的方法:window.scrollTo(xPos,yPos)
3、新的事件:onscroll,滚动事件
4、新的数据类型:
json(javascript对象表示法):无序的键值对的集合
var json={
“name”:”zhangsan”,
“age”:19
}
如何遍历json:
for(var key in json){
console.log(key);
console.log(json[key])
}
event对象:
获取event对象:事件函数传参或者window.event
event对象的重要属性:
target:事件的源头
type:事件的类型
bubble:是否冒泡
button:鼠标事件按下的哪个按键
screenX:相对于浏览器而言鼠标的横坐标
pageX:相对于body而言,鼠标的横坐标(有兼容性,不能用,解决办法?clientX+页面被卷曲的部分)
clientX:相对于浏览器的可视区域而言,鼠标的横坐标
新的事件:onmousemove 鼠标移动事件
js放大镜效果
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style> *{ margin:0; padding:0; } .box{ width: 900px; height: 430px; margin:50px 100px; position: relative; } img{ display: block; } .small{ float: left; } div.mask{ width: 184.9px; height: 184.9px; background: lightyellow; opacity: 0.3; filter:alpha(opacity=30); display: none; position: absolute; top:0; left:0; } .big{ border:1px solid #ccc; overflow: hidden; width: 430px; height: 430px; float: left; margin-left:20px; } .big img{ margin-top:0px; margin-left:0px; } </style> <script src="js/myJquery1.2.js"></script> </head> <body> <div class="box"> <div class="small"> <img src="images/small.jpg" alt="" /> <div class="mask"></div> </div> <div class="big"> <img src="images/big.jpg" alt="" /> </div> </div> <script> //需求分析: //1、当鼠标在small中移动时,mask显示,big显示 //2. 当鼠标在small中移动时,mask跟随鼠标移动,并且鼠标在mask的中间,mask不能超出small //3、当鼠标在small中移动时,mask覆盖的区域,在big中会显示细节 //4、当鼠标移出small时,mask和big都隐藏; //获取事件源和相关元素: var box = document.getElementsByTagName('div')[0]; var small = box.children[0]; var big = box.children[1]; var mask = small.children[1]; var bigImg = big.children[0]; //当鼠标在small中移动时 small.onmousemove = function(event){ //mask显示,big显示 mask.style.display = "block"; big.style.display = "block"; //获取事件对象 var e = event||window.event; //获取鼠标距离页面顶部和页面左侧的距离 var pageX = e.clientX + scroll().left; var pageY = e.clientY + scroll().top; //获取以box为参考系,鼠标的坐标,并且鼠标在mask的中间 var x = pageX - box.offsetLeft-mask.offsetWidth/2; var y = pageY - box.offsetTop-mask.offsetHeight/2; //mask不能超出small if(x<0){ x=0; } if(y<0){ y=0; } if(x>small.offsetWidth-mask.offsetWidth){ x = small.offsetWidth-mask.offsetWidth; } if(y>small.offsetHeight-mask.offsetHeight){ y = small.offsetHeight-mask.offsetHeight; } //mask跟随鼠标移动 mask.style.top = y + "px"; mask.style.left = x+"px"; //mask覆盖的区域,在big中会显示细节 //大图从百分之几开始显示 var percentX = x/small.offsetWidth; var percentY = y/small.offsetHeight; //大图移动 bigImg.style.marginLeft = -percentX*bigImg.offsetWidth +"px"; bigImg.style.marginTop = -percentY*bigImg.offsetHeight + "px"; } //当鼠标移出small时,mask和big都隐藏 small.onmouseout = function(){ mask.style.display = "none"; big.style.display = "none"; } </script> </body></html>
- Javascript学习第九、十天总结scroll家族和event对象及放大镜特效
- javascript教程及特效--window.event对象
- js的三大家族(offset/scroll/client)和一个事件对象(event)///正则
- [JS]详尽解析window.event对象 --javascript 教程及特效
- 详尽解析window.event对象 --javascript 教程及特效
- [JS]详尽解析window.event对象 --javascript 教程及特效
- [JS]详尽解析window.event对象 --javascript 教程及特效
- JavaScript 特效之四大家族(offset/scroll/client/event)
- Javascript放大镜的特效
- Javascript第八天学习总结offset家族及简单轮播图
- scroll家族
- JavaScript 学习之Event对象
- javaScript中三大家族总结
- 编程珠玑第九|十章学习总结
- JavaScript网页特效(一)图片放大镜
- JS对象:offset、scroll、event、client
- 放大镜特效
- Javascript第六天学习总结日期对象和定时器
- Android-Android Studio修改字体(font)大小(size)
- CodeForces
- hdoj 5667 Sequence
- SpringMVC中handlerInterceptor的添加
- 1001. A+B Format (20)
- Javascript学习第九、十天总结scroll家族和event对象及放大镜特效
- java分页带序号
- 字符数字及在编译时会出现的相关问题总结
- 装饰者模式
- B
- ACM暑假训练日记 17.8.22
- 使用BigDecimal进行精确运算
- SASS开发环境搭建(webstorm做编辑器)
- zip文件伪加密