scrolly = e.pageX - imageTop - ($("div.rawimage").height()*1scaley)2 ;不明白这句什么意思,求问

scrolly = e.pageX - imageTop - ($("div.rawimage").height()*1scaley)2 ;不明白这句什么意思,求问,第1张

scrolly = epageX - imageTop - ($("divrawimage")height()1/scaley)/2 ;

epageX 鼠标停留地x坐标值

var imageTop = $(this)get(0)offsetTop; imgsmallimg控件相对于父容器的top值

scaley类似于imageTop,获取相对于父容器的位置,具体看上面代码指向,不加详细说明了。

$("divrawimage")height()获取divrawimage控件的高。

根本不是epageY、epageX的问题

你没有给div11 加position:absolute; 肯定显示在页面最下面了

$("#11")css({

"top": epageY,"left": epageX

,"backgroundColor":"yellow"})show("fast");

改成

$("#11")css({

position:"absolute","top": epageY,"left": epageX

,"backgroundColor":"yellow"})show("fast");

就行了

在 JS获取div高度的方法 中,整理了几个有关于获取div高度的方法,后来又遇到一个问题,怎么获取DIV在页面中的绝对位置,因此在这篇笔记中记录一下。

页面结构

样式

getBoundingClientRect用于获取某个元素 相对于视窗 的位置集合。集合中有top, right, bottom, left等属性。

offsetLeft指的是元素相对于 版面或 由 offsetParent 属性指定的 父坐标 的计算上侧位置,整型,单位像素。

借用这个思路,当我们想获取元素的绝对位置时,可以递归遍历,直到元素的父元素为body为止。

关于offsetParent属性,有以下几点Tips。

首先要让DIV启用编辑模式

<div contenteditable=true id="divTest"></div>

通过设定contenteditable=true开启div的编辑模式这样DIV就可以跟文本框一样输入内容了。

不扯话题了。下面说怎么获取或设置光标位置

2个步骤

1:获取DIV中的光标位置

2:改变光标位置

var cursor = 0; // 光标位置

documentonselectionchange = function () {

var range = documentselectioncreateRange();

var srcele = rangeparentElement();//获取到当前元素

var copy = documentbodycreateTextRange();

copymoveToElementText(srcele);

for (cursor = 0; copycompareEndPoints("StartToStart", range) < 0; cursor++) {

copymoveStart("character", 1);//改变光标位置,实际上我们是在记录cursor的数量

}

}

给document绑定光标变化事件。用来记录光标位置

这样就可以拿到DIV的光标位置了

给特定的层注册onomuseover事件,在事件处理函数里用定时器来循环获得

var x,y;

setInterval(function(e){

e = e || windowevent;

x = epageX;

y = epageY;

},1000);处理一下兼容性就好了。

获取鼠标当前位置只需:pageX、pageY即可。

具体步骤如下:

1、新建一个html代码页面,在这个html页面找到<body>,然后在这个<body>里创建一个用来显示坐标位置的<div>,并给这个<div>添加一个id。

创建<div>的代码:<div id="point-loc"></div>

2、使用pageX、pageY获取鼠标当前位置。在<title>标签后面新建一个<script>,创建鼠标移动时获取鼠标当前的位置。

js代码:<script type="text/javascript">

documentonmousemove = function(e){

var loc = "当前位置 x:"+epageX+",y:"+epageY

documentgetElementById("point-loc")innerHTML = loc;

}

</script>

3、保存html后使用浏览器打开即可得到鼠标位置

使用以上方法即可获取鼠标位置哦。

f = urllib2urlopen(url)

req = fread()

soup = BeautifulSoup(req)

content = soupfindAll(attrs={"name":"readonlycounter2"})

subId = content[0]stringsplit(',')[1]

subName = souphtmlbodyh1spanstring

content = soupfindAll(attrs={"class":"subdes_td"})

subType = content[0]string

subLeg = content[1]string

content = soupfindAll(attrs={"colspan":"3"})

subTime = content[2]string

subFile = content[7]divstring

目标:div在页面中可随鼠标移动

如果将事件绑定在box上,那么只有鼠标向下向右移动时,才处于box的区间内,才能完成事件响应,但如果想要向左,向上移动,就不能将事件绑定在box上,应绑定在document上

此时,因为使用的是clientX,是用于获取鼠标在当前的可见窗口的坐标,而div的偏移量,是相对于整个页面的。所以此时增加body高度或宽度,就会因为client与div在页面滚动时(0,0)点位置不同,使鼠标与div分离。

且此时鼠标与div之间的距离 = 窗口滚动的距离;

pageX和pageY可以获取鼠标相对于当前页面的坐标

但是这个两个属性在IE8中不支持,所以如果需要兼容IE8,则不要使用

为兼容浏览器,需要修改div偏移量,将窗口滚动距离加到div偏移量里

chrome认为浏览器的滚动条是body的,可以通过bodyscrollTop来获取,火狐等浏览器认为浏览器的滚动条是html的,同样,为了兼容不同浏览器

完整源码为:

以上就是关于scrolly = e.pageX - imageTop - ($("div.rawimage").height()*1/scaley)/2 ;不明白这句什么意思,求问全部的内容,包括:scrolly = e.pageX - imageTop - ($("div.rawimage").height()*1/scaley)/2 ;不明白这句什么意思,求问、JQuery如何获取到鼠标提留位置的坐标用e.pageX,e.pageY好像没生效。。高手帮看看吧、原生JS获取页面中DIV绝对位置的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9333199.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存