javascript封装的一些函数

ゝ一世哀愁。 2022-01-14 09:27 339阅读 0赞
  1. //运动函数
  2. function move(obj, attr, step, target) {
  3. var left = parseInt(getStyle(obj, attr));
  4. step = left >= target ? -step : step;
  5. var timer3 = setInterval(function() {
  6. left = left + step;
  7. if((left >= target && step > 0) || (left <= target && step < 0)) {
  8. left = target;
  9. clearInterval(timer3);
  10. }
  11. obj.style[attr] = left + 'px';
  12. }, 50)
  13. }
  14. //非行间函数
  15. function getStyle(obj, attr) {
  16. if(obj.currentStyle) {
  17. return obj.currentStyle[attr];
  18. } else {
  19. return getComputedStyle(obj)[attr]
  20. }
  21. }
  22. //原生ajax封装
  23. function ajax(method, url, data, acy, fn) {
  24. var _ajax = new XMLHttpRequest();
  25. if(method.toLowerCase() == 'get') {
  26. _ajax.open(method, url + '?' + data, acy)
  27. _ajax.send();
  28. } else if(method.toLowerCase() == 'post') {
  29. _ajax.open(method, url, acy);
  30. _ajax.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  31. _ajax.send(data);
  32. }
  33. _ajax.onreadystatechange = function() {
  34. if(_ajax.readyState == 4 && _ajax.status == 200) {
  35. var res = _ajax.response;
  36. fn && fn(res);
  37. }
  38. }
  39. }
  40. //cookie封装函数
  41. function setCookie(key, val, oDate) {
  42. var nowDate = new Date();
  43. if(oDate == 0) {
  44. nowDate = 0;
  45. } else {
  46. nowDate.setSeconds(nowDate.getSeconds() + oDate);
  47. }
  48. document.cookie = key + '=' + val + ';expires=' + nowDate;
  49. }
  50. function getCookie(key) {
  51. var oCookie = document.cookie;
  52. var cookieArr = oCookie.split(';');
  53. for(var i = 0; i < cookieArr.length; i++) {
  54. var arr = cookieArr[i].split('=');
  55. if(arr[0].trim() == key) {
  56. return arr[1];
  57. }
  58. }
  59. return false;
  60. }
  61. function removeCookie(key) {
  62. setCookie(key, 1, -1);
  63. }
  64. //淡入淡出和运动封装函数
  65. function bufferMove (obj,attr,target,num) {
  66. var timer = setInterval(function () {
  67. if(attr == 'opacity'){
  68. var cur = parseFloat(getStyle(obj,attr))*100;
  69. }else{
  70. var cur = parseInt(getStyle(obj,attr));
  71. }
  72. var step = (target - cur)/num;
  73. var speed = step>0? Math.ceil(cur + step) : Math.floor(cur + step);
  74. if((speed <= target && step<0) || (speed>=target && step>0)){
  75. speed = target;
  76. clearInterval(timer);
  77. }
  78. if(attr == 'opacity'){
  79. obj.style[attr] = speed/100;
  80. }else{
  81. obj.style[attr] = speed + 'px';
  82. }
  83. },50)
  84. }

发表评论

表情:
评论列表 (有 0 条评论,339人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JavaScript方法实现方法

    JavaScript方法封装是一种重要的编程方法,它可以使代码更加模块化、易于维护和重用。方法封装允许开发人员将代码分解为小而独立的模块,从而使代码的复杂性降低,提高代码的可读

    相关 概念

      封装:         概念:            将类的某些信息隐藏在类内部,不允许外部程序直接访问,            而是通过该类提供的方法来实现对隐藏