~~~
function drag(target, obj) {
//target:鼠标按下的目标;obj:要拖动的整体对象(两者须原生获取)
target.onmousedown = function(ev) {
var ev = ev || window.event;
var disX = ev.clientX - obj.offsetLeft;
var disY = ev.clientY - obj.offsetTop;
//鼠标移动事件
document.onmousemove = function(ev) {
var ev = ev || window.event;
obj.style.left = ev.clientX - disX + 'px';
obj.style.top = ev.clientY - disY + 'px';
}
//鼠标抬起事件
document.onmouseup = function() {
document.onmousemove = null;
}
}
~~~
#### 边框拖拽
* * * * *
~~~
var m = 0;
function drag(target, obj,obj_border) {
//target:鼠标按下的目标;obj:鼠标抬起时,瞬移的对象;obj_border:要拖动的边框对象(三者须原生获取)
target.onmousedown = function(ev) {
if(ev.target == target){
//按下时,显示边框
search_bar_border.style.display = 'block';
var ev = ev || window.event;
var disX = ev.clientX - obj.offsetLeft;
var disY = ev.clientY - obj.offsetTop;
//鼠标拖动时,边框跟随移动
document.onmousemove = function(ev) {
m = 1;
var ev = ev || window.event;
obj_border.style.left = ev.clientX - disX + 'px';
obj_border.style.top = ev.clientY - disY + 'px';
}
//鼠标抬起时,让obj瞬间移到边框位置,隐藏边框
document.onmouseup = function(ev) {
var ev = ev || window.event;
//m用于判断鼠标是否移动,排除直接点击瞬移的可能
if(m == 1){
m = 0;
obj.style.left = ev.clientX - disX + 'px';
obj.style.top = ev.clientY - disY + 'px';
}
search_bar_border.style.display = 'none';
document.onmousemove = null;
}
}
}
}
~~~
- 我的烂笔头
- 1、常用功能方法整合
- 2、jQuery基本函数
- 3、在页面中添加图片
- 4、精度算法
- 5、图片懒加载
- 6、弹窗拖拽功能
- 7、弹幕功能
- 8、鼠标滚动事件
- 9、获取页面相关属性
- 10、弹窗的三种展现方式
- 11、轮播功能
- 12、获取唯一标识
- 13、CSS样式效果
- 14、任意两点的动态连线
- 15、全新接口功能
- 16、适配兼容
- 17、无刷新页面更改URL
- 18、定时器的那些事
- 19、关于iframe的常见问题
- 20、设置不同的时间
- 21、关于select-option
- 22、省市级联
- 23、省市级联数据
- 24、关于数据传输问题
- 25、问题分支
- 那些年我们一起走过的神坑
- 1、关于console的使用
- 2、关于数组
- 1、数组的赋值
- 2、数组的常用方法
- 3、关于移动端的bug
- 4、关于视频的bug
- 5、那些坑坑洼洼
- 6、关于字符串
- 1、字符串的常用方法
- 页面布局
- 1、背景固定的滚动页面
- 心得
- Node.js
- 1、安装环境
- ThinkPHP 5.1
- 1、访问格式