javascript - jQuery:基于光标位置的字体变化设置
问题描述
我想根据光标的位置转换可变字体。如果光标的x
位置为0px
,wght
则应为200
,如果光标位置在页面的右边框,wght
则应为800
。过渡必须是流畅的。
这是我的开始:
$(document).on("mouseover", function(e){
if(e.pageX <= 100)
{
$("div").css( "font-variation-settings", "'wght' 200" )
}
if(e.pageX >= 100)
{
$("div").css( "font-variation-settings", "'wght' 800" )
}
});
body {
margin: 0;
padding: 0;
width: 100vw;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
font-family: 'Muli', sans-serif;
font-size: 5vw;
font-variation-settings: 'wght' 400;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://fonts.googleapis.com/css2?family=Muli:wght@200..900&display=swap" rel="stylesheet">
<div>Weight based on cursor position</div>
谁能帮我?将非常感谢。:)
解决方案
尽可能流畅:P
$(document).on("mousemove", function(e) {
let factor = e.pageX / $(document).width();
let wght = 200 + 600 * factor;
$("div").css("font-variation-settings", "'wght' " + wght)
});
body {
margin: 0;
padding: 0;
width: 100vw;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
font-family: 'Muli', sans-serif;
font-size: 5vw;
font-variation-settings: 'wght' 400;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://fonts.googleapis.com/css2?family=Muli:wght@200..900&display=swap" rel="stylesheet">
<div>Weight based on cursor position</div>
更新:添加了一个延迟来优化它。
let enableHandler = true;
timer = window.setInterval(function() {
enableHandler = true;
}, 50);
$(document).on("mousemove", function(e) {
if (enableHandler) {
let factor = e.pageX / $(document).width();
let wght = 200 + 600 * factor;
$("div").css("font-variation-settings", "'wght' " + wght)
enableHandler = false;
}
});
body {
margin: 0;
padding: 0;
width: 100vw;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
font-family: 'Muli', sans-serif;
font-size: 5vw;
font-variation-settings: 'wght' 400;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://fonts.googleapis.com/css2?family=Muli:wght@200..900&display=swap" rel="stylesheet">
<div>Weight based on cursor position</div>
推荐阅读
- typescript - .d.ts 文件可以使用“import XXX”导入,但默认导出不存在
- c# - 在网站和 Windows 服务项目之间共享实体数据模型
- c# - 实例化后如何立即调用方法
- javascript - 在javascript中创建一个带有方法的类
- html - 卡内的 Bootstrap 4 表存在问题
- sql-server - SQL Server:使用交叉应用查找唯一用户
- android - 使用 Android NDK 时如何从 C 中抛出异常?
- python - 获取一个图像目录并调整目录中所有图像的大小
- docker - aws ecs ec2 与 jenkins 的持续部署
- react-native - 重新加载单选按钮显示保存的值