Ich versuche, eine Seite zu erstellen, die diesen Effekt hat:bewegter Hintergrund Maske mit mousemove- (jQuery, CSS)
.
Ich hatte es richtig, bis ich versuchte, einen Hintergrund zu implementieren. Ich bin es gewohnt, Photoshop (mit Schichten und Masken), aber leider HTML hat keine Masken.
Hier ist was ich habe.
jQuery:
$(document).ready(function() {
// calculate screen size
var pageHeight = $(window).height();
var pageWidth = $(window).width();
$(window).on('mousemove', function(event) {
// horizontal offset
// 100% = completely dependable on mouse position
var differenceFactor = 5;
var mouse_x = event.pageX + 1
var mouse_xPercentage = 100/(pageWidth/mouse_x);
var transformX = (mouse_x * -1)/(100/differenceFactor) - (pageWidth);
var actualTransform = transformX;
// vertical offset
// base degrees
var baseDeg = -23;
// 100% = completely rotating
var rotateFactor = 10;
var mouse_y = event.pageY + 1;
var mouse_yPercentage = 100/(pageHeight/mouse_y);
var deg = baseDeg + (((180 * (mouse_yPercentage/100)) - 90) * (rotateFactor/100));
$('.article-bg').css({
'-webkit-transform': 'translate(' + transformX + 'px, 0) scale(2) rotate(' + deg + 'deg)',
'transform': 'translate(' + transformX + 'px, 0) scale(2) rotate(' + deg + 'deg)'
});
$('.actual-bg').css({
'-webkit-transform': 'translate(' + 0 + 'px, 0) rotate(' + (-deg) + 'deg)',
'transform': 'translate(' + 0 + 'px, 0) rotate(' + (-deg) + 'deg)'
});
})
.on('resize', function() {
var pageHeight = $(this).height();
var pageWidth = $(this).width();
});
});
Ich hoffe, dass jemand diese Herausforderung abschließen können!
Ich kann diese mit 'SVG mask' tun :) –
Sohaib Mohammed, lieben das Ergebnis zu sehen! –