我目前正在使用一个脚本,当鼠标悬停在图标上时会执行淡入淡出效果(它将它们从颜色变为黑色和白色)。由于悬停事件,我在iPad或iPhone上无法正常工作时遇到问题。
有没有什么方法可以将以下内容包装在一个不包含iPad,iPhone甚至是机器人设备的条件中?
<script>
$(document).ready(function() {
$("ul.gallery li").hover(function() { //On hover...
$(this).siblings().each(function () {
var thumbOver = $(this).find("img").attr("src"); //Get image url and assign it to 'thumbOver'
//Set a background image(thumbOver) on the <a> tag
$(this).find("a.thumb").css({'background' : 'url(' + thumbOver + ') no-repeat center bottom'});
//Fade the image to 0
$(this).find("span").stop(false,false).fadeTo('normal', 0 , function() {
$(this).hide() //Hide the image after fade
});
});
} ,
function() { //on hover out...
$(this).siblings().each(function () {
//Fade the image to 1
$(this).find("span").stop(false,false).fadeTo('normal', 1).show();
});
});
});
</script>
谢谢
答案 0 :(得分:3)
您可以使用navigator.platform
检查“iPad”:
// Is the user on an iPad?
var isIpad = navigator.platform.toLowerCase() === "ipad";
同样,您可以使用对象文字和in
运算符检查其他iDevices:
// Is the user on an iDevice?
var isIDevice = navigator.platform.toLowerCase() in {
"ipod": true,
"ipad": true,
"iphone": true
};
为了防止您的代码在这些条件下运行,您可以将您的设置逻辑保留在命名函数中,并在DOM-ready上有条件地执行它,例如:
<script type="text/javascript">
(function() {
// Setup routine
var ready = function() {
$("ul.gallery li").hover(function() { //On hover...
$(this).siblings().each(function () {
var thumbOver = $(this).find("img").attr("src"); //Get image url and assign it to 'thumbOver'
//Set a background image(thumbOver) on the <a> tag
$(this).find("a.thumb").css({'background' : 'url(' + thumbOver + ') no-repeat center bottom'});
//Fade the image to 0
$(this).find("span").stop(false,false).fadeTo('normal', 0 , function() {
$(this).hide() //Hide the image after fade
});
});
},
function() { //on hover out...
$(this).siblings().each(function () {
//Fade the image to 1
$(this).find("span").stop(false,false).fadeTo('normal', 1).show();
});
});
};
// Current platform
var platform = navigator.platform.toLowerCase();
// List of iDevice platforms
var iDevices = {
"ipod": true,
"ipad": true,
"iphone": true
};
/*
// OPTION 1:
// On DOM-ready, execute for everthing except iPad
$(function() {
if ( platform !== "ipad" ) {
ready();
}
});
*/
// OPTION 2
// Only execute if not an iDevice
$(function() {
if ( !(platform in iDevices) ) {
ready();
$(window).resize(function () {
viewportSize();
});
}
});
})();
老实说,我从来没有做过android检测,但应该有类似的方法。
希望有所帮助!欢呼声。