1. ホーム
  2. Web制作
  3. html5

ドラッグ&ドロップでホバーアイコンを作成するhtml5サンプルコード

2022-01-21 15:58:48

h5では、しばしば以下のようなニーズがあります。

ホバーアイコンを追加する必要がありますが、これはおおよそ次の図のような最終的な実装になります。

しかし、多くの場合、デザインはメインエリアをカバーしませんが、実際にはカバーすることもあります。しかし、より良いクリックのためには、ページ上でホバーさせる必要があります...。

メインエリアをカバーした後、ユーザーが自由に動かせるようにアイコンをドラッグできるようにすれば、この解決策は両立できるのではないでしょうか。

実現した効果は以下の通りです。

(WeChatのフローティングウィンドウの効果と同様、左右の位置は横に表示され、上下の位置はランダムに配置される)

さっそく、コードを見てみましょう。

<div class="ys-float-btn" 
    :style="{'width': itemWidth+'px','height': itemHeight+'px','left': left+'px','top': top+'px'}"    
    ref="div"    
    @touchstart.prevent="(e) => {dragStart(e)}"     
    @touchend.prevent="(e) => {dragEnd(e)}"     
    @touchmove.prevent="(e) => {dragProgress(e)}"    
    >    
    <img src=". /... /assets/fc-icon.png" />
</div>

// The code is directly in the vue project and can be written in jsdata () {
    return {
        gapWidth: 10,
        itemWidth: 20, // width of the icon
        itemHeight: 30 // the height of the icon
    }
},
created() {      
    this.clientWidth = document.documentElement.clientWidth;     
    this.clientHeight = document.documentElement.clientHeight;      
    this.left = this.clientWidth - this.itemWidth - this.gapWidth;      
    this.top = this.clientHeight*0.8; }
 
methods: {    
    dragStart(e) {        
        this.$refs.div.style.transition = 'none';
    },
    dragEnd(e) {        
        this.$refs.div.style.transition = 'all 0.3s';        
        if (this.left > this.clientWidth/2) {          
            this.left = this.clientWidth - this.itemWidth - this.gapWidth;
        } else {          
            this.left = this.gapWidth;        
        }      
    },      
    dragProgress(e) {        
        if (e.targetTouches.length === 1) {          
            let touch = event.targetTouches[0];          
            this.left = touch.clientX - this.itemWidth/2;              
            this.top = touch.clientY - this.itemHeight/2;        
        }      
    }
} 


上記のコードは、左右だけでなく、上下にも移動することができます。上下にしか動かせないようにしたい場合は、左関連の設定と計算を削除してください。

html5でホバーアイコンをドラッグ&ドロップするサンプルコードについての本記事は以上です、より関連するhtml5のドラッグ&ドロップホバーアイコンは、BinaryDevelopの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください、今後ともBinaryDevelopをよろしくお願いします