美文网首页
jQuery 插件扩展

jQuery 插件扩展

作者: lessonSam | 来源:发表于2020-05-02 21:10 被阅读0次

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.11.0/jquery.js"></script>
</head>

<style>
.drag {
width: 100px;
height: 100px;
background-color: pink;
position: absolute;
}
img {
position: absolute;
}
</style>
<body>
<script>
/***
* jq 内置方法的拓展
* jq.extend() 工具的拓展 调用 .XXX() * jQuery 是一个封装的很好的类 ,.extend({}) 相当于添加了一个静态方法 通过.xxx 调用 * jq.fn.extend() jq 方法的拓展 调用("选择器").xxx() 来调用
* 而这个相当于 *.fn 相当于.prototype 相当于添加了一个原型方法 所以可以通过实例调用
*/

</script>
<div class="drag">
  被拖拽的元素
</div>

<img src="../五星评价/img/a.jpg" alt="图片" />

<script>
  $.extend({}); // 工具方法的拓展
  // jq 方法的拓展
  $.fn.extend({
    drag: function () {
      // 此处的this 表示页面所有被选中的元素 是一个 JQuery 对象
      // console.log(this);
      $(this).mousedown(function (e) {
        e = e || window.event;
        e.preventDefault();
        var _this = this;
        // 记录相对的位置= 鼠标距离页面左边的距离 -当前按下的屋里距离左边的距离
        var offsetX = e.clientX - $(this).offset().left;
        var offsetY = e.clientY - $(this).offset().top;
        console.log(offsetX, offsetY);
        $(document).mousemove(function (e) {
          e = e || window.event;
          $(_this).css({
            left: e.clientX - offsetX,
            top: e.clientY - offsetY,
            backgroundColor: 'red',
          });
        });
        // 鼠标抬起的时候 取消掉 输掉移动事件
        $(document).mouseup(function () {
          $(document).off('mousemove');
        });
      });
      // 保证可以进行链式调用
      return this;
    },
  });

  $(function () {
    $('div').drag().css({
      color: 'blue',
    });
    $('img').drag().css({
      width: '200px',
    });
  });
</script>

</body>
</html>

相关文章

  • jQuery插件

    1.jQuery插件 jQuery 插件简单的就是一个用于扩展 jQuery 的 prototype 对象的新方法...

  • jQuery扩展插件

    什么是jQuery插件? 扩展jQuery原型对象的一个方法(jQuery插件是jQuery对象的一个方法)jQu...

  • 如何开发插件

    jQuery插件开发模式 jQuery插件一般有三种开发方式: 通过$.extend来扩展jQuery 通过$.f...

  • jQuery插件机制

    为了方便用户创建插件,jQuery提供了两种方法来扩展插件,分别是jQuery.extend()和jQuery.f...

  • jQuery

    插件开发 $.extend扩展jQuery方法,$.myFun()$.fn向jQuery添加新方法,$("#myD...

  • JQuery 插件扩展

    jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类...

  • jQuery 插件扩展

    Document .drag {width: 100px;height: ...

  • jQuery插件扩展

    一、jQuery的扩展性jQuery,除了对JavaScript进行封装让写法、功能实现更简单,特别是选择器抓取D...

  • jQuery的widget开发

    jQuery插件开发方式 主要有三种:通过$.extend()来扩展jQuery通过$.fn 向jQuery添加新...

  • jQuery.extend 函数使用详解

    JQuery的extend扩展方法:Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一...

网友评论

      本文标题:jQuery 插件扩展

      本文链接:https://www.haomeiwen.com/subject/nnelghtx.html