js代码

JS实现帧动画

假如想象 提交于 2019-12-17 13:00:54
JS实现帧动画的原理 如果有多张帧图片,用一个image标签去承载图片,然后定时改变image的src属性(不推荐,相当于请求了多张图片,会发送多个http请求) 把所有动画关键帧绘制在一张图片里,把图片作为元素的backgroud-image,定时改变元素的background-position属性(推荐,只有一个http请求) 因为项目的要求,轮播图的第一张需要用n张图片实现一款动画,我这里用到的是第一种方法。。 首先思考一下,要实现动画必定要用到定时器了,既然有n张图那么一要用到for循环了。下面我要说说我在for循环和定时器上踩过的坑。 下面是html: <img src="" class="part1_pic_01_1" id="Jdove"/> 下面是js: var storyboard = ["1_00000.png", "1_00001.png", "1_00002.png", "1_00003.png", "1_00004.png", "1_00005.png", "1_00006.png", "1_00007.png", "1_00008.png", "1_00009.png", "1_00010.png", "1_00011.png", "1_00012.png", "1_00013.png", "1_00014.png", "1_00015.png", "1

sparkStreaming的transformation和action详解

倾然丶 夕夏残阳落幕 提交于 2019-12-17 11:41:56
根据Spark官方文档中的描述,在Spark Streaming应用中,一个DStream对象可以调用多种操作,主要分为以下几类 Transformations Window Operations Join Operations Output Operations 一、Transformations 1、map(func)   map操作需要传入一个函数当做参数,具体调用形式为 [] 纯文本查看 复制代码 ? 1 val b = a.map(func)   主要作用是,对DStream对象a,将func函数作用到a中的每一个元素上并生成新的元素,得到的DStream对象b中包含这些新的元素。   下面示例代码的作用是,在接收到的一行消息后面拼接一个”_NEW”字符串 [Scala] 纯文本查看 复制代码 ? 1 val linesNew = lines.map(lines = > lines + "_NEW" )   程序运行结果如下: <ignore_js_op>   注意与接下来的flatMap操作进行比较。 2、flatMap(func)   类似于上面的map操作,具体调用形式为 [Scala] 纯文本查看 复制代码 ? 1 val b = a.flatMap(func)   主要作用是,对DStream对象a,将func函数作用到a中的每一个元素上并生成0个或多个新的元素

深入理解JS函数中this指针的指向

走远了吗. 提交于 2019-12-17 11:10:41
函数在执行时,会在函数体内部自动生成一个this指针。谁 直接调用 产生这个this指针的函数 ,this就指向谁。 怎么理解指向呢,我认为指向就是等于。例如直接在js中输入下面的等式: console.log(this===window);//true 情况不同,this指向的对象也不同。例如: 1. 函数声明的情况 var bj=10; function add(){ var bj=20; console.log(this);//window console.log(this.bj);//10 console.log(bj);//20 console.log(this.bj+bj);//30 } add(); window.add(); (1) 执行了add()之后,此时的this指向的是window对象,为什么呢?因为这时候add是全局函数,是通过window 直接调用 的。所以下面我专门写了个window.add()就是为了说明,全局函数的this都是指向的window。 (2) 就像alert()自带的警告弹窗一样,window.alert()执行之后也是一样的效果。所以只要是 window点 这种调用方式都可以省略掉,因此警告弹窗可以直接使用alert()。 2. 函数表达式 var bj=10; var zjj=function(){ var bj=30;

原生JS封装运动框架

喜你入骨 提交于 2019-12-17 09:53:15
昨天我们说了一下原生JS中常用的兼容性写法,今天我们来说一下运动框架. 正常情况下我们要写一个运动的效果会用到tween.js这么一个插件,这个东西不是一般人写出来的,因为里面涉及的运动效果都是经过一堆数学的函数运算出来的,我们平常人是写不出来的,所有我们就自己封装一个运动框架,有什么问题改起来也方便,下面我们就开始封装. 首先,我们先写一个div,设置一些简单的样式,我们就拿这个div举例子,如下代码: #div{   width: 100px;   height: 100px;   background: gold;   position: absolute;   left:0;   top:0;   opacity: 1; } 然后我们就开始写js代码了,如下: window.onload=function() {   var oDiv = document.getElementById("div");   var timer; 写一个函数,方便以后用的时候直接调用就好了,首先先传入几个参(要运动的对象,变动的属性,终点距离,运动总时间,回调函数)----今天的只是简单的封装一下,你也写可以传入一个json   function move(obj,name, target, dur,fn) { // 总步数=总时间÷计时器设定的时间   var count =

JS实现点击下载

大城市里の小女人 提交于 2019-12-17 08:43:30
JS实现点击下载 作者: 罗刚 文章来源:本站原创 点击数: 790 更新时间:2010-7-20 下面告诉大家一个可以通过点击实现图片或者其他文件下载的JS 在模板中加入以下代码: <a href="xx.xx" id=pic1 onclick="savepic();return false;" style="cursor:hand">点击下载</a> <script> function savepic() { if(document.all.a1==null) { objIframe=document.createElement("IFRAME"); document.body.insertBefore(objIframe); objIframe.outerHTML= "<iframe name=a1 style='width:0;hieght:0' src="+pic1.href+"></iframe>"; re=setTimeout("savepic()",1) } else { clearTimeout(re) pic = window.open(pic1.href,"a1") pic.document.execCommand("SaveAs") document.all.a1.removeNode(true) } } </script> 注: href="xx.xx"

dwr学习(一):简单dwr实例

自作多情 提交于 2019-12-17 08:11:37
博客分类: dwr 最近写ajax写烦了,想着能不能有个更简单的“ajax”,一问就问到这个dwr了。赶紧去官网学习了下,这里写个博客记录一下实例。 测试环境:tomcat6.0 1、新建一个web项目 (这里比较简单,我就不赘述了),我这里的是TestWeb。 2、安装dwr。 主要用到两个jar包。 一个是dwr.jar:这个是dwr的主要文件,可以去官网下载。 下载链接: http://directwebremoting.org/dwr/downloads/index.html 。 另一个是commons-logging.jar,这个jar包比较常用,那个版本的都没问题。我这里用的是commons-logging-1.0.4.jar。 将commons-logging-1.0.4.jar和dwr.jar拷贝到TestWeb项目的/WEB-INF/lib目录下。 至此安装完毕。 3、将dwr用到的servlet配置到web.xml中。 Xml代码 < servlet > < display-name >DWR Servlet </ display-name > < servlet-name >dwr-invoker </ servlet-name > < servlet-class >org.directwebremoting.servlet.DwrServlet </

js数据类型

允我心安 提交于 2019-12-17 05:58:01
1.js数据类型 六大类,5个基本数据类型,1个复杂类型(对象类型,引用类型) 5个基本数据类型:Number,String,Boolean,null,undefined 复杂类型Object(object,function,array) 1.1 number //1.Number var n1 = 10; var n2 = 5.5; //typeof:检测变量数据类型 console.log(typeof (n1)); //number console.log(typeof n2);// number var n3 = 057; //0开头,并且没有超过8的数,8进制 console.log(n3); //47 var n4 = 0x11; //0x开头,十六进制 0-9 a b c d e f console.log(n4);//17 var n5 = NaN; //not a number 不是一个数字 console.log(10*“a”);//NaN 运算发生错误的时候会得到一个NaN console.log(NaN==NaN); //false //有些小数在运算的过程中,可以会出现偏差,小数不要做为判断条件 console.log(0.1+0.2); //0.30000000000000004 console.log(0.1+0.2 == 0.3); //false

灵活运用JS开发技巧

妖精的绣舞 提交于 2019-12-17 05:54:20
作者: JowayYoung 仓库: Github 博客: 掘金 、 思否 、 知乎 、 简书 、 头条 、 CSDN 公众号: Uzero 联系我:关注公众号后有我的 微信 哟 特别声明:未经授权不得对此文章进行转载或抄袭,否则通过法律途径进行解决,如需转载或开通公众号白名单可联系我,希望各位尊重原创的知识产权 系列 灵活运用CSS开发技巧 请戳这里,持续更新 灵活运用JS开发技巧 请戳这里,持续更新 灵活运用PS切图技巧 请戳这里,持续更新 前言 何为技巧,意指表现在文学、工艺、体育等方面的巧妙技能。代码作为一门现代高级工艺,推动着人类科学技术的发展,同时犹如文字一样承托着人类文化的进步。 每写好一篇文章,都会使用大量的写作技巧。 烘托、渲染、悬念、铺垫、照应、伏笔、联想、想象、抑扬结合、点面结合、动静结合、叙议结合、情景交融、首尾呼应、衬托对比、白描细描、比喻象征、借古讽今、卒章显志、承上启下、开门见山、动静相衬、虚实相生、实写虚写、托物寓意、咏物抒情 等,这些应该都是我们从小到大写文章而接触到的写作技巧。 作为程序猿的我们,写代码同样也需要大量的写作技巧。一份良好的代码能让人耳目一新,让人容易理解,让人舒服自然,同时也让自己成就感满满(哈哈,这个才是重点)。因此,我整理下三年来自己使用到的一些 JS开发技巧 ,希望能让你写出耳目一新、容易理解、舒服自然的代码。

JS 粘贴展示图片并读取图片

你离开我真会死。 提交于 2019-12-17 05:33:45
主要是通过给div绑定粘贴事件 div.addEventListener('paste', function(){}) 粘贴事件 核心代码 (最下面有完整代码) const div = document.getElementById("div") const img = document.getElementById("img") div.addEventListener('paste', handlepaste) function handlepaste(e) { // 粘贴对象 if (e.clipboardData || e.originalEvent) { const clipboardData = (event.clipboardData || event.originalEvent.clipboardData); if (clipboardData.items) { let blob; for (let i = 0; i < clipboardData.items.length; i++) { if (clipboardData.items[i].type.indexOf('image') !== -1) { blob = clipboardData.items[i].getAsFile(); } } // 粘贴数据 console.log(blob, 'blob')

js中数组遍历for与for in区别(强烈建议不要使用for in遍历数组)

笑着哭i 提交于 2019-12-17 05:30:35
转自: http://www.cnblogs.com/javaee6/p/4142270.html?utm_source=tuicool&utm_medium=referral js中遍历数组的有两种方式 1 2 3 4 5 6 7 8 9 var array=[ 'a' ] //标准的for循环 for (var i= 1 ;i<array.length;i++){ alert(array[i]) } //foreach循环 for (var i in array){ alert(array[i]) } 正常情况下上面两种遍历数组的方式结果一样。首先说两者的第一个区别 标准的for循环中的i是number类型,表示的是数组的下标,但是foreach循环中的i表示的是数组的key是string类型,因为js中一切皆为对象。自己试试 alert(typeof i);这个区别是小问题。现在我加上如下代码,上面的执行结果就不一样了。 1 2 3 4 //扩展了js原生的Array Array.prototype.test=function() } 试试看上面的代码执行什么。我们发现标准的for循环任然真正的对数组循环, 但是此时foreach循环对我刚才写的test方法写打印出来了。这就是for与foreach遍历数组的最大区别,如果我们在项目采用的是用foreach遍历数组