jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)


Posted in Javascript onFebruary 25, 2016

本文实例讲述了jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法。分享给大家供大家参考,具体如下:

该插件是文章作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧。

此插件旨在实现目前较为流行的拖拽改变元素大小的效果,您可以根据自己的实际需求来设置被拖拽元素的最小宽高和最大宽高。整体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{margin:0;padding:0;}
.box{position:absolute;left:100px;top:100px;border:1px solid #eee;width:150px;height:150px;padding:10px;cursor:move;}
.drag{position:absolute;bottom:3px;right:3px;display:block;width:7px;height:7px;background:url(scale.png) no-repeat}
</style>
<script type="text/javascript" src="jquery-1.7.1.js"></script>
<script type="text/javascript" src="jquery.resizable.js"></script>
</head>
<body>
<div class="box">拖拽我吧!<span class="drag"></span></div>
<script>
$(function(){
  $(".drag").resizable({
    minW : 150,
    minH : 150,
    maxW : 500,
    maxH : 500,
    });
  })
</script>
</body>
</html>

插件 jquery.dragscale.js 代码:

/*
*resizable 0.1
*Dependenc jquery-1.7.1.js
*/
;(function(a){
  a.fn.resizable = function(options){
    var defaults = { //默认参数
      minW : 150,
      minH : 150,
      maxW : 500,
      maxH : 500,
      }
    var opts = a.extend(defaults, options);
    this.each(function(){
      var obj = a(this);
      obj.mousedown(function(e){
        var e = e || event; //区分IE和其他浏览器事件对象
        var x = e.pageX - obj.position().left; //获取鼠标距离匹配元素的父元素左侧的距离
        var y = e.pageY - obj.position().top; //获取鼠标距离匹配元素的父元素顶端的距离
        $(document).mousemove(function(e){
          var e = e || event;
          var _x = e.pageX - x; //动态获取匹配元素距离其父元素左侧的宽度
          var _y = e.pageY - y;
          _x = _x < opts.minW ? opts.minW : _x; //保证匹配元素的最小宽度为150px
          _x = _x > opts.maxW ? opts.maxW : _x; //保证匹配元素的最大宽度为500px
          _y = _y < opts.minH ? opts.minH : _y;
          _y = _y > opts.maxH ? opts.maxH : _y;
          obj.parent().css({width:_x,height:_y});
        }).mouseup(function(){
          $(this).unbind("mousemove"); //当鼠标抬起 删除移动事件  匹配元素宽高变化停止
          });
        });
      })
    }
})(jQuery);

完整实例代码点击此处本站下载。

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
用js实现的检测浏览器和系统的函数
Apr 09 Javascript
JavaScript Event学习第十章 一些可替换的事件对
Feb 10 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
Apr 16 Javascript
关于JavaScript中原型继承中的一点思考
Jul 25 Javascript
JS获取农历日期具体实例
Nov 14 Javascript
node.js中的fs.fchmodSync方法使用说明
Dec 16 Javascript
jQuery子元素过滤选择器用法示例
Sep 09 Javascript
利用vue.js插入dom节点的方法
Mar 15 Javascript
详解axios在vue中的简单配置与使用
May 10 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
Mar 28 Javascript
js中数组对象去重的两种方法
Jan 18 Javascript
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
js判断图片加载完成后获取图片实际宽高的方法
Feb 25 #Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
Feb 25 #Javascript
jquery zTree异步加载简单实例讲解
Feb 25 #Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 #Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
Feb 25 #Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 #Javascript
jquery ztree实现模糊搜索功能
Feb 25 #Javascript
You might like
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
php采集速度探究总结(原创)
2008/04/18 PHP
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
Composer设置忽略版本匹配的方法
2016/04/27 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
事件模型在各浏览器中存在差异
2010/10/20 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
Nodejs之http的表单提交
2017/07/07 NodeJs
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
9种改善AngularJS性能的方法
2017/11/28 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
python定时关机小脚本
2018/06/20 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
python实现视频压缩功能
2020/12/18 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
小学班主任寄语大全
2014/04/04 职场文书
大学生求职自荐信
2015/03/24 职场文书
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS