根据鼠标移动将背景位置x px移动到左/右(从背景位置开始:中心)
问题描述:
我试图创建一个jQuery脚本,根据鼠标将背景位置x px更改为左侧或右侧运动(从背景位置开始:中心)。根据鼠标移动将背景位置x px移动到左/右(从背景位置开始:中心)
这是我到目前为止有:http://jsfiddle.net/multiformeingegno/KunZ4/530/
$("#salone").bind('mousemove', function (e) {
$(this).css({
backgroundPosition: e.pageX + 'px ' + e.pageY + 'px'
});
});
问题是,它不会从背景位置开始:中心当我移动鼠标的背景图片从鼠标的位置开始,并显示白色背景。 我希望它根据鼠标移动从中心移动到左/右。还要调整背景位置变化的速度(动画?)。
答
只是减去你想从开始位置:
backgroundPosition: (e.pageX-650) + 'px ' + (e.pageY-410) + 'px'
改变速度调整系数鼠标位置:
backgroundPosition: (e.pageX*2-650) + 'px ' + (e.pageY*2-410) + 'px'
是双快。
http://jsfiddle.net/KunZ4/538/
对于你可能只是把图片的路径,将其追加到一个无形的图像和获取宽度和高度的后台中心的计算。
var url = $('#myDiv').css('background-image').replace('url(', '').replace(')', '').replace("'", '').replace('"', '');
var bgImg = $('<img />');
bgImg.hide();
scope = this;
bgImg.bind('load', function()
{
scope.height = $(this).height();
scope.width = $(this).width();
});
$('#myDiv').append(bgImg);
bgImg.attr('src', url);
var centerX = scope.width/2;
var centerY = scope.height/2;
不,您可以使用centerX和centerY来居中您的图像。
是的,我已经使用暂时,但我敢肯定有一种方法来计算图像的中心,然后添加或从中减去像素。 – MultiformeIngegno 2014-11-25 17:19:15
好的速度!现在有一个函数来计算图像的中心(而不是手动设置数字开始)将是完美的 – MultiformeIngegno 2014-11-25 17:21:55
改编的答案。希望这对你有用。 欢呼声, – RodrigoDela 2014-11-25 17:31:52