iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >JS中工厂模式的示例分析
  • 237
分享到

JS中工厂模式的示例分析

2024-04-02 19:04:59 237人浏览 薄情痞子
摘要

这篇文章主要介绍了js中工厂模式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基于JS工厂模式的H5应用,实现了轮播图功能与滑屏功

这篇文章主要介绍了js中工厂模式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

基于JS工厂模式的H5应用,实现了轮播图功能与滑屏功能,并且实现了文字大小的自适应功能,基于SASS样式开发

核心的JS代码如下:

index.js

define(function(){
 var self = null,
 start = null,
 move = null,
 end = null,
 handle = null,
 timer = null,
 left = 0,
 x = 0,
 startX = 0,
 baseWidth = window.screen.width, // 移动设备屏幕的宽度
 baseSize = baseWidth * 0.2,   // 滑动切换阈值
 banner = document.getElementById("banner"), // 获取Banner
 center = document.getElementById("center"), // 获取center
 ulList = document.getElementsByTagName("ul"),
 incBanner = document.getElementById('incBanner'),
 incCenter = document.getElementById('incCenter');
 var app = {
  init : function(){
   self = this;
   start = self.touchStart;
   move = self.touchMove;
   end = self.touchEnd;
   handle = self.addHandler;
   self.pageInit();
   self.bindTouch(banner, start, move, end);
   self.bindTouch(center, start, move, end);
   self.shiftBanner(banner);
  },
  pageInit : function(){
   for (var i=0; i < ulList.length; i++) {
    ulList[i].style.left = 0 + 'px';
    ulList[i].style.width = 3 * baseWidth + 'px';
   }
  },
  bindTouch : function(elem, handler1, handler2, handler3){
   handle(elem, "touchstart", handler1);
   handle(elem, "touchmove", handler2);
   handle(elem, "touchend", handler3);
  },
  touchStart : function(event){
   var touch = event.touches[0];
   left = parseInt(this.style.left);
   x = 0;
   startX = 0;
   startX = touch.pageX;  //刚触摸时的坐标
   if(this == banner){
    timer = clearInterval(timer);
   }
  },
  touchMove : function(event){ //滑动过程
   var touch = event.touches[0];    
   x = startX - touch.pageX;  //滑动的距离 
   this.style.left = left - x + 'px';   
  },
  touchEnd : function(event){    //手指离开屏幕
   self.move(this);
   self.moveAdjust(this);
   self.indicate(this);
   if(this == banner){
    self.shiftBanner(banner);
   }
  },
  move : function(elem){
   var leftTmp = left;   //缓存touchMove结束时的滑动位置
   elem.style.left = left;
   if (x > baseSize) {
    elem.style.left = left - baseWidth + 'px';
   } else if (x < -baseSize) {
    elem.style.left = left + baseWidth + 'px';
   } else {
    elem.style.left = leftTmp + 'px';
   }
  },
  moveAdjust : function(elem){
   left = parseInt(elem.style.left)
   if (left < -baseWidth * 2) {
    left = -baseWidth * 2;
    elem.style.left = left + 'px';
   }
   if (left > 0) {
    left = 0;
    elem.style.left = left + 'px';
   }
   x = 0; 
  },
  indicate : function(elem){
   if (elem == banner) {
    self.activeClass(incBanner);
   }else if (elem == center) {
    self.activeClass(incCenter);
   }
  },
  activeClass : function(elem){
   var len = elem.children.length;
   for (var i = 0; i < len; i++) {
     elem.children[i].className=" ";
    }
   if (left == 0) {
    elem.children[0].className = "active";
   } else if (left == (-baseWidth)) {
    elem.children[1].className = "active";
   }else if (left == (-2*baseWidth)) {
    elem.children[2].className = "active";
   }
  },
  shiftBanner : function(elem){
   var t = new Date();
   var tmpLeft = parseInt(elem.style.left);
   timer = setInterval(function(){
    if ((tmpLeft == 0) || (tmpLeft == -baseWidth)) {
     elem.style.left = tmpLeft - baseWidth + 'px';
    } else if (tmpLeft == -2*baseWidth) {
     elem.style.left = 0 + 'px';
    }
    tmpLeft = parseInt(elem.style.left);
    left = tmpLeft;
    // console.log(elem.style.left);
    // console.log(t);
    self.indicate(banner);
   },4000);
  },
  addHandler : function(element, type, handler){
   if (element.addEventListener) {
    element.addEventListener(type, handler, true);
   } else if (element.attachEvent) {
    element.attachEvent("on" + type, handler);
   } else {
    element["on" + type] = handler;
   }
  }
 };
 return {
  init : function(){
   app.init();
  }
 };
});

可以在浏览器中打开: https://iove1123.GitHub.io/policy

JS中工厂模式的示例分析

