图像的随机位置

2024-01-06

我找到了一个可以随机定位 div / 图像的脚本。然而,它并没有完全按照我想要/需要的方式工作。

每个图像都加载在一个 div 中(我猜这并不理想)。我有大约 30 张图片。

但它们加载得不好并且var posy = (Math.random() * ($(document).height() - 0)).toFixed();也不太好用。图像主要加载在顶部(我认为博客中的图像不算数,因此它会获得没有图像的高度?)

所以我想要的是:更好地加载它们 随机化它们,以便它们也到达页面底部

var circlePosition = document.getElementsByClassName('circle');
console.log(circlePosition);

function position() {
  for (var i = 0; i < circlePosition.length; i++ ) {
    //give circle a random position
    var posx = (Math.random() * ($(document).width() - 0)).toFixed();
    var posy = (Math.random() * ($(document).height() - 0)).toFixed();



    //apply position to circle
    $(circlePosition[i]).css({
      'position':'absolute',
      'left':posx+'px',
      'top':posy+'px',
    })
  } 
} //end function position

var circleTotal = circlePosition.length;

$('.circle').click(function() {
  $(this).fadeOut();
  circleTotal = circleTotal - 1;
  console.log(circleTotal);

  if(circleTotal == 0) {
    position()
    $('.circle').fadeIn();
  }

});

position();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src="//placehold.it/1x5000"> <!-- Placeholder image to show issue -->
<div class="circle">
  <img src="http://static.tumblr.com/tensqk8/k8anq0438/01.png">
</div>
<div class="circle">
  <img src="http://static.tumblr.com/tensqk8/k8anq0438/01.png">
</div>

一个干净、可读且不依赖 jQuery 的解决方案可能是这样的。它通过定位图像本身来避免不必要地将图像包装在 div 中。它包含一个隐藏元素,作为一种“穷人的”影子 DOM http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom/.

http://jsfiddle.net/sean9999/yv9otwr7/9/ http://jsfiddle.net/sean9999/yv9otwr7/9/

;(function(window,document,undefined){
    "use strict";
        var init = function(){    
            var canvas = document.querySelector('#x');
            var icon_template = document.querySelector('#template');
            var icon_width = 40;
            var icon_height = 30;
            var the_images = [
                'http://static.tumblr.com/tensqk8/k8anq0438/01.png',
                'http://static.tumblr.com/tensqk8/rYanq05el/04.png',
                'http://static.tumblr.com/tensqk8/SYknq05py/05.png',
                'http://static.tumblr.com/tensqk8/s7inq057d/03.png'
            ];
            var pickRandomImage = function(){
                var i = Math.floor( Math.random() * the_images.length );
                return the_images[i];
            };
            var total_number_of_images = 10;
            var max_height = canvas.offsetHeight - icon_height;
            var max_width = canvas.offsetWidth - icon_width;
            var randomCoordinate = function(){
                var r = [];
                var x = Math.floor( Math.random() * max_width );
                var y = Math.floor( Math.random() * max_height );
                r = [x,y];
                return r;
            };
            var createImage = function(){
                var node = icon_template.cloneNode(true);
                var xy = randomCoordinate();
                node.removeAttribute('id');
                node.removeAttribute('hidden');
                node.style.top = xy[1] + 'px';
                node.style.left = xy[0] + 'px';
                node.setAttribute('src',pickRandomImage());
                canvas.appendChild(node);
            };
            for (var i=0;i<total_number_of_images;i++){
                createImage();
            };
        };
       window.addEventListener('load',init);
})(window,document);
body {
    background-color: #fed;
}

#x {
    border: 3px solid gray;
    background-color: white;
    height: 400px;
    position: relative;
}

#x .icon {
    position: absolute;
    z-index: 2;
}
<h1>Randomly distributed images</h1>

<div id="x"></div>

<img src="#" class="icon" hidden="hidden" id="template" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像的随机位置 的相关文章

