Есть такой код:
.content{
width: 800px;
height: 300px;
margin: 50px auto;
overflow: auto;
column-count: 4;
}
<div class="content">
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Doloremque blanditiis doloribus nihil consequuntur culpa modi sed minus tempore dolorum dolore quasi possimus quo porro labore, nisi, sequi earum, excepturi numquam!
Veniam earum odio accusantium! Sequi nam nobis ut assumenda? Aspernatur, veniam dolores reiciendis laboriosam architecto perspiciatis omnis similique atque, quasi, inventore voluptate fuga voluptas debitis maiores autem natus provident qui.
Voluptates, aspernatur a! Natus totam aliquam perferendis sapiente consequuntur inventore ipsam fugit dolorum ea reiciendis, tenetur velit soluta exercitationem molestiae et enim eum quasi omnis sunt quisquam excepturi. Earum, eveniet!
Exercitationem voluptatibus nemo mollitia non nobis veniam aut, consequatur praesentium. Aliquid sunt explicabo deleniti blanditiis. Iure ea voluptatem quaerat voluptas repellendus culpa quis dolores animi. Odio repudiandae aspernatur eos saepe!
Facilis repellat porro cumque maiores earum illo at ducimus cupiditate? Maxime architecto ut repudiandae eius velit magni cumque sapiente, exercitationem mollitia molestiae minima? Officia perspiciatis nisi adipisci cum corrupti cumque.
Rerum, aliquid sit. Maiores tenetur nostrum, eligendi dolor dicta consequuntur placeat eos quisquam optio aliquid quo facilis eius temporibus nulla natus hic architecto! Blanditiis vel fugiat corrupti! Quisquam, est quasi!
Accusamus necessitatibus, quibusdam, architecto voluptas, beatae harum corrupti saepe fugit ad rem ipsam voluptate amet nulla consequatur consectetur omnis! Reiciendis neque architecto accusantium excepturi debitis est fugit ullam soluta modi!
Soluta saepe quos tempore aliquam harum reprehenderit, amet numquam odit delectus cum nesciunt assumenda rerum, officia quibusdam non vitae fugiat laboriosam possimus in incidunt omnis. Amet autem quisquam nisi illum.
Quam temporibus neque et, animi repudiandae deserunt ea consectetur. Ducimus iste consectetur dolorem iure eius pariatur possimus, obcaecati porro. Rerum pariatur tempora ea ratione ullam quibusdam quaerat magni vero obcaecati.
Nemo, assumenda deleniti dolorem odio in quisquam accusantium voluptates fuga dicta velit totam cumque quis praesentium quidem id ipsum eum quas maxime laborum, ducimus quam. Molestias nobis maiores qui blanditiis.
</div>
Вариант 1 Есть хорошая либа на чистом JS - https://github.com/asvd/dragscroll/blob/master/dragscroll.js Подключили к проекту(или просто код на страницу добавьте) и добавили класс .dragscroll элементу, что должен прокручиваться левой кнопкой мыши. CDN - https://cdn.rawgit.com/asvd/dragscroll/master/dragscroll.js
/**
* @fileoverview dragscroll - scroll area by dragging
* @version 0.0.8
*
* @license MIT, see http://github.com/asvd/dragscroll
* @copyright 2015 asvd <heliosframework@gmail.com>
*/
(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;
}));
.content{
width: 800px;
height: 300px;
margin: 50px auto;
overflow: auto;
column-count: 4;
}
<div class="content dragscroll">
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Doloremque blanditiis doloribus nihil consequuntur culpa modi sed minus tempore dolorum dolore quasi possimus quo porro labore, nisi, sequi earum, excepturi numquam!
Veniam earum odio accusantium! Sequi nam nobis ut assumenda? Aspernatur, veniam dolores reiciendis laboriosam architecto perspiciatis omnis similique atque, quasi, inventore voluptate fuga voluptas debitis maiores autem natus provident qui.
Voluptates, aspernatur a! Natus totam aliquam perferendis sapiente consequuntur inventore ipsam fugit dolorum ea reiciendis, tenetur velit soluta exercitationem molestiae et enim eum quasi omnis sunt quisquam excepturi. Earum, eveniet!
Exercitationem voluptatibus nemo mollitia non nobis veniam aut, consequatur praesentium. Aliquid sunt explicabo deleniti blanditiis. Iure ea voluptatem quaerat voluptas repellendus culpa quis dolores animi. Odio repudiandae aspernatur eos saepe!
Facilis repellat porro cumque maiores earum illo at ducimus cupiditate? Maxime architecto ut repudiandae eius velit magni cumque sapiente, exercitationem mollitia molestiae minima? Officia perspiciatis nisi adipisci cum corrupti cumque.
Rerum, aliquid sit. Maiores tenetur nostrum, eligendi dolor dicta consequuntur placeat eos quisquam optio aliquid quo facilis eius temporibus nulla natus hic architecto! Blanditiis vel fugiat corrupti! Quisquam, est quasi!
Accusamus necessitatibus, quibusdam, architecto voluptas, beatae harum corrupti saepe fugit ad rem ipsam voluptate amet nulla consequatur consectetur omnis! Reiciendis neque architecto accusantium excepturi debitis est fugit ullam soluta modi!
Soluta saepe quos tempore aliquam harum reprehenderit, amet numquam odit delectus cum nesciunt assumenda rerum, officia quibusdam non vitae fugiat laboriosam possimus in incidunt omnis. Amet autem quisquam nisi illum.
Quam temporibus neque et, animi repudiandae deserunt ea consectetur. Ducimus iste consectetur dolorem iure eius pariatur possimus, obcaecati porro. Rerum pariatur tempora ea ratione ullam quibusdam quaerat magni vero obcaecati.
Nemo, assumenda deleniti dolorem odio in quisquam accusantium voluptates fuga dicta velit totam cumque quis praesentium quidem id ipsum eum quas maxime laborum, ducimus quam. Molestias nobis maiores qui blanditiis.
</div>
Вариант 2 Это я про перемотку колесиком.
let divScrollEnabled=document.querySelector('.content'),
wheel="wheel"||"mousewheel"||"MozMousePixelScroll",
scrollToMarg=e=>{
e.preventDefault();
((e.deltaY || e.detail || e.wheelDelta)>0)?
divScrollEnabled.scrollLeft+=100:
divScrollEnabled.scrollLeft-=100;
};
(divScrollEnabled.addEventListener)?
divScrollEnabled.addEventListener(wheel, scrollToMarg):
divScrollEnabled.attachEvent(wheel, scrollToMarg);
window.onunload=()=>divScrollEnabled.removeEventListener('mousewheel',scrollToMarg);
.content{
width: 800px;
height: 300px;
margin: 50px auto;
overflow: auto;
column-count: 4;
}
<div class="content">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum fermentum felis nec justo ultricies rhoncus. Ut dictum nisl sit amet maximus euismod. Cras ut orci euismod, rutrum lacus quis, aliquet orci. Fusce felis risus, porttitor dapibus neque ut, bibendum accumsan nibh. Morbi sollicitudin mi nec erat pretium consectetur. Suspendisse sed eros lorem. Nulla pretium risus eget nisl pulvinar, sit amet fermentum quam laoreet. Cras neque augue, sagittis at sollicitudin aliquam, fermentum ut orci. Nunc sagittis orci a viverra dapibus. Maecenas accumsan porttitor orci.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum fermentum felis nec justo ultricies rhoncus. Ut dictum nisl sit amet maximus euismod. Cras ut orci euismod, rutrum lacus quis, aliquet orci. Fusce felis risus, porttitor dapibus neque ut, bibendum accumsan nibh. Morbi sollicitudin mi nec erat pretium consectetur. Suspendisse sed eros lorem. Nulla pretium risus eget nisl pulvinar, sit amet fermentum quam laoreet. Cras neque augue, sagittis at sollicitudin aliquam, fermentum ut orci. Nunc sagittis orci a viverra dapibus. Maecenas accumsan porttitor orci.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum fermentum felis nec justo ultricies rhoncus. Ut dictum nisl sit amet maximus euismod. Cras ut orci euismod, rutrum lacus quis, aliquet orci. Fusce felis risus, porttitor dapibus neque ut, bibendum accumsan nibh. Morbi sollicitudin mi nec erat pretium consectetur. Suspendisse sed eros lorem. Nulla pretium risus eget nisl pulvinar, sit amet fermentum quam laoreet. Cras neque augue, sagittis at sollicitudin aliquam, fermentum ut orci. Nunc sagittis orci a viverra dapibus. Maecenas accumsan porttitor orci.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum fermentum felis nec justo ultricies rhoncus. Ut dictum nisl sit amet maximus euismod. Cras ut orci euismod, rutrum lacus quis, aliquet orci. Fusce felis risus, porttitor dapibus neque ut, bibendum accumsan nibh. Morbi sollicitudin mi nec erat pretium consectetur. Suspendisse sed eros lorem. Nulla pretium risus eget nisl pulvinar, sit amet fermentum quam laoreet. Cras neque augue, sagittis at sollicitudin aliquam, fermentum ut orci. Nunc sagittis orci a viverra dapibus. Maecenas accumsan porttitor orci. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum fermentum felis nec justo ultricies rhoncus. Ut dictum nisl sit amet maximus euismod. Cras ut orci euismod, rutrum lacus quis, aliquet orci. Fusce felis risus, porttitor dapibus neque ut, bibendum accumsan nibh. Morbi sollicitudin mi nec erat pretium consectetur. Suspendisse sed eros lorem. Nulla pretium risus eget nisl pulvinar, sit amet fermentum quam laoreet. Cras neque augue, sagittis at sollicitudin aliquam, fermentum ut orci. Nunc sagittis orci a viverra dapibus. Maecenas accumsan porttitor orci.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum fermentum felis nec justo ultricies rhoncus. Ut dictum nisl sit amet maximus euismod. Cras ut orci euismod, rutrum lacus quis, aliquet orci. Fusce felis risus, porttitor dapibus neque ut, bibendum accumsan nibh. Morbi sollicitudin mi nec erat pretium consectetur. Suspendisse sed eros lorem. Nulla pretium risus eget nisl pulvinar, sit amet fermentum quam laoreet. Cras neque augue, sagittis at sollicitudin aliquam, fermentum ut orci. Nunc sagittis orci a viverra dapibus. Maecenas accumsan porttitor orci.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum fermentum felis nec justo ultricies rhoncus. Ut dictum nisl sit amet maximus euismod. Cras ut orci euismod, rutrum lacus quis, aliquet orci. Fusce felis risus, porttitor dapibus neque ut, bibendum accumsan nibh. Morbi sollicitudin mi nec erat pretium consectetur. Suspendisse sed eros lorem. Nulla pretium risus eget nisl pulvinar, sit amet fermentum quam laoreet. Cras neque augue, sagittis at sollicitudin aliquam, fermentum ut orci. Nunc sagittis orci a viverra dapibus. Maecenas accumsan porttitor orci.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum fermentum felis nec justo ultricies rhoncus. Ut dictum nisl sit amet maximus euismod. Cras ut orci euismod, rutrum lacus quis, aliquet orci. Fusce felis risus, porttitor dapibus neque ut, bibendum accumsan nibh. Morbi sollicitudin mi nec erat pretium consectetur. Suspendisse sed eros lorem. Nulla pretium risus eget nisl pulvinar, sit amet fermentum quam laoreet. Cras neque augue, sagittis at sollicitudin aliquam, fermentum ut orci. Nunc sagittis orci a viverra dapibus. Maecenas accumsan porttitor orci. </div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеется список адресов, например два адреса и две метки на карте, соответствующие этим адресамПри клике на адрес, карта перемещается на заданные...
Задался идеей написать звездное(анимированое) небо на canvas, по идее все получилось
На сайте установлена форма заявки, в которой успехом отправления формы считается открытие окна (Заявка успешно отправлена)
Я не очень силен в javascript, подскажите как зафиксировать выпадающее меню, чтобы оно было всегда активно? Сайт http://1285021sn312395