javascript - 使用鼠标移动将具有位置的子级调整为父级 - Jquery
问题描述
我是 javascript 的初学者,我尝试用 js 编写我的第一页(这里是用 Jquery)。我绝望地尝试将鼠标移动到我的“横幅”部分,包含在具有绝对子级(具有顶部和左侧位置)的父级中。我成功地获得了正确的视差效果,但不幸的是,孩子们不会调整到他们的父母。这是唯一适用于我的情况但不适合父母的代码,我不知道为什么(但是,它适用于这个例子......): https ://jsfiddle.net/c5yke2on/3/
这是我的 :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" >
<head>
</head>
<body>
<div id="content" class="site-content" >
<div id="intro" class="normag">
<div class="background_wrapper" id="background-intro" >
<div id="pink"></div>
<div id="yellow"></div>
<div class="letter_container">
<div class="bg_letter" id="w" ></div>
<div class="bg_letter" id="p" ></div>
</div>
</div>
<div id="titre" class="antic titles">
<div class="title_top"><div class="rising_line">Working</div></div>
<div class="title_top"><div class="rising_line">Promesse</div></div>
<div class="bar" style="width:43px;top:80px;"><div class="rising_bar"></div></div>
<div class="title_top marg_left_55"><div class="rising_line">les</div></div>
<div class="title_top marg_left_55"><div class="rising_line">mutations</div></div>
<div class="title_top marg_left_55"><div class="rising_line ">du travail</div></div>
<div class="bar marg_left_55" style="width:172px;top:168px;"><div class="rising_bar"></div></div>
</div>
<div id="signature" class="titles">
<div class="bar" style="width:43px;" ><div class="rising_bar"></div></div>
<div id="decal_signature">
<div class="title_top got_light"><div class="rising_line">10 <span class="exposant">e</span></div></div>
<div class="title_top got_light"><div class="rising_line">Biennale</div></div>
<div class="title_top got_light"><div class="rising_line">Internationale</div></div>
<div class="title_top got_med"><div class="rising_line">Design</div></div>
<div class="title_top got_med"><div class="rising_line">Saint-Etienne</div></div>
</div>
</div>
</div>
</div>
<!-- -->
</body>
</html>
我的 JS:
$(document).ready(function($) {
// ----- Parallax Effect ------- //
var titre = document.getElementById('titre');
var signature = document.getElementById('signature');
titre.homePos = { x: titre.offsetLeft, y: titre.offsetTop };
signature.homePos = { x: signature.offsetLeft, y: signature.offsetTop };
$('#intro').mousemove(function (e) {
parallax(e, document.getElementById('titre'), 20);
parallax(e, document.getElementById('signature'), 30);
});
});
// ----- Parallax Function ------- //
function parallax(e, target, layer) {
var x = target.homePos.x - (e.pageX - target.homePos.x) / layer;
var y = target.homePos.y - (e.pageY - target.homePos.y) / layer;
$(target).offset({ top: y ,left : x });
};
// -- //
$(window).resize(function() {
parallax();
});
我做了一个 Jsfiddle 来帮助你理解我的问题 https://jsfiddle.net/nota2k/0jr6ps5w/
我很难理解如何计算:宽度父级 - 每个孩子的左侧/位置或顶部/位置。也许我想学得太快……!
如果有人能解决我的问题,顺便解释一下计算是如何工作的,那就太好了!
谢谢,
解决方案
推荐阅读
- c - 如何获取磁盘的 INODE 扇区号。C、Linux?
- kubernetes - Kubernetes - kubectl 或 istioctl 列出所有内部 dns
- vba - Powerpoint VBA 插入图像并更改大小
- uwp - 桌面桥应用程序启动和本地化问题
- php - pdf2text 转换器插件返回不可读的格式
- matlab - 删除图形基元的 MATLAB 子类
- ios - 视频通话开始时在后台线程上调用的 UI API
- ionic3 - ionic3 刷新页面,报如下错误
- react-native - 如何使用 Expo.Facebook 注销
- cordova - (离子)使用 Cordova/Phonegap 在受密码保护的 NFC 标签上写字?