随机推荐

  • 仅 Tar 目录结构

    我想复制不包括文件的目录结构 tar 中是否有任何选项可以忽略所有文件并仅递归复制目录 您可以使用 find 来获取目录 然后将它们打包 find type d print0 xargs 0 tar cf dirstructure tar
  • 监控应用程序电量使用情况

    有没有办法以编程方式访问settings gt about phone gt battery usage东西 我们想监控我们的应用程序使用了多少电量 有没有办法以编程方式访问设置 gt 关于手机 gt 电池使用情况 唉 不 我们想监控我们的
  • 如何获得显示器正确的物理尺寸?

    如何获得显示器的尺寸 以厘米或英寸为单位 此代码并不总是正确工作 HDC hdc CreateDC T DISPLAY dd DeviceName NULL NULL int width GetDeviceCaps hdc HORZSIZE
  • 如何构造指定精度和小数位数的 SqlDecimal 数据类型的实例

    MSDN http msdn microsoft com en us library 46taf6xh aspx有关于如何构造 SqlDecimal 数据类型的新实例的文档 其中包括指定只能在构造时设置的精度和小数位数 这是一个有效的示例
  • phploc输出解释

    如果我跑phploc针对我的 PHP 项目 开源 之一 我看到了这个输出 phploc 1 6 4 by Sebastian Bergmann Directories 3 Files 33 Lines of Code LOC 2358 Cy
  • Laravel 5.3 Passport 路由正在使用 Web 中间件

    Laravel 5 3 Passport 组件看起来很酷 但我对它有一些困惑 在文档中 Passport 位于 API 身份验证下 当设置 config auth php 时 它将更改驱动程序为守卫 api 的 passport Larav
  • 无法找到已弃用的 RAILS_ROOT 的使用位置

    当我加载导轨时 rails s 终端中显示的第一行是 DEPRECATION WARNING RAILS ROOT is deprecated Please use Rails root to s called from Users x S
  • 如何使用 plt.imshow 和 torchvision.utils.make_grid 在 PyTorch 中生成和显示图像网格?

    我试图了解 torchvision 如何与 matplotlib 交互以生成图像网格 生成图像并迭代显示它们很容易 import torch import torchvision import matplotlib pyplot as pl
  • PHP:将整数转换为 int - 出现错误

    我知道 PHP 中的 int 和 integer 之间没有太大区别 如果有的话 我一定是错的 我将一个整数值传递给一个仅对该值具有 int 的函数 就像这样 new gt setPersonId int newPersonId Have t
  • 线程“main”中的异常 javax.xml.bind.PropertyException:名称:eclipselink.media-type 值:application/json

    我正在尝试遵循位于的示例here https stackoverflow com questions 14734741 converting json to xml and vice versa using jackson api and
  • Makefile、模式规则和目录

    我想为编译器编写一个 gmake makefile 它与 gcc 不同 将所有输出文件放入特定目录中 不幸的是 这种行为无法改变 我的来源位于多个目录中 如何编写一个模式规则来编译源代码 好吧 这有点不清楚 这是一个例子 我的来源看起来可能
  • Python,Enum 类型有什么用? [复制]

    这个问题在这里已经有答案了 在Python 3 4中 我们在标准库中得到了一个Enum lib enum 我们可以获得一个向后移植enum适用于 Python 2 4 至 2 7 甚至 3 1 至 3 3 enum34 https pypi
  • Pytest - 访问 class_method 上的 session_scope 固定装置

    我正在使用 celery 固定装置来测试项目上的几个任务 我想知道是否有一种方法可以访问类方法内的会话范围固定装置 默认情况下 芹菜固定装置是会话范围的 引用 pytest mark usefixture celery worker cla
  • 将带有空格的字符串传递给javascript

    我正在尝试将带有空格的 php 定义的字符串传递给 javascript 函数 以便我可以附加到查询字符串 然而 该函数仅在没有空格时才起作用 甚至在有空格时也不会执行 通过使用alert 进行测试 有没有一种方法可以将带有空格的字符串传递
  • 位操作将多个值存储在一个 int C++ 中

    我需要帮助完成一项我似乎无法弄清楚的编程实验室作业 问题是 允许用户输入 4 个整数值 全部在 0 到 15 之间 含 0 和 15 将这 4 个值存储到名为 packit 的单个 32 位整数中 允许用户选择他们希望从 packit 恢复
  • 防止重复图像保存到 SD 卡

    我有一个形成多行的列表活动应用程序 每行打开一个包含视图的活动 其中一个是一个按钮 单击时打开无限图库类 图像存储在应用程序内的 RES gt 可绘制文件夹中 每个图像下面都有按钮 按下时会将图像保存到 SD card 目录中有一个名为 s
  • 如何将单位包与 rmarkdown 一起用于 pdf 文档

    我在 rmarkdown 文档中使用units 包来输出pdf 然而 这些单元既不能作为内联代码运行 也不能作为代码块运行 是否可以使用带有 rmarkdown 的单位 RStudio 中 rmarkdown 文档的 MWE title U
  • 创建一系列 NSTextContainer 时,如何根据文本内容指定容器分隔符?

    我正在创建一系列 NSTextContainer 来保存 HTML 资源中的文本 我可以将 HTML 添加到属性字符串 将其分配给 NSTextStorage 和 NSLayoutManager 并创建一系列 NSTextContainer
  • 如何使用 Application Insight 的持久性通道防止丢失遥测事件?

    我已将 Microsoft Application Insights 集成到我的 Windows 窗体应用程序中 在文件中有关 Windows 桌面应用程序 服务和辅助角色的应用程序见解 https github com Azure azu
  • 图像的随机位置

    我找到了一个可以随机定位 div 图像的脚本 然而 它并没有完全按照我想要 需要的方式工作 每个图像都加载在一个 div 中 我猜这并不理想 我有大约 30 张图片 但它们加载得不好并且var posy Math random docume