我有两个背景图片,我想用jQuery更改它。

对于#banner,它可以工作,但我现在不介绍如何为@media screen and (max-width: 1024px)编写代码

.banner {
  background: url(../images/640px.jpg) 0px 0px no-repeat;
}

@media screen and (max-width: 1024px) {
  .banner {
    background: url(../images/900px.jpg) 0px 0px no-repeat;
  }
}


var selectData = {

  "bmw": {

    "1": "316i",
    "100": "520i",
    "101": "740i",
    "image1": "images/640px.jpg",
    "image2": "images/900px.jpg",

  },

};

jQuery(document).ready(function($) {
  $(document).on('click', '.specialLink', function(event) {
    var radio2 = document.getElementById('radio2');
    if (radio2.checked == false) {
      radio2.checked = true;
      toggleRadio();
    }
    $(".regio").html($(this).text());
    event.preventDefault();
    var b = $(this),
      background_image = '';
    buttonId = b.attr('id'),
      selectSet = selectData[buttonId],
      selectField = $('#specialLink');
    selectField.empty();
    //To change the background image of website
    $("#banner").css('background-image', 'url("' + selectSet.image1 + '")');
    $("@media screen and (max-width: 1024px)").css('background-image', 'url("' + selectSet.image2 + '")');
    if (selectSet) {
      //Remove image index form selectSet
      $.each(selectSet, function(k, v) {
        if (typeof k === 'string' && k === 'image') {
          return true;
        }
        selectField.append($('<option>', {
          value: k,
          text: v
        }));
      });
    }
    return false;
  });
});

最佳答案

您可以使用jQuery (window).resize()函数,该函数将在调整浏览器窗口大小时触发。


  这是一个使用jQuery,javascript和css处理调整大小事件的示例。
  (如果您只是通过调整大小来设置样式(媒体查询),则最好的方法是CSS)
  http://jsfiddle.net/CoryDanielson/LAF4G/


将此代码用于所需的解决方案。

$(window).resize(function(){
    if ($(window).width() <= 1024){
        $('.banner').css('background-image', 'url(' + imageUrl + ')');
    }
});


希望这对您有所帮助。

关于javascript - 如何使用jQuery更改媒体查询CSS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55312285/

10-11 21:52