web前端开发中如何封装常用页面效果

发布于 2022-09-01 07:34:39 字数 185 浏览 20 评论 0

在前端开发中,经常要编写一些交互效果,比如,回到顶部,焦点图轮播,弹出层等等。但是编写的方式都是过程式的,一会这一个函数,一会那一个函数,充斥太多的全局代码,自身也意识到这种问题。只是,不知道如何将那些效果封装起来,比如,封装成一个插件,可以复用。这种思想该如何转变呢?该如何将一堆凌乱的代码组织起来呢?
如果能有一个具体的实例就更好了^_^!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

以往的大感动 2022-09-08 07:34:39

如果只是想做jquery插件,最简单的方法就是直接用$.fn扩展

$.fn.dosomething = function() {
    //dosomething……

    return this;
    //返回本身以保持链式调用
}

然后直接使用传统的jquery的调用方式就行了

$('element').dosomething();

你应该知道在定义函数的时候this指针是指向调用其的元素的,实在不懂可以打印出来看看。

另外也可以用更加优雅点的闭包方式

(function($) {
    function dosomething() {
        //dosomething....
    }

    $.fn.interface = dosomething;
})(jQuery);

使用IIFE(自启动函数?)也是目前比较主流的插件写法,你同样也可以传入其他对象(包括window),然后把接口暴露在上面。

$.fn其实就是$.prototype,只是个简化了的接口,如果不太明白可以去看一下闭包以及如何使用Javascript的原形实现继承。其实要做的都是一件事情就是把要做的事情抽象成一个函数,然后留一个可调用的接口。

其实例子最好就是那个你可能天天都在用的Bootstrap,有条件你可以阅读一下Bootstrap的源码,它实现插件的方式很优雅,一开始就读优秀的代码也对个人学习有很大帮助。BS的源码难度不大,而且有一些很棒的实现(比如ScrollSpy),有困难也克服一下,最后肯定获益匪浅的。

前事休说 2022-09-08 07:34:39

用JQuery将其封装成插件或者扩展JQuery:
JQuery插件开发简易教程
JQuery扩展简易教程

个人之前根据网上找的源码封装了一个简单的dirSlide:dirSlide

其在项目中的简单应用:应用

clipboard.png

鸢与 2022-09-08 07:34:39

题主所说的「交互效果」至少涉及三个不同的软件模块子:

  • DOM操作逻辑:按照需求调用DOM API的逻辑
  • 样式:布局、UI外观等
  • 交互逻辑:响应用户事件的逻辑

UI模块总是或多或少的涉及到以上一个或者多个模块子:

  • 回到顶部:DOM、交互
  • 焦点图轮播:DOM、(交互)
  • 弹出层:DOM、样式
  • JQuery:DOM
  • JQuery UI:交互逻辑
  • Bootstrap CSS:样式

将UI模块分解成模块子,使用任何传统的软件工程方法进行封装:面向对象、插件、各种设计模式等


还有一点,个人经验告诉我,不要封装交互逻辑,因为无论你封的多好看还是可能满足不了需求

猫瑾少女 2022-09-08 07:34:39

案例代码 : 我是底部悬浮

页面效果 :

clipboard.png

页面使用代码

  window.partBar = {
    barList : ['经典真皮', '简约优雅', '青春学院', '绅士男包','休闲旅行'],
    barColor: ['#f97150', '#fc5b34'],
    color: '#fff'
  }

类似这种功能需要插件:
js + seajs


上面是一个例子。
其核心思想是一样的:
1.一个js(包含组件的js css html)
2.页面上的正确调用
3.正常合理的显示

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文