【发布时间】:2017-04-26 01:25:41
【问题描述】:
我最初从这里获取了一些信息并对其进行了扩展:onextrapixel.com/examples/interactive-background/index4.html
我改为合并图像以在页面上随鼠标位置移动,但是似乎存在一个问题,即顶部“框”会切断一些悬停的图像。您可以在示例页面 here
上看到它的实际效果我的 CSS:
.top-image {
background:url('http://i.imgur.com/wZRaMrB.png');
position:absolute ;
top:400px;
width:100%;
z-index:0;
height:100%;
background-repeat: no-repeat;
}
我的js:
$(document).ready(function() {
var movementStrength = 25;
var height = movementStrength / $(window).height();
var width = movementStrength / $(window).width();
$("body").mousemove(function(e){
var pageX = e.pageX - ($(window).width() / 2);
var pageY = e.pageY - ($(window).height() / 2);
var newvalueX = width * pageX * -1 - 25;
var newvalueY = height * pageY * -1 - 50;
$('.top-image').css("background-position", newvalueX+"px "+newvalueY+"px");
});
});
我也希望在页面右侧重复此操作。
在 cmets 中提出一些建议后,这里是 jsfiddle https://jsfiddle.net/yx1w8ysr/#&togetherjs=D4Q1xTfcaO
【问题讨论】:
-
看来您可以尝试将
background-size设置为contain -
@KingKing 我仍然注意到顶部被覆盖了,它使图像的大小变成了 2 倍,但我非常感谢您的帮助!还有其他想法吗?
-
如果您提供一个简单的小提琴来演示问题并帮助其他人在它按您预期的那样工作之前尝试编辑/进行更改会更好。
-
顺便说一句:
background-size: contain应该使渲染的图像完美地位于元素的框内。如果还盖着,这里肯定有什么奇怪的地方。关于尺寸,当然是你元素的尺寸。只需将固定设置的大小减小到您想要的值即可。 -
@KingKing jsfiddle.net/yx1w8ysr/#&togetherjs=D4Q1xTfcaO 感谢您的帮助和建议!我同意发生了一些古怪的事情,我认为它隐藏在 Java 中,我还不太了解这种语言
标签: javascript jquery html css hover