Всем привет! Есть скрипт, дающий возможность зажиманием мышки передвигаться( скролить блок), и рандомно распологая дочерние елементы (img) в этом блоке. Картинок будет много. Как расположить дочерние елементы рандомно, но с растоянием между ними? Проблема на картинках :
Так на данный момент
как добиться этого?
Вот разметка:
<style>
.dragscroll{
position:relative;
overflow: hidden;
width: 100%;
height: 100vh;
padding: 20px;
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: -o-grab;
cursor: grab;
color: #fff;
}
</style>
<div class="dragscroll">
<img src="image.jpg width="200px" height="auto" style="position:absolute;"></img>
<img src="image.jpg width="200px" height="auto" style="position:absolute;"></img>
<img src="image.jpg width="200px" height="auto" style="position:absolute;"></img>
<img src="image.jpg width="200px" height="auto" style="position:absolute;"></img>
<img src="image.jpg width="200px" height="auto" style="position:absolute;"></img>
<img src="image.jpg width="200px" height="auto" style="position:absolute;"></img>
<img src="image.jpg width="200px" height="auto" style="position:absolute;"></img>
<img src="image.jpg width="200px" height="auto" style="position:absolute;"></img>
<img src="image.jpg width="200px" height="auto" style="position:absolute;"></img>
<img src="image.jpg width="200px" height="auto" style="position:absolute;"></img>
<img src="image.jpg width="200px" height="auto" style="position:absolute;"></img>
<img src="image.jpg width="200px" height="auto" style="position:absolute;"></img>
</div>
И вот сам скрипт
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
define(['exports'], factory);
} else if (typeof exports !== 'undefined') {
factory(exports);
} else {
factory((root.dragscroll = {}));
}
}(this, function (exports) {
var _window = window;
var _document = document;
var mousemove = 'mousemove';
var mouseup = 'mouseup';
var mousedown = 'mousedown';
var EventListener = 'EventListener';
var addEventListener = 'add'+EventListener;
var removeEventListener = 'remove'+EventListener;
var newScrollX, newScrollY;
var dragged = [];
var reset = function(i, el) {
for (i = 0; i < dragged.length;) {
el = dragged[i++];
el = el.container || el;
el[removeEventListener](mousedown, el.md, 0);
_window[removeEventListener](mouseup, el.mu, 0);
_window[removeEventListener](mousemove, el.mm, 0);
}
// cloning into array since HTMLCollection is updated dynamically
dragged = [].slice.call(_document.getElementsByClassName('dragscroll'));
for (i = 0; i < dragged.length;) {
(function(el, lastClientX, lastClientY, pushed, scroller, cont){
(cont = el.container || el)[addEventListener](
mousedown,
cont.md = function(e) {
if (!el.hasAttribute('nochilddrag') ||
_document.elementFromPoint(
e.pageX, e.pageY
) == cont
) {
pushed = 1;
lastClientX = e.clientX;
lastClientY = e.clientY;
e.preventDefault();
}
}, 0
);
_window[addEventListener](
mouseup, cont.mu = function() {pushed = 0;}, 0
);
_window[addEventListener](
mousemove,
cont.mm = function(e) {
if (pushed) {
(scroller = el.scroller||el).scrollLeft -=
newScrollX = (- lastClientX + (lastClientX=e.clientX));
scroller.scrollTop -=
newScrollY = (- lastClientY + (lastClientY=e.clientY));
if (el == _document.body) {
(scroller = _document.documentElement).scrollLeft -= newScrollX;
scroller.scrollTop -= newScrollY;
}
}
}, 0
);
})(dragged[i++]);
}
}
if (_document.readyState == 'complete') {
reset();
} else {
_window[addEventListener]('load', reset, 0);
}
exports.reset = reset;
}));
$( document ).ready(function() {
$( '.dragscroll img' ).each(function() {
$holder = $(this).parent();
$divWidth = $holder.width();
$divHeight = $holder.height();
$(this).css({
'left': Math.floor( Math.random() * Number( $divWidth ) ),
'top' : Math.floor( Math.random() * Number( $divHeight ) )
});
})
});