jquery - Modernizer 特征检测

标签 jquery html css jquery-plugins modernizr

我必须使用 modernizer 来检测浏览器是否支持“cssscrollbar”属性,true 或 false。基于这个值,我必须做一些事情,比如添加插件和 CSS。

我正在使用下面这样的东西,我不知道:

var frag = document.createDocumentFragment();
for ( prop in Modernizr ) {
  var para = document.createElement('p');
    para.textContent = prop + ': ' + Modernizr[ prop ];
  frag.appendChild( para );
}

document.body.appendChild( frag );

检查 fiddle我指的是什么。

最佳答案

Modernizr.addTest('cssscrollbar', function() {

        // Tested Element
    var test = document.createElement('div'),

        // Fake body
        fake = false,
        root = document.body || (function () {
            fake = true;
            return document.documentElement.appendChild(document.createElement('body'));
        }()),

        property = 'scrollbar{width:0px;}';

    // Force scrollbar
    test.id = '__sb';
    test.style.overflow = 'scroll';
    test.style.width = '40px';

    // Apply scrollbar style for all vendors
    test.innerHTML = '&shy;<style>#'+Modernizr._prefixes.join(property+' #__sb::').split('#').slice(1).join('#')+property+'</style>';

    root.appendChild(test);

    // If css scrollbar is supported, than the scrollWidth should not be impacted
    var ret = test.scrollWidth == 40;

    // Cleaning
    document.body.removeChild(test);
    if (fake) {
        document.documentElement.removeChild(root);
    }
    return ret;
});

如果你添加这个,那么你将拥有对 modernizer 的 cssscrollbar 支持......

关于jquery - Modernizer 特征检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15564481/

相关文章:

javascript - 如何将 $.get 的结果传递给另一个函数的返回

来自.ajax调用的PHP文件未将数据插入数据库

javascript - 转到 mouseleave 上最后单击的元素

javascript - 使用不同模板时 Fancybox 关闭按钮不显示

javascript - AJAX/JQUERY 似乎无法删除数据

html - 上传到服务器时不显示背景图像

html - FTP 传输后带有双 "/"的 Firebug 请求

使用 POST 方法进行 javascript 页面重定向

html - 将相对定位的父 div 的高度扩展到绝对定位的子 div 的高度

css - 为什么不应用这种嵌套的 css 样式?