js实现div固定在屏幕的某一个位置
2016-07-13 12:16
405 查看
要实现div块固定在屏幕的某一个位置可以使用js来实现,这个实现比较简单,下面来看下效果:
原理就是监听window对象的onscroll事件,获取鼠标移动了多少距离,然后给这个需要固定的div加上屏幕滚动的距离,就可以实现屏幕固定了。
这个同样要设置一下这个需要固定的div的style属性,然后我们来看一下屏幕滚动之后的这个div的style属性的变化:
从上面看到这个style属性的margin-top属性一直在变化,下面上源码:
这里的源码比较简单,看上面的注释就行了
原理就是监听window对象的onscroll事件,获取鼠标移动了多少距离,然后给这个需要固定的div加上屏幕滚动的距离,就可以实现屏幕固定了。
这个同样要设置一下这个需要固定的div的style属性,然后我们来看一下屏幕滚动之后的这个div的style属性的变化:
从上面看到这个style属性的margin-top属性一直在变化,下面上源码:
//代表要跟随页面移动的div原型对象 function obj(id) { this.e = document.getElementById(id); console.log("e:" + this.e); //记录屏幕滚动的宽度 this.x = 0; this.style = ""; //获取style的值并保存 this.getStyle(); } //获取根元素的style obj.prototype.getStyle = function() { var styles = this.e.getAttribute("style").split(";"); for(var i = 0; i < styles.length - 1; i++) { this.style += styles[i] + ";"; } console.log("this.style: " + this.style); var oldMarginTopStr = styles[styles.length - 1]; console.log("oldMarginTopStr:" + oldMarginTopStr); var marginSplit = oldMarginTopStr.split(":"); var marginStr = marginSplit[marginSplit.length-1]; //截取marginTop的数字 var margin = marginStr.substring(0, marginStr.length-2); console.log("margin:" + margin); this.oldMargin = parseInt(margin); } //设置顶部边距 obj.prototype.setMarginTop = function() { //计算滚动之后的margin值 var margin = this.oldMargin + this.x; margin = "margin-top:" +margin + "px"; var newStyle = this.style + margin; console.log("newSytle:" + newStyle); this.e.setAttribute("style", newStyle); } //创建div对象 var divObj = new obj("scr"); //给屏幕的滚动事件添加函数 window.onscroll = function() { //获取屏幕滚动的宽度 divObj.x = document.documentElement.scrollTop || document.body.scrollTop; console.log("x:" + divObj.x); //设置目标div的margin-top属性 divObj.setMarginTop(); }
这里的源码比较简单,看上面的注释就行了
相关文章推荐
- JavaScript原型链的理解和分析
- 过目不忘JS正则表达式
- javascript 日期时间函数(经典+完善+实用)
- JavaScript之------综合应用
- 最短JavaScript判断是否为IE6、IE的方法
- JavaScript获取浏览器高度和宽度值(documentElement,clientHeight,offsetHeight,scrollHeight,scrollTop,offsetParent,offsetY,innerHeight)
- JavaScript如何获取/计算页面元素的offset?
- Java代码中获取Json的key值
- JavaScript在IE6下超级链接window.location.href不跳转的bug 及 解决方案
- js数据类型
- JavaScript中为空判断
- 【JS&Html】一些总结
- extjs插件
- JavaScript推荐资料合集(前端必看)
- js获取表单值的两种方法
- js中 认识DOM
- EL表达式详解
- JavaScript读取本地图片到浏览器
- jsp页面向action传值乱码的问题
- 由学习wc的extjs项目,想到的关于1学习一门编程语言 2extjs框架 3对所有框架的一个理解 4对事物真谛的理解