我在我的网站上有一个自定义光标,我想在触摸设备(手机/平板电脑)上隐藏它。我已经成功地做到了这一点,但当你访问网站的一瞬间,光标出现在左上角,然后被隐藏。有什么方法可以阻止它的显示吗?
这是im用于删除触摸设备上光标id的代码。
jQuery(document).ready(function($) {
{
if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone/i.test(navigator.userAgent)) {
$('#custom-cursor').remove();
}
}
});
jQuery(document).ready(function($) {
let cursor = document.querySelector('#custom-cursor');
document.addEventListener('mousemove', evt => {
let { clientX: x, clientY: y } = evt;
let scale = 1;
if (evt.target.matches('a,span,[onclick],img,video,i')) {
cursor.classList.add('active');
scale = 0.5;
} else {
cursor.classList.remove('active');
}
cursor.style.transform = `translate(${x}px, ${y}px) scale(${scale})`;
});
});
* {
cursor: none;
}
# custom-cursor {
position: fixed;
width: 20px; height: 20px;
top: -10px;
left: -10px;
border: 2px solid black;
border-radius: 50%;
opacity: 1;
background-color: #fb4d98;
pointer-events: none;
z-index: 99999999;
transition:
transform ease-out 0.15s,
border 0.5s,
opacity 0.5s,
background-color 0.5s;
}
# custom-cursor.active {
opacity: 0.5;
background-color: #000;
border: 2px solid #fb4d98;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="custom-cursor"></div>
1条答案
按热度按时间iyr7buue1#
如果看不到更多的代码,就不可能绝对确定,但是从问题中的信息来看,整个页面似乎是在移除光标之前加载的。
您可以通过多种方式解决这一问题,例如,在初始html中不包含游标元素,而是在需要时在加载时添加它。
或者,您可以保持初始html不变,但将光标设置为在css中显示:无。然后,如果不删除光标,则onload js会将style.display设置为block。
更新:现在我们已经看到了更多的代码,这里有一个代码片段,展示了第二个方法(游标)是如何使用的
display: none
在加载页面之前)可以实现: