$(function () { $(".mainCircleDivBig").mousemove(function (e) { $(".mainCircleDivBig").css({ "left": e.pageX, marginLeft: "-100px" }).css({ "top": e.pageY, marginTop: "-100px" }); }); $(".downLoadCircleDivBig").mousemove(function (e) { $(".downLoadCircleDivBig").css({ "left": e.pageX, marginLeft: "-50px" }).css({ "top": e.pageY, marginTop: "-50px" }); }); $(".infroCircleDivBig").mousemove(function (e) { $(".infroCircleDivBig").css({ "left": e.pageX, marginLeft: "-60px" }).css({ "top": e.pageY, marginTop: "-60px" }); }); $(".classCircleDivBig").mousemove(function (e) { $(".classCircleDivBig").css({ "left": e.pageX, marginLeft: "-80px" }).css({ "top": e.pageY, marginTop: "-80px" }); }); });
以上代码能够实现DivBig跟随鼠标在页面里面移动, 但是我想给鼠标的跟随限定范围
$(function () { $(".mainCircleDivBig").mousemove(function (e) { $(".mainCircleDiv").css({ "left": e.pageX, marginLeft: "-100px" }).css({ "top": e.pageY, marginTop: "-100px" }); }); $(".downLoadCircleDivBig").mousemove(function (e) { $(".downLoadCircleDiv").css({ "left": e.pageX, marginLeft: "-50px" }).css({ "top": e.pageY, marginTop: "-50px" }); }); $(".infroCircleDivBig").mousemove(function (e) { $(".infroCircleDiv").css({ "left": e.pageX, marginLeft: "-60px" }).css({ "top": e.pageY, marginTop: "-60px" }); }); $(".classCircleDivBig").mousemove(function (e) { $(".classCircleDiv").css({ "left": e.pageX, marginLeft: "-80px" }).css({ "top": e.pageY, marginTop: "-80px" }); }); });
即在鼠标移过DivBig的时候内部的div跟随鼠标移动, 离开时停止, 这样的话就要获取鼠标在DivBig内部的坐标, 这个应该怎么获取, 求助.
鼠标有个坐标。DivBig有个相对于(0,0)的坐标。两个坐标做减法,就能算出鼠标在DivBig里的相对坐标了。
想到过这个方法
var ace = $(".mainCircleDivBig"); $(".mainCircleDivBig").mousemove(function (ace, e) { var cc = ace.pageX; var bb = e.pageX;
运行结果这里的CC能够得到数据 但是 bb是undefind
这个要怎么办?
@HANXUEAO: 你这个ace是传不下去的。mousemove事件中,只有function(mouseEvent)这样的。所以你在方法内部的ace表示的是mouseEvent,而不是你前面申明的ace。
@幻天芒: 那要怎样才能同时获取两个对象的坐标进行相减?
@幻天芒:
问题已经解决
@HANXUEAO: 呵呵,嗯。
@幻天芒: 有空的话可不可以再帮我看下代码, 又出现了蛋疼的问题, 这是我修改后的代码
var x1 = $('.mainCircleDivBig'); $(".mainCircleDiv").mousemove(function (e) { var s1 = x1.offset().left, s2 = e.pageX, b1 = x1.offset().top, b2 = e.pageY, cutX = s2 - s1, cutY = b2 - b1; if (cutX <= 100 || cutY <= 100||cutX >= -100 || cutY >= -100) { $(".mainCircleDiv").css({ "left": cutX, marginLeft: "-100px" }).css({ "top": cutY, marginTop: "-100px" }); } });
一下是效果图
mainCircleDiv还是会一直跟随鼠标, 我想让它超出限定的cutX或者是cutY后停下来应该怎么办.
@HANXUEAO: 在设置偏移css的地方,加入判断。我感觉你的判断条件貌似有问题样...
@幻天芒: 嗯, 是条件有点问题, 努力优化中...
@HANXUEAO: :)加油!
@幻天芒:
求助: 我想让页面的元素按照从上到下排列, 当元素触及底部是自动换行到另外一列重新排列, 当元素触及边框时出现横滚动条. 我首先想到的方法就是 writing-mode, 经过试验也的确能够实现纵向排列横向滚动效果, 贴出代码
效果显示:
但是有几点比较烦, 一个屏幕的列数只能规定死,不能够适应不同的屏幕显得比较鸡肋,而且不可控性太大,总感觉不太方便, 而且有些浏览器也不支持. 想请教下有没有更好的解决方法或者是对这种方法的优化.
@HANXUEAO: 能不能用JS来计算布局呢?直接css怕是不太好实现哦~