【问题标题】:Randomize images to display on homepage background随机化图像以显示在主页背景上
【发布时间】:2018-09-21 22:44:36
【问题描述】:

如何在每次有人访问主页时更改背景图片?当前的背景图像是在 CSS 中控制的,而不是在 HTML 中,因此我们将不胜感激。

查看单个背景图片的 CSS:

 header .container-fluid
 {
 background-image: url("../../images/The Connection at St-Martin-in-the- 
 Fields/Carousel image - med res The Connection -1067838.jpg");
 background-repeat: no-repeat;
 background-size: cover;
 height: 100vh;
 padding-top: 36px;
 }

【问题讨论】:

标签: jquery html css image background-image


【解决方案1】:

只需在页面中添加一点 JavaScript 即可更改页面加载时的图像:

// make a list of images to select from
var images = ['cat.jpg', 'dog.jpg'];

// find the element whose background image you want to change
var elem = document.querySelector('header .container-fluid');

// get the index position of the image in `images` to be displayed
var index = Math.floor(Math.random() * images.length);

// set the background image property
elem.style.backgroundImage = 'url(' + images[index] + ')';

JavaScript 设置的背景图片会优先于 CSS 样式,所以会显示 JavaScript 设置的图片。

【讨论】:

  • floor函数比parseInt更合适
  • @duhaime 对此表示感谢,我尝试添加它,但当我将自己的图像放在代码的相关区域时,似乎没有任何改变
  • @JustJoel 确保将上面的代码发布在<script></script> 之间,并确保将完整的脚本块作为页面上</body> 之前的最后一个块。因此,您的 HTML 文档的结尾应类似于 </script></body></html>。这将确保 JS 代码是在您的页面上操作的最后一件事,并确保当 JS 代码尝试查找相关元素时,上面的 JS 代码选择的 HTML 存在。
  • 谢谢,最后一件事,我将如何更改 js 代码上的图像目录?
  • @JustJoel 最简单的方法是让您的图像可用于您的服务器。因此,如果您在http://localhost:5000 上托管并且该服务器在C:\App 中运行,请将您的图像添加到C:\App\images。然后您应该能够定义您的图像列表,例如var images = ["images/cat.jpg", "images/dog.jpg"];,希望对您有所帮助!
猜你喜欢
  • 2019-05-16
  • 1970-01-01
  • 2015-06-08
  • 2017-09-02
  • 1970-01-01
  • 2021-03-30
  • 1970-01-01
  • 2011-01-16
  • 2012-02-08
相关资源
最近更新 更多