HTML ermöglicht das beliebige Ziehen der Inhaltsposition

Guanhui
Freigeben: 2020-07-20 13:06:24
nach vorne
4630 Leute haben es durchsucht

HTML ermöglicht das beliebige Ziehen der Inhaltsposition

Die beiden Möglichkeiten sind: Ziehen der normalen Beschriftungsposition oder Ziehen der Textfeldposition in der Leinwand

1. Implementieren Sie das Ziehen von Beschriftungen mit der Maus Element an beliebiger Position

CSS-Code

#range {
    position: relative;
    width: 600px;
    height: 400px;
    margin: 10px;
    background-color: rgb(133, 246, 250);
}

.icon {
    position: absolute;
    height: 100px;
    width: 100px;
    cursor: move;
    background-color: #ff9204;
    user-select: none;
}
Nach dem Login kopieren

HTML-Code

<p id="range">
    <p class="icon">100*100</p>
</p>
Nach dem Login kopieren

js-Code

const main = document.getElementById(&#39;range&#39;);
const icon = document.querySelector(&#39;.icon&#39;);
let move = false;
let deltaLeft = 0, deltaTop = 0;

// 拖动开始事件,要绑定在被移动元素上
icon.addEventListener(&#39;mousedown&#39;, function (e) {
    /*
    * @des deltaLeft 即移动过程中不变的值
    */
    deltaLeft = e.clientX-e.target.offsetLeft;
    deltaTop = e.clientY-e.target.offsetTop;
    move = true;
})

// 移动触发事件要放在,区域控制元素上
main.addEventListener(&#39;mousemove&#39;, function (e) {
    if (move) {
        const cx = e.clientX;
        const cy = e.clientY;
        /** 相减即可得到相对于父元素移动的位置 */   
        let dx = cx - deltaLeft
        let dy = cy - deltaTop

        /** 防止超出父元素范围 */
        if (dx < 0) dx = 0
        if (dy < 0) dy = 0
        if (dx > 500) dx = 500
        if (dy > 300) dy = 300
        icon.setAttribute(&#39;style&#39;, `left:${dx}px;top:${dy}px`)
    }
})

// 拖动结束触发要放在,区域控制元素上
main.addEventListener(&#39;mouseup&#39;, function (e) {
    move = false;
    console.log(&#39;mouseup&#39;);
})
Nach dem Login kopieren

2 . Canvas zeichnet Textfelder und ermöglicht es der Maus, sie an eine beliebige Position zu ziehen und zu verschieben 🎜>Das Implementierungsprinzip besteht darin, die Position der Mausbewegung aufzuzeichnen und den rechteckigen Rahmen und Textinhalt kontinuierlich neu zu zeichnen

.cus-canvas{
    background: rgb(50, 204, 243);
}

.input-ele{
    display: none;
    position: fixed;
    width: 180px;
    border: 0;
    background-color: #fff;
}
Nach dem Login kopieren
Empfohlenes Tutorial: „

HTML-Tutorial

Das obige ist der detaillierte Inhalt vonHTML ermöglicht das beliebige Ziehen der Inhaltsposition. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage