m.lom599.com_手机版乐白家网址_乐百家手机首页登录

纯JS代码实现气泡效果,入门手上

作者: 手机版乐白家网址  发布:2019-07-10

Javascript的风味是异步,Javascript不能等待,若是您落成某件须求拭目以待的事体,你不能够停在那边向来守候结果重返,相反,底线是使用回调callback:你定义三个函数,那么些函数独有等到结果可用时才干被调用。

就不给大家多文字表达了。给我们梳理下关键步骤。

一、 安装

这种回调模型对于好的代码协会是尚未难题的,但是也能够透过从原有回调切换来promise化解广大标题,将promise看成是贰个正规的数量容器,这样会简化你的代码社团,能够成为基于promise的架构。

关键步骤:

首先,去 下载安装。作者下的版本是0.8.14。安装很简短,下一步下一步就哦了。然后在path中配备一下安装目录就可以,msi会把npm(Node Package Manager)一并装上。

什么是Promise?

1、引入js文件

图片 1

二个promise是二个满含".then()"方法的目的,其象征的是多个操作的结果恐怕还不曾或不亮堂,无论何人访问那些目的,都能够选拔".then()"方法出席回调等待操作出现成功结果或停业时的提示公告,。

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src='js/jquery.thoughtBubble.js'></script>

本人的设置目录是C:Program Files (x86)nodejs。那时使用cmd命令窗口 node -vnpm -v命令查看下安装的本子

那正是说为何这么做好处优于回调呢?标准的回调形式在我们管理诉求时索要同期提供回调函数:

2、在需求运用气泡效果的地点

图片 2

request(url, function(error, response) { 

 // handle success or error.

});

doSomethingElse(); 
<div id='mainContainer' class='container'>
<img src='ahout.JPG' id="thoughtBubble" alt='whats up?' />
</div>

1.1、helloworld

很不佳,这段代码意味着那几个request函数并不知道它自个儿哪些时候可以一挥而就,当然也尚无须要,大家最后经过回调传递结果。那会导致多少个回调产生了嵌套回调,或许叫做回调陷阱。

3、使用气泡效果

在Node.js工程目录中新建多个文书hello.js,里面敲一行代码

queryTheDatabase(query, function(error, result) { 

 request(url, function(error, response) {

  doSomethingElse(response, function(error, result) {

   doAnotherThing(result, function(error, result) {

    request(anotherUrl, function(error, response) {

     ...

    });

   });

  });

 });

});
<script type="text/javascript">
$(window).ready( function() {
$('#thoughtBubble').thoughtBubble({
text: 'baby,I love you',
font: 'avenir'
});
});
console.log('hello, nodejs.') ;

Promise能够缓慢解决这种主题材料,允许低层代码创制三个request然后回去三个指标,其表示着未到位的操作,让调用者去决定应该投入什么回调。

4、这是jquery.thoughtBubblr.js代码

进去命令行调节台,步入到Node.js工程目录敲node hello.js

Promise是什么?

(function($) {
$.fn.thoughtBubble = function( defaults ) {
var settings = $.extend({
backgroundColor: 'white',
fontColor: 'black',
width: '330px',
height: '210px',
fontSize: '15px',
bubbleColor: 'white',
speed: 125
}, defaults ),
getBubbleDiv = function( container ) {
var offset = container.offset(),
modifiedHeight = offset.top - parseInt( settings.height ),
style = '"position: absolute; top:'   modifiedHeight   'px; left:'   offset.left   'px ; width:'   settings.width   '; height:'   settings.height   ';"',
bubbleContainer = "<div class='bubble-holder' style="   style   ">"   getMainBubble()   getBubbles()   "</div>";
return bubbleContainer;
},
getMainBubble = function() {
return '<div class="main-bubble-holder"><div class="bubble main-bubble">'   getText()   '</div></div>';
},
getText = function() {
return ''   settings.text   '';
},
getBubbles = function() {
return '<div class="sm-bubble-holder"><div class="bubble bubbleLg"></div><div class="bubble bubbleMd"></div><div class="bubble bubbleSm"></div></div>';
},
animate = function(){
var bubbles = $(document).find('.bubble'),
reversed = bubbles.get().reverse(),
speed = settings.speed;
$(reversed[0]).stop().animate({ opacity: 1}, speed, function() {
$(reversed[1]).animate({ opacity: 1}, speed, function() {
$(reversed[2]).animate({ opacity: 1}, speed, function() {
$(reversed[3]).animate({ opacity: 1},speed);
});
});
});
},
unanimate = function() {
var bubbles = $(document).find('.bubble');
bubbles.stop().animate({opacity: 0});
},
shiftDiv = function( container ) {
var bubbleHolder = $(document).find('.bubble-holder'),
previousPosition = container.offset().left;
bubbleHolder.css('left', previousPosition);
};
return this.each( function() {
var $this = $(this),
container = getBubbleDiv( $this );
$this.on('mouseenter', animate );
$this.on('mouseout', unanimate );
$(window).on('resize', shiftDiv.bind(this, $this) );
return $this.parent().prepend(container);
});
};
})(jQuery);

图片 3

promise是三个异步编制程序的架空,它是贰个再次回到值或抛出exception的代办对象,一般promise对象都有贰个then方法,那个then方法是大家什么获取再次回到值(成功落到实处承诺的结果值,称为fulfillment)或抛出exception(拒绝承诺的说辞,称为rejection),then是用七个可选的回调作为参数,大家得以称之为onFulfilled和OnRejected:

以上给大家分享了js气泡效果的关键步骤,代码轻易易懂,就没给写过多的文字表达,大家有问号接待给自家留言,小编会及时过来大家的,在此作者也特别多谢我们对剧本之家网站的协助!

操纵台出口了“hello, nodejs.”

var promise = doSomethingAync()
promise.then(onFulfilled, onRejected)

您大概感兴趣的篇章:

  • D3.js实现散点图和气泡图的措施详解
  • javascript贯彻很性感的血泡冒出特效
  • JavaScript兑现鼠标滑过处生成气泡的法子
  • js由下向上不断升腾冒气泡效果实例
  • Jquery插件分享之气泡形提醒控件grumble.js
  • JS CSS达成二个卵泡提醒框
  • jquery.cvtooltip.js 基于jquery的气泡提醒插件
  • js 模拟气泡屏保效率代码
  • 利用JS实现气泡跟随鼠标移动的卡通片效果

1.2、web版的helloworld

当以此promise被解决了,也正是异步进度做到后,onFulfilled和OnRejected中任何二个将被调用,

在Node.js工程目录中新建贰个http.js,代码如下

故此,五个promise有上边七个区别景况:

var http = require("http");
http.createServer(function(request, response) {
 response.writeHead(200, {"Content-Type": "text/html"});
 response.write("Hello World!");
 response.end();
}).listen(8000);

■pending待承诺 - promise早先状态
■fulfilled完成承诺 - 一个承诺成功促成动静
■rejected拒绝承诺 - 叁个答应退步的意况

在命令行中运维服务,敲 node http.js

以读取文件为案例,下边是选择回调达成读取文件后应该做怎么样职业(输出打字与印刷):

图片 4

readFile(function (err, data) {

 if (err) return console.error(err)

 console.log(data)

})

然后张开浏览器地址栏输入 World! 就马到功成了。

倘若大家的readFile函数重返一个promise,那么大家得以如下完结平等的逻辑(输出打字与印刷):

图片 5

var promise = readFile()
promise.then(console.log, console.error)

node.js的本子一定和API同步

此间大家有了贰个值promise代表的是异步操作,大家能够一直传递这一个值promise,任何人访谈这些值都能够利用then来花费应用它,无论那一个值代表的异步操作是不是到位或未有达成,大家也能确认保障异步的结果不会转移,因为那一个promise代表的异步操作只会实行一回,状态是还是fulfilled要么是rejected。

node.js的版本号有规律,偶数版本为协和版本,奇数版本非稳定版本

理解Promise

2 HelloWorld代码分析

Promise可能是分歧于平日直觉,为了掌握它,一些主要规律无法不记牢: .then()总是回到一个新的promise.,如上边代码:

好啊,从明天早先逐行深入分析大家的HelloWorld。

var promise = readFile()
var promise2 = promise.then(readAnotherFile, console.error)

引进模块

此地then的参数readAnotherFile, console.error是代表异步操作成功后的动作onFulfilled或倒闭后的动作OnRejected,相当于说,读取文件成功后推行readAnotherFile函数,不然退步打字与印刷记录错误。这种实现是多个中只有一种大概。

var http = require("http");

本文由m.lom599.com发布于手机版乐白家网址,转载请注明出处:纯JS代码实现气泡效果,入门手上

关键词: m.lom599.com

上一篇:浅析JS异步加载进度条,深入理解js
下一篇:没有了