javascript - 求助,关于使用百分比单位来定位元素的问题!
迷茫
迷茫 2017-04-11 09:22:41
[JavaScript讨论组]

目前元素使用的position: absolate; top: xxpx, left: xxpx;

//    给元素绑定 定位功能
            elem.on('touchstart', function(event){
                var start, touch, elem_pos_left, elem_pos_top;

                touch = event.originalEvent.targetTouches[0];
                start = { x : touch.pageX, y : touch.pageY };
                
                elem_pos_left = parseInt($(this).css('left'));
                elem_pos_top  = parseInt($(this).css('top'));

                $(this).on('touchmove', function(event){
                    var offset, touch;
                    //  判断,当屏幕上面手指数量大于1时返回 判定为旋转
                    if(event.originalEvent.targetTouches.length > 1) return;

                    touch = event.originalEvent.targetTouches[0];
                    //  手指移动的偏移量
                    offset = { x : touch.pageX - start.x, y : touch.pageY - start.y };
                    //  元素的当前的坐标 + 手指移动的偏移量
                    if (elem.hasClass('active')) {
                         $(this).css({ left : elem_pos_left + offset.x, top  : elem_pos_top +  offset.y});
                    };
                
                    //  后续优化为translate
                    // this.style.webkitTransform = 'translate(' + offset.x + 'px, ' + offset.y + 'px)';
                });

                $(this).one('touchend', function(){console.log("real");
                    $(this).off('touchmove');
                });

            });
    

其实也运行良好,但是定位的基准父元素是使用百分比居中与屏幕的,也就导致父元素放大后,元素错位的问题,我试了下,如果子元素也使用百分比定位的话则不会错位,问题是,如果使用百分比进行定位的话,我手指触摸的偏移量是已px读取了,这样我不知道怎么换算为%单位啊,求高人指点,搞定立马发红包,

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号