Javascript 如何替换背景附件:固定在手机上?

Javascript 如何替换背景附件:固定在手机上?,javascript,jquery,html,css,background-attachment,Javascript,Jquery,Html,Css,Background Attachment,在我的网站上,我有多个部分提供了背景上的“视差”风格效果,这在许多移动平台上都是禁用的 我想使用一些jQuery或javascript来替换“后台附件:固定”样式的所有实例 我并不热衷于手动更新每个位置(这是一个庞大的项目),我很高兴失去移动设备上的视差效应,转而使用背景尺寸:封面 没有发布任何代码,因为我不确定从何处开始。您可以这样做 if (!window.matchMedia("(min-width: 800px)").matches) { var items = docume

在我的网站上,我有多个部分提供了背景上的“视差”风格效果,这在许多移动平台上都是禁用的

我想使用一些jQuery或javascript来替换
“后台附件:固定”样式的所有实例

我并不热衷于手动更新每个位置(这是一个庞大的项目),我很高兴失去移动设备上的视差效应,转而使用
背景尺寸:封面


没有发布任何代码,因为我不确定从何处开始。

您可以这样做

if (!window.matchMedia("(min-width: 800px)").matches) {  
    var items = document.getElementsByClassName("some_class");
    for (var i = 0; i < items.length; ++i) {
      var item = items[i];
      if (item.style.backgroundAttachment == "fixed") {
          item.style.backgroundAttachment = "scroll";
      }
    }
}
如果(!window.matchMedia(((最小宽度:800px)”).matches){
var items=document.getElementsByClassName(“某些类”);
对于(变量i=0;i

我还没有测试过这个,我怀疑它不会解决您的问题,因为您没有一个类名。您还可以在所有
div
s或其他对象上运行它。

如果所有这些元素都共享相同的类名,例如
bg
,那么它可能是这样的:

JS:-我忘记了纯javascript中的for循环

jQuery:

  • 请注意,
    isMobile
    可能是您根据
    userAgent
    或窗口宽度触发的移动变量
    true
    • 下面的片段

      //查找所有元素
      var elements=document.body.querySelectorAll('*');
      //循环遍历所有元素
      
      对于(var i=0;我是否愿意使用css媒体查询来禁用基于屏幕大小的效果?我愿意,但要做到这一点,我需要为每个可能的变化创建一个媒体查询-整个项目中有100多个。我认为JS是禁用效果的单行方法。
      if(isMobile) {
          var backgrounds = document.getElementsByClassName('bg');
      
          for(var i in backgrounds){
              backgrounds[i].style.backgroundAttachment = 'scroll';
          }
      }
      
      if(isMobile) {
          $('.bg').css({'background-attachment':'scroll'});
      }