0

当它进入左侧的固定 div 时,我试图让我的滚动到顶部链接跟随用户的鼠标。我已经为我正在尝试做的事情制作了一个原型,但我的技能太低而无法真正让它发挥作用。请帮忙。

  var mouseX = 0, mouseY = 0;
$(".side").mousemove(function(e){
   mouseY = e.pageY-19; 
});

var follower = $("#follower");
yp = 0;
var loop = setInterval(function(){

    yp += (mouseY - yp) / 6;
    follower.css({top:yp});

}, 10);

小提琴:http: //jsfiddle.net/grammakov/tDGRc/1

4

1 回答 1

1

我的网站上有这样的东西:

$("body").on( "mousemove" , "a.refreply",  function(e){ relocatePopup(e); });

当鼠标位于带有“refreply”类的某个链接的顶部时,它会显示一个 div#popup,如果鼠标移动,则弹出窗口会跟随光标。显示弹窗的部分这里没有显示,它基本上以 $('#popup').show(); 结尾

函数 relocatePopup 是:

function relocatePopup ( e, useglobal ) {

if ( useglobal == true ) {
    var e = new Object;
    e.pageX = global_x;
    e.pageY = global_y;
}

var popup_height = parseInt( $("div#popup").css("height") ) ;
var bottom_popup = e.pageY + popup_height + 20;
var bottom_page = window.pageYOffset + window.innerHeight;
if ( bottom_popup > bottom_page ) {
    $('div#popup').css("top", bottom_page - popup_height - 5 ).css("left",e.pageX+20);
}else{
    $("div#popup").css("top",e.pageY+20).css("left",e.pageX+20);
}
}

基本上它获取鼠标事件的 x,y,剩下的就是计算弹出窗口的内容是否会出现在可见屏幕之外,重新计算将弹出窗口保持在页面内的位置,然后更改“顶部”和元素的“左侧”,必须绝对定位。

于 2013-03-28T16:16:39.427 回答