iTakeo

javascript放大镜效果.

一款简单的放大镜效果,有三种不同的样式,支持移动端;具体看下面的演示效果。

  1. //前面是ID或者Class,后面有init里面参数分别有1,2,3代表三种不同的效果:  
  2. zoom(‘#item’).init();  //这里写0,或者不写都可以,默认0  
  3. zoom(‘#item’).init(1);  //效果2  
  4. zoom(‘#item’).init(2);  //效果3  
  5.   
  6. //另外还有一个参数,就是选择器后面写上true的话,就是给所有选择的元素添加放大镜效果,不写的话只有第一个有  
  7. zoom(‘#item’,true).init();   

样式就通过css来定义,没有写进js里面。

(更多…)

2015/08/18 1 / /
标签:  暂无标签

javascript打字机效果.

一款简单的打字机效果。

注意:字符串换行使用‘\n’

  1. //字符串    
  2. var str = ‘hello\nworld !’;    
  3. //基本调用    
  4. print(‘.printCon’).init(str);    
  5. print(‘.printCon’).init(‘hello world’);    
  6. //带参数调用    
  7. print(‘.printCon’).init({    
  8.     data : str, //字符串    
  9.     speed : 100, //速度    
  10.     cursor  : true//是否显示光标    
  11.     curcon : ‘_’,  //自定义光标样式  
  12.     line : false,  //换行的时候是否显示序号    
  13.     hide : false,  //结束的时候是否隐藏光标  
  14.     end : function(){} //结束时的回调函数  
  15. });    

(更多…)

2015/08/17 4 / /
标签:  暂无标签

随手记:css3卡片翻转…

css3 卡片翻转效果。主要通过rotateY把一面翻转到背面,然后通过backface-visibility:hidden,背面隐藏。

  1. .box div{  
  2.         height200px;width:300px;  
  3.         positionabsoluteleft0pxtop0px;  
  4.         backface-visibility:hidden;  
  5.         transition-duration: 0.4s;  
  6. }  
  1. .box div:first-child{  
  2.         backgroundred;  
  3.         transform:rotateY(0deg);  
  4. }  
  5. .box div:last-child{  
  6.         backgroundgreen;  
  7.         transform:rotateY(-180deg);  
  8. }  

通过点击的时候,把另一面在隐藏。

  1. .box.turn div:first-child{  
  2.         transform:rotateY(180deg);  
  3. }  
  4. .box.turn div:last-child{  
  5.         transform:rotateY(0deg);  
  6. }  

(更多…)

2015/08/12 0 / /
标签:  暂无标签

随机排序抽奖…

这个是昨天晚上看电视里面有个抽奖效果,看起来觉得有点意思,就自己写了下,暂时就叫他随机排序抽奖吧。其实原理也没啥,就是随机修改位置,点击的时候,覆盖css就可以了,具体看下面的演示:

(更多…)

2015/07/15 0 /
未分类
/
标签:  暂无标签

图片懒加载(按需加载)…

图片懒加载,也可以叫做按需加载,它是对网页性能优化的一种方案,达到节省资源,加快浏览速度的目的。各大网站都使用这个技术,例如谷歌的图片搜索页,天猫,淘宝,京东等。

其实原理也很简单,就是判断图片是否在可视区内。首先给图片的src设置一个loading图片,或者一个1像素的透明图片,然后设置一个自定义属性,比如_src,或者使用data-src,如果页面滚动的时候,图片达到可视区内的话,就把自定义属性_src赋值给src。下面就简单的介绍一下基本的代码实现过程。

下面是dom结构

//设置图片的data属性为真实地址,src可以是一张透明图片。  
<img src="images/1x1.png" data-src="images/p.jpg"> 
01.
02.

下面是js代码

//函数调用,可以不传参数  
lazy.init()  
//也可以带参数,参数为容器的ID或者class  
lazy.init('#wrap');  
lazy.init('.wrap'); 
01.
02.
03.
04.
05.
var lazy = {  
    //初始化函数  
    init : function(){  
        //判断需要根据哪个容器来懒加载图片,如果没有参数,则是根据document  
        var _ele = document.querySelector(arguments[0]) || document;  
        //获取容器里面所有的图片  
        var _img = _ele.querySelectorAll('img'),_this = this;  
        //初始执行一次  
        this.set(_img);  
        //给window绑定scroll事件  
        this.addEvent(window,'scroll',function(){  
            _this.set(_img)  
        });  
        //给window绑定resize事件  
        this.addEvent(window,'resize',function(){  
            _this.set(_img)  
        });  
    },  
    //设置图片  
    set : function(_img){  
        //获取可视区的高度  
        var _h = document.documentElement.clientHeight;  
        //然后循环img  
        for (var i=0;i<_img.length;i++) {  
            //判断是否出现
            if(!_img[i].off && (_img[i].getBoundingClientRect().top) <  _h ){  
                 //设置src  
                _img[i].src = _img[i].getAttribute('data-src');  
                //删除自定义_src属性  
                _img[i].removeAttribute('data-src');  
                //设置一个开关,防止每次滚动都重新修改src  
                _img[i].off = true;  
            }  
        };  
    },  
    //绑定事件  
    addEvent : function (obj,types,fn){  
        obj.attachEvent ? obj.attachEvent('on'+types,fn) : obj.addEventListener(types,fn,false)  
    }  
} 
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.

(更多…)

2015/07/14 1 /
未分类
/
标签:  暂无标签

解决移动端输入法遮盖input输入框的问题…

大家在做移动端的时候,有没有遇到当有输入框在页面最下面的时候,点击input输入框会被输入法遮住了,这个在Android系统貌似没有这个bug,可能是我测试的机器不够多,在ios系统中,原生输入法貌似也不会引起这个问题,但是第三方的输入框肯定会这样。

点击这个链接查看有bug的demo

如果你点击了上面的demo,会发现最下面的input输入框在获得焦点的时候,会被输入法遮盖住了。

其实解决这个很简单,网上大都使用fixed定位到顶部,是可以解决,但是下面的内容会暴露出来,虽然通过嵌套一层能解决,而且脱离文档流,可能有样式问题,无疑又麻烦了,所以个人不太喜欢这个方法,我是通过给body添加scrollTop,把input的位置挪到最上面就可以了。可以看下面的图片。

(更多…)

2015/07/13 2 /
未分类
/
标签:  暂无标签

js对输入文字个数的限制…

发表留言或者微博的时候,对输入文字个数的限制,下面分两种情况,每种分别介绍两种实现方式:

第一种:一个汉字算一位,两个字母或符号算一位。

通过ASCII编码来判断

  1. textarea.onkeyup = function(){  
  2.     //[^\x00-\xff]即ASCII编码不在0-255的字符,也就是汉子了,先把所有汉子换成任意两个字符,最后除以2,得到一个字符  
  3.     var n = 150- Math.floor(this.value.replace(/[^\x00-\xff]/g,“aa”).length/2)  
  4.     span.innerHTML = n <=0 ? 0 : n;   
  5. };  

(更多…)

2015/07/13 2 / /
标签:  暂无标签

js对DOM节点的操作整理…

js对DOM节点的操作整理…

获取节点:

  1. //按照ID获取  
  2. document.getElementById(‘element’);    
  3. //按照节点名称获取,返回类数组对象   
  4. document.getElementsByTagName(‘element’);   
  5. //按照name名称获取,返回类数组对象  
  6. document.getElementsByName(‘element’);    
  7. // 按照className获取,返回类数组对象,IE7及以下并不支持;     
  8. document.getElementsByClassName(‘className’)    
  9. //html5提供的新接口,类似jq的选择器,可以使用层叠关系,多选,返回值为第一个元素  
  10. document.querySelector(‘.element’)  //根据class  
  11. document.querySelector(‘#element’)  //根据id  
  12. document.querySelector(‘#element .div’)  //层叠关系  
  13. document.querySelector(‘.div,.div2’)  //多选  
  14. document.querySelector(“div.test > p:first-child”);  //子选择器  
  15. document.querySelector(“div.test + p”);  //兄弟选择器  
  16. document.querySelector(“div[type=qq]”)   //属性选择器;  
  17. //使用方法同上,也是html5提供的新接口,这个返回类数组对象     
  18. document.querySelectorAll(‘.element’)  

(更多…)

2015/07/13 1 / /
标签:  暂无标签

js对数组对象的操作…

1、定义数组,有三种定义方式:

方式一:

  1. var arr=new Array();  
  2. arr[0]=“11”;  
  3. arr[1]=“22”;  
  4. arr[2]=“33”;  

方式二:

  1. var arr=new Array(“11”,“22”,“33”);  

方式三:

  1. var arr=[“11”,“22”,“33”];  

2、数组的length属性,可以获取数组的长度,也可以截取,清空数组,如果设置的值比其当前值小,数组将被截断,其尾部的元素将丢失。如果设置的值比它的当前值大,数组的长度将增大,新的元素被添加到数组的尾部,它们的值为 undefined:

  1. var arr=[“11″,”22″,”33”];    
  2. arr.length    //3,返回数组的长度    
  3. arr.length = 2   //[’11’,’22’],截取数组前2个    
  4. arr.length = 5   //[’11’,’22’,undefined,undefined,undefined],自动添加undefined    
  5. arr.length = 0  //[],清空数组   

(更多…)

2015/07/11 1 /
未分类
/
标签:  暂无标签

HTML5拖放(Drag 和 drop)…

首先,为了使元素可拖动,需要给元素添加draggable的 属性,并且设置为 true :

  1. <div draggable=“true”></div>  

当元素拖动时,会发生以下几个事件,虽然跟鼠标的mousedown,mousemove和mouseup类似,但是也有区别:

  1. ondragstart //拖拽开始  
  2. ondrag        //拖拽持续  
  3. ondragend  //拖拽结束  

(更多…)

2015/07/11 2 / /
标签:  暂无标签
9/10
1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
回到顶部