欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS實現(xiàn)的簡易拖放效果示例

 更新時間:2016年12月29日 12:03:33   作者:trace332  
這篇文章主要介紹了JS實現(xiàn)的簡易拖放效果的方法,涉及JS事件監(jiān)聽、擴展及頁面元素動態(tài)操作的相關(guān)技巧,需要的朋友可以參考下

本文實例講述了JS實現(xiàn)的簡易拖放效果。分享給大家供大家參考,具體如下:

<!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=gb2312" />
<title>簡易拖放效果</title>
</head>
<body>
<script type="text/JavaScript">
<!--
var isIE = (document.all) ? true : false;// 是否ie
var $ = function (id) {
  //返回id對象
  return "string" == typeof id ? document.getElementById(id) : id;
};
var Class = {
  // 帶構(gòu)造方法的類
  create: function() {
    return function() { this.initialize.apply(this, arguments); } //用apply應用下面的initialize初始化屬性
  }
}
var Extend = function(destination, source) {
  //繼承
  for (var property in source) {
    destination[property] = source[property];
  }
}
var Bind = function(object, fun) {
  return function() {
    return fun.apply(object, arguments);
  }
}
/**
用object對象調(diào)用fun參數(shù)是event||window event
**/
var BindAsEventListener = function(object, fun) {
  return function(event) {
    return fun.call(object, (event || window.event));
  }
}
/**
添加幀聽器事件
@oTarget 目標對象
@sEventType 事件類型
@fnHandler 目標觸發(fā)事件對象
**/
function addEventHandler(oTarget, sEventType, fnHandler) {
  if (oTarget.addEventListener) {
    oTarget.addEventListener(sEventType, fnHandler, false);//firefox
  } else if (oTarget.attachEvent) {
    oTarget.attachEvent("on" + sEventType, fnHandler);//ie
  } else {
    oTarget["on" + sEventType] = fnHandler;//other
  }
};
/**
清除添加的幀聽器事件
@oTarget 目標對象
@sEventType 事件類型
@fnHandler 目標觸發(fā)事件對象
**/
function removeEventHandler(oTarget, sEventType, fnHandler) {
  if (oTarget.removeEventListener) {
    oTarget.removeEventListener(sEventType, fnHandler, false);
  } else if (oTarget.detachEvent) {
    oTarget.detachEvent("on" + sEventType, fnHandler);
  } else {
    oTarget["on" + sEventType] = null;
  }
};
/*------------------------------相關(guān)模型構(gòu)造完畢-----------------------------------*/
//拖放程序
var SimpleDrag = Class.create();
SimpleDrag.prototype = {
 //拖放對象,觸發(fā)對象,初始化
 initialize: function(drag) {
  this.Drag = $(drag);
  this._x = this._y = 0;
  this._fM = BindAsEventListener(this, this.Move);//_fM方法就是應用MOVE方法參數(shù)是event||window.event
  this._fS = Bind(this, this.Stop);//_fS類方法就是Stop方法
  this.Drag.style.position = "absolute";
  this.Drag.style.cursor = "move";
  addEventHandler(this.Drag, "mousedown", BindAsEventListener(this, this.Start));
 },
 //準備拖動
 Start: function(oEvent) {
  this._x = oEvent.clientX - this.Drag.offsetLeft;
  this._y = oEvent.clientY - this.Drag.offsetTop;
  addEventHandler(document, "mousemove", this._fM);
  addEventHandler(document, "mouseup", this._fS);
 },
 //拖動
 Move: function(oEvent) {
  this.Drag.style.left = oEvent.clientX - this._x + "px";
  this.Drag.style.top = oEvent.clientY - this._y + "px";
 },
 //停止拖動
 Stop: function() {
  removeEventHandler(document, "mousemove", this._fM);
  removeEventHandler(document, "mouseup", this._fS);
 }
};
// -->
</script>
<div id="idDrag" style="border:5px solid #0000FF; background:#C4E3FD; width:50px; height:50px;"></div>
<script type="text/javascript">
<!--
new SimpleDrag("idDrag");
// -->
</script>
</body>
</html>

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學運算用法總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

  • 詳解寫好JS條件語句的5條守則

    詳解寫好JS條件語句的5條守則

    這篇文章主要介紹了詳解寫好JS條件語句的5條守則,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • JavaScript電子時鐘倒計時第二款

    JavaScript電子時鐘倒計時第二款

    這篇文章主要介紹了JavaScript電子時鐘倒計時的實現(xiàn)代碼,具有一定的參考價值,感興趣的朋友可以參考一下
    2016-01-01
  • 使用Javascript寫的2048小游戲

    使用Javascript寫的2048小游戲

    這篇文章主要介紹了使用Javascript寫的2048小游戲的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • ES6數(shù)組與對象的解構(gòu)賦值詳解

    ES6數(shù)組與對象的解構(gòu)賦值詳解

    這篇文章主要介紹了ES6數(shù)組與對象的解構(gòu)賦值,結(jié)合實例形式詳細分析了ES6中數(shù)組與對象的解構(gòu)賦值原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-06-06
  • 重學 JS:為啥 await 不能用在 forEach 中詳解

    重學 JS:為啥 await 不能用在 forEach 中詳解

    這篇文章主要介紹了重學 JS:為啥 await 不能用在 forEach 中,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • JavaScript遍歷數(shù)組的三種方法map、forEach與filter實例詳解

    JavaScript遍歷數(shù)組的三種方法map、forEach與filter實例詳解

    這篇文章主要介紹了JavaScript遍歷數(shù)組的三種方法map、forEach與filter,結(jié)合實例形式詳細分析了javascript針對數(shù)組遍歷的map、forEach與filter三種方法相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2019-02-02
  • JS驗證有效性示例

    JS驗證有效性示例

    有效性驗證的方法有很多,在本文將為大家介紹下如何使用js簡單實現(xiàn)下,感興趣的朋友可以參考下
    2013-10-10
  • 前端流式輸出的三種實現(xiàn)方法

    前端流式輸出的三種實現(xiàn)方法

    這篇文章主要介紹了前端流式輸出的三種實現(xiàn)方法,流式輸出在前端開發(fā)中用于逐步處理和顯示數(shù)據(jù),特別是對于大型數(shù)據(jù)集和實時數(shù)據(jù),文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-11-11
  • javascript 文字上下間隔滾動的代碼 符合WEB標準 腳本之家修正版

    javascript 文字上下間隔滾動的代碼 符合WEB標準 腳本之家修正版

    javascript 文字上下間隔滾動的代碼 符合WEB標準 腳本之家修正版,這里提供了兩個版本,第二個在firefox下運行有些問題大家可以修改下,第一個的高度問題,已經(jīng)修正,其實就是簡單的加了css樣式。
    2009-12-12
  • 十個開發(fā)人員面臨的最常見的JavaScript問題總結(jié)

    十個開發(fā)人員面臨的最常見的JavaScript問題總結(jié)

    今天,JavaScript?是幾乎所有現(xiàn)代?Web?應用的核心。這就是為什么JavaScript問題,以及找到導致這些問題的錯誤,是?Web?發(fā)者的首要任務(wù)。本文總結(jié)了十個常見的問題及解決方法,需要的可以參考一下
    2022-11-11

最新評論