感谢你能够认真阅读完这篇文章,希望小编分享的“JS中工厂模式的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网VUE频道,更多相关知识等着你来学习!

--结束END--

本文标题: JS中工厂模式的示例分析

本文链接: https://www.lsjlt.com/news/78607.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS中工厂模式的示例分析
    这篇文章主要介绍了JS中工厂模式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基于JS工厂模式的H5应用,实现了轮播图功能与滑屏功...
    99+
    2022-10-19
  • web前端中工厂模式的示例分析
    这篇文章主要介绍了web前端中工厂模式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。工厂模式(Factory Pattern)工厂...
    99+
    2022-10-19
  • JavaScript设计模式之工厂模式的示例分析
    这篇文章主要为大家展示了“JavaScript设计模式之工厂模式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaS...
    99+
    2022-10-19
  • Java设计模式之工厂模式的示例分析
    这篇文章主要为大家展示了“Java设计模式之工厂模式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java设计模式之工厂模式的示例分析”这篇文章吧。具体如下:工厂模式主要是为创建对象提...
    99+
    2023-05-30
    java
  • Java工厂模式实例分析
    今天小编给大家分享一下Java工厂模式实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。优点一个调用者想创建一个对象,只...
    99+
    2023-06-29
  • Java设计者模式简单工厂模式的示例分析
    这篇文章主要介绍Java设计者模式简单工厂模式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!简介简单工厂模式 (Simple Factory) 又叫静态工厂方法(Static Factory Method)...
    99+
    2023-05-30
    java
  • Java抽象工厂模式实例分析
    这篇文章主要介绍了Java抽象工厂模式实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java抽象工厂模式实例分析文章都会有所收获,下面我们一起来看看吧。1.什么是抽象工厂模式?抽象工厂模式: ...
    99+
    2023-06-29
  • JS严格模式的示例分析
    这篇文章主要介绍JS严格模式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!所谓严格模式其实就是一个不会赋值给任何变量的字符串 “use strict”如果在全局作用域下 给...
    99+
    2022-10-19
  • JS继承、工厂构造及原型设计模式实例分析
    这篇文章主要介绍“JS继承、工厂构造及原型设计模式实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JS继承、工厂构造及原型设计模式实例分析”文章能帮助大家解决问题。正文正是由于:原型链继承和构...
    99+
    2023-07-02
  • js中发布订阅模式的示例分析
    这篇文章主要介绍js中发布订阅模式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码//发布订阅模式 class EventEmiter{   ...
    99+
    2022-10-19
  • JS设计模式之命令模式的示例分析
    这篇文章给大家分享的是有关JS设计模式之命令模式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。客户创建命令;调用者执行该命令;接收者在命令执行时执行相应操作简单命令对象...
    99+
    2022-10-19
  • JS设计模式之状态模的示例分析
    这篇文章主要介绍了JS设计模式之状态模的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 概述当一个对象的内在状态改变时允许改变其...
    99+
    2022-10-19
  • java开发的工厂方法模式及抽象工厂验证示例
    目录工厂方法模式示例抽象工厂模式验证结论工厂方法模式示例 开发一个数据格式转换工具,将不同数据源如:txt、excel等格式文件,转换为XML格式输出,需考虑今后其他格式的文件也需要...
    99+
    2022-11-12
  • js中发布者订阅者模式的示例分析
    这篇文章主要为大家展示了“js中发布者订阅者模式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js中发布者订阅者模式的示例分析”这篇文章吧。发布者订阅...
    99+
    2022-10-19
  • C++设计模式之简单工厂模式的实现示例
    前言 在我们要使用一个对象时,就必须通过类来实例化对象,也就是需要new一个对象。在new的过程是非常复杂的,要经过读文件->解析文本->创建对象->给属性设值等过...
    99+
    2022-11-12
  • js中解析顺序、作用域、严格模式的示例分析
    小编给大家分享一下js中解析顺序、作用域、严格模式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、javascrip...
    99+
    2022-10-19
  • js设计模式之结构型享元模式的示例分析
    小编给大家分享一下js设计模式之结构型享元模式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!运用共享技术有效地支持大量...
    99+
    2022-10-19
  • JS中抽象工厂模式如何实现
    这篇文章主要介绍了JS中抽象工厂模式如何实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。抽象工厂模式(Abstract Factory)就...
    99+
    2022-10-19
  • PHP中单例模式的示例分析
    这篇文章将为大家详细讲解有关PHP中单例模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、什么是单例模式?含义     作为对象的创建模式,单例模式确保某一个类...
    99+
    2023-06-20
  • Golang设计模式工厂模式实战写法示例详解
    目录拆出主板工厂模式流程代码实战抽象能力,定义接口实现工厂,支持注册和获取实现主流程只依赖接口完成扩展 => 适配器,实现接口注册适配器到工厂里小结拆出主板 今天带大家看一下怎...
    99+
    2022-11-11
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作