Touch Events Mouse Event Обновление

Я очень новичок во всем этом, и я учусь в колледже на курсе информатики, и у меня есть цель закончить к концу недели (завтра), и я немного застрял с переводом Mouse Control на Touch Control.

У меня есть скользящий элемент с несколькими элементами div в этом отображаемом тексте. Идея состоит в том, чтобы перемещать элементы Div из стороны в сторону с границами границ.

Я сам все это закодировал с помощью интернета, но со своей следующей частью я нахожусь в тупике.

TouchEvents:

У меня есть div с управлением мышью, но мне также требуется Touch Control. До сих пор мне удавалось установить распознавание сенсорных событий, но теперь я должен переместить div.

К сожалению, события мыши не двигают div вместе с прикосновением. Мне нужен новый метод для перемещения div с касанием.

Может ли кто-нибудь увидеть мой код и попытаться предложить мне способ переместить div касанием?

Я был бы очень признателен.

У меня есть идея, как это сделать, но на самом деле на данный момент мне больно писать, потому что я не знаю правильную процедуру или синтаксис JS.

Спасибо за любой совет. Вот мой код

    <div id='infotextinner' class='infotextinner' >             

    <div class='infobuttons' >Home & Garden</div>
    <div class='infobuttons' >Sports</div>
    <div class='infobuttons' >Electronics</div>
    <div class='infobuttons' >Jewelry</div>
    <div class='infobuttons' >Cosmetics</div>
    <div class='infobuttons' >Fashion</div>
    <div class='infobuttons' >Collectables</div>    
    <div class='infobuttons' >Pets & Animals</div>
    <div class='infobuttons' >Vehicles</div>
    <div class='infobuttons' >Houses/Flats</div>
    <div class='infobuttons' >Jobs/work</div>
    <div class='infobuttons' >Fashion</div>
    <div class='infobuttons' >Collectables</div>    
    <div class='infobuttons' >Pets & Animals</div>
    <div class='infobuttons' >Vehicles</div>
    <div class='infobuttons' >Houses/Flats</div>
    <div class='infobuttons' >Jobs/work</div>

    </div>

<script>

    dragElement(document.getElementById(("infotextinner")));

    var isOnDiv = false;
    $(infotextinner).mouseenter(function(){isOnDiv=true;});
    $(infotextinner).mouseleave(function(){isOnDiv=false;});

    if ( isOnDiv===true ) {dragElement();}

    if ( isOnDiv===false){document.onmouseup = null;}

    function dragElement(elmnt) {

    var pos1 = 0, pos3 = 0;

    elmnt.onmousedown = dragMouseDown;

    document.querySelector('#infotextinner').addEventListener('touchstart', dragMouseDown)

      function dragMouseDown(e) {
        e = e || window.event;

        pos3 = e.clientX;

        document.onmouseup = closeDragElement;

    document.querySelector('#infotextinner').addEventListener('touchend', closeDragElement)

        document.onmousemove = elementDrag;

    document.querySelector('#infotextinner').addEventListener('touchmove', elementDrag)
    }

      function elementDrag(e) {

        e = e || window.event;

        pos1 = pos3 - e.clientX;

        pos3 = e.clientX;

    document.getElementById('infotextinner').classList.remove("addtrans");

    elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";



    var bodyRect1 = document.body.getBoundingClientRect(),

    elemRect1 = document.getElementById('maincontent').getBoundingClientRect(), 

    offset1 = elemRect1.left - bodyRect1.left; 



    var bodyRect2 = document.body.getBoundingClientRect(), 

    elemRect2 = elmnt.getBoundingClientRect(), 

    offset2   = elemRect2.left - offset1; 


    var elemWidth = document.getElementById('infotextinner').offsetWidth;

    var bodyWidth = document.body.offsetWidth;

    var offset3 = elmnt.offsetLeft - pos1;



    if (offset2 > 28) {elmnt.style.left = (elmnt.offsetLeft+pos1) + "px"; };


    if (offset2+elemWidth < bodyWidth-offset1-20) {elmnt.style.left =(elmnt.offsetLeft+pos1) + "px"; }; 

      }

      function closeDragElement() {
        /* stop moving when mouse button is released:*/
        document.onmouseup = null;
        document.onmousemove = null;
        document.ontouchstart = null;
        document.ontouchend = null;
        elementDrag();

      }


    };

</script>

0 ответов

Другие вопросы по тегам