页面随鼠标位置而移动~
一个简单的交互,页面区块随鼠标移动而移动。
页面效果(第二屏):http://test.nie.163.com/test_html/game.academy/open-day/201612/
1.重温screenX、clientX、pageX 的区别
screenX:鼠标位置相对于用户屏幕水平偏移量,而screenY也就是垂直方向的,此时的参照点也就是原点是屏幕的左上角。
clientX:跟screenX相比就是将参照点改成了浏览器内容区域的左上角,该参照点会随之滚动条的移动而移动。
pageX:参照点也是浏览器内容区域的左上角,但它不会随着滚动条而变动

2.pageX 小demo
小demo链接:http://test.nie.163.com/test_html/test/loading/page.html
鼠标滑过小图时则出现大图,而大图跟随鼠标在小图区域内移动而移动。
核心代码
var myX = e.pageX + 10;
var myY = e.pageY + 10;
3.回到页面最开始说的交互
 var wrap = $(".slide-wrap");
 var slideCon = wrap.find(".slide-con");
 var items = wrap.find("li");//400
 var conW = items.eq(0).outerWidth(true)*items.length;//2000
 var wrapW = $(".slide-wrap").width();
 var ratio = (conW-wrapW)/wrapW;
 function doMath(){
     conW = items.eq(0).outerWidth(true)*items.length;//2000
     wrapW = $(".slide-wrap").width();//窗口宽度
     ratio = (conW-wrapW)/wrapW;
 }
//浏览器宽度
 function renderCon(){
    slideCon.css({
        width:conW
    });
 }
//页面偏移量
function updatePos(x){
    slideCon.css({
         "marginLeft":-x*ratio
   })
}
$(".slide-wrap").on("mousemove",function(e){
    updatePos(e.clientX);//获取鼠标位置
});
//重置
$(window).bind("resize",function(){
     doMath();
     renderCon();
})
手机阅读请扫描下方二维码:
12345678
1
1
1
1
1
1
1
1
1
1
1
1
1
1
12345678
1 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  
1 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  
1 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  
1 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  
1 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  
1 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  
1 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  
1 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1