javascript - 如何通过 javascript 更改背景重复和背景大小

标签 javascript jquery html css background

我目前有这个,它对我有用:

<script type='text/javascript'>
            $(function () {
                var body = $('body');
                var backgrounds = [
                  'url(http://localhost:12448/css/images/back1.jpg) no-repeat',
                  'url(http://localhost:12448/css/images/back2.jpg) no-repeat'];
                var current = 0;

                function nextBackground() {
                    body.css(
                        'background',
                    backgrounds[current = ++current % backgrounds.length]);

                    setTimeout(nextBackground, 5000);
                }
                setTimeout(nextBackground, 5000);
                body.css('background', backgrounds[0]);               
            });
</script>

我还需要在我的 javascript 中实现这部分 css 代码,这样我就可以获得动态变化的背景和相同的 css 设置:

body
    {
        background-image:           url('images/overlay.png'),      url('images/bg.jpg');
        background-repeat:          repeat,                         no-repeat;
        background-size:            auto,                           100% 100%;
    }

谁能帮我解决这个问题?

最佳答案

解决方案:

这里的主要问题是您正在设置 background 属性,它会覆盖所有 -size-repeat-image 属性。相反,仅更改 background-image 属性。

这将需要更改您的网址,因为您已将 no-repeat 附加到它们的末尾。


一些语法上的良好做法:

  1. 不要在 jQuery 就绪 block 中定义函数
  2. 将您的相关变量放在 jQuery block 之外,以便它们是全局的并且可以在函数中使用。

var body = $('body');
var backgrounds = [
    'url(http://fineprintnyc.com/images/blog/history-of-logos/google/google-logo.png)',
    'url(http://www.logospike.com/wp-content/uploads/2014/11/Google_logo-8.jpg)'
  ];
var current = 0;

$(function() {

  setTimeout(nextBackground, 5000);
  body.css('background-image', backgrounds[0]);
});

function nextBackground() {
  body.css(
    'background-image',
    backgrounds[current = ++current % backgrounds.length]);

  setTimeout(nextBackground, 5000);
}
html{
  margin: 0;
  height: 100%;
}

body {
  background-image: url('images/overlay.png'), url('images/bg.jpg');
  background-repeat: repeat, no-repeat;
  background-size: 100% 100%;
  height: 100%;
  margin: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

关于javascript - 如何通过 javascript 更改背景重复和背景大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29733029/

相关文章:

javascript - 当选中单选按钮时,重定向到第二页并通过检查是否单击单选按钮来隐藏第二页中的某些 html 元素

javascript - jQuery 图片幻灯片不工作?

javascript - jQuery 动画被覆盖

JavaScript 忽略多维关联数组键/值 - 这里出了什么问题?

jquery - 使用 Bootstrap 面板类的正确方法?

javascript - 如何通过react在express上向mailchimp发送post请求

javascript - 获取 webpack bundle 中包含的主要库/模块的版本

javascript - Meteor Blaze 访问 Template.onCreated 中的 Template.contentBlock

html - 悬停和列表上的下拉菜单

javascript - 点击标签不勾选ie8/9中的单选框