小程序实现拖拽功能

<view class='collectBox' 
    bindtap='addCollect' 
    wx:if="{{write[0]+write[1] > 0}}" 
    bindtouchmove="touchmove" 
    catch:touchmove 
    style="left:{{write[0]}}px;top:{{write[1]}}px;">
    <image src='../../images/icon/addcollect.png'></image>
</view>
// pages/cateDetaile/cateDetaile.js
const app = getApp()
Page({

    /**
     * 页面的初始数据
     */
    data: {
        // 拖拽参数
        writePosition: [80, 90], //默认定位参数
        writesize: [0, 0],// X Y 定位
        window: [0, 0], //屏幕尺寸
        write: [0, 0], //定位参数
        scrolltop: 0,//据顶部距离
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        // 在页面中定义插屏广告
        let that = this;
        that.getSysdata();
    },
    //计算默认定位值
    getSysdata: function () {
        var that = this;
        wx.getSystemInfo({
            success: function (e) {
                that.data.window = [e.windowWidth, e.windowHeight];
                var write = [];
                write[0] = that.data.window[0] * that.data.writePosition[0] / 100;
                write[1] = that.data.window[1] * that.data.writePosition[1] / 100;
                console.log(write,45)
                that.setData({
                    write: write
                }, function () {
                    // 获取元素宽高
                    wx.createSelectorQuery().select('.collectBox').boundingClientRect(function (res) {
                        console.log(res.width)
                        that.data.writesize = [res.width, res.height];
                    }).exec();
                })
            },
            fail: function (e) {
                console.log(e)
            }
        });
    },
    //开始拖拽   
    touchmove: function (e) {
        var that = this;
        var position = [e.touches[0].pageX - that.data.writesize[0] / 2, e.touches[0].pageY - that.data.writesize[1] / 2 - this.data.scrolltop];
        that.setData({
            write: position
        });
    },
    onPageScroll(e) {
        this.data.scrolltop = e.scrollTop;
    },
})

喜欢上方小程序,需要源码的,私信小编留下邮箱。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端_李嘉豪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值