Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   mousedown - HELP (https://javascript.ru/forum/dom-window/78251-mousedown-help.html)

Андрей812 15.08.2019 20:27

mousedown - HELP
 
Подскажите, как сделать чтобы при удержании левой кнопки мыши не происходил клик по ссылки. А если кликнуть по ссылке был переход.
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Скроллинг мышью</title>
<style type="text/css">
.scroll 
{   position:absolute;
    top:10px;
    left:100px;
	height: 100px;
	overflow-x: auto;
	width: 200px;
       cursor: all-scroll;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script type="text/javascript">
    window.onload = function () {
        var scr = $(".scroll");
        scr.mousedown(function () {
            var startX = this.scrollLeft + event.pageX;
            var startY = this.scrollTop + event.pageY;
            scr.mousemove(function () {
                this.scrollLeft = startX - event.pageX;
                this.scrollTop = startY - event.pageY;
                return false;
            });
        });
        $(window).mouseup(function () {
            scr.off("mousemove"); 
        });
    }
</script>

</head>
<body>
<div class="scroll">
  <a href="#"><img src="1.jpg"/></a>
  <a href="#"><img src="2.jpg"/></a>
</div>
</body>
</html>

рони 15.08.2019 21:23

Андрей812,
scr.mousedown(function (event) {
            if(event.which == 3) {
                 event.stopPropagation();
                 //....
            }

Андрей812 16.08.2019 00:08

Перестало работать перемещение картинок удержанием левой кнопки мыши

<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Скроллинг мышью</title>
<style type="text/css">
.scroll 
{   position:absolute;
    top:10px;
    left:100px;
	height: 100px;
	overflow-x: auto;
	width: 200px;
       cursor: all-scroll;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script type="text/javascript">
    window.onload = function () {
        var scr = $(".scroll");
        scr.mousedown(function (event) {
	    if(event.which == 3) {
            event.stopPropagation();
            var startX = this.scrollLeft + event.pageX;
            var startY = this.scrollTop + event.pageY;
            scr.mousemove(function () {
                this.scrollLeft = startX - event.pageX;
                this.scrollTop = startY - event.pageY;
                return false;
            });
           }
        });
        $(window).mouseup(function () {
            scr.off("mousemove"); 
        });
    }
</script>

</head>
<body>
<div class="scroll">
  <a href="#"><img src="https://emn178.github.io/jquery-lazyload-any/samples/images/images/batman.png"/></a>
  <a href="#"><img src="https://emn178.github.io/jquery-lazyload-any/samples/images/images/batman.png"/></a>
</div>
</body>
</html>

рони 16.08.2019 00:45

Андрей812,
левую с правой спутал

рони 16.08.2019 01:00

Андрей812,
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Скроллинг мышью</title>
<style type="text/css">
.scroll
{   position:absolute;
    top:10px;
    left:100px;
	height: 100px;
	overflow-x: auto;
	width: 200px;
    cursor: all-scroll;
}

body{
    position: relative;
}

</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script type="text/javascript">
    window.onload = function () {
        var scr = $(".scroll"), move;
        scr.mousedown(function (event) {
            window.setTimeout(function() {
               move = true;
            },250);
            var startX = this.scrollLeft + event.pageX;
            var startY = this.scrollTop + event.pageY;
            scr.mousemove(function (event) {
                event.preventDefault();
                this.scrollLeft = startX - event.pageX;
                this.scrollTop = startY - event.pageY;
            });

        });
        scr.click(function(event) {
              if(move) {
               event.preventDefault();
              };
            });

        $(window).mouseup(function () {
            scr.off("mousemove");
            window.setTimeout(function() {
               move = false;
            },50);
        });

    }
</script>

</head>
<body>
<div class="scroll">
  <a href="https://yandex.ru/"><img src="https://emn178.github.io/jquery-lazyload-any/samples/images/images/batman.png"/></a>
  <a href="https://yandex.ru/"><img src="https://emn178.github.io/jquery-lazyload-any/samples/images/images/batman.png"/></a>
</div>
</body>
</html>

Андрей812 16.08.2019 12:28

СПАСИБО!!!


Часовой пояс GMT +3, время: 17:27.