saber 酱的抱枕

Fly me to the moon

05/19
2016
学习

js做的元素不间断来回移动的效果

今天用js做了个元素移动的效果,支持水平、垂直方向上的单次移动和来回移动,支持斜向运动(斜向运动时自带反弹效果 哈哈)。

假设这个元素是我们想要移动的:

<img id="moveE" src="http://www.saber.我爱你/wp-content/uploads/2014/07/1_b.gif">

它可以是图片,也可以是其他元素。可以定义css样式,这个没关系。

js代码如下:

function move_on(element,far,to,cishu,time) {
	var add=(to%2==1)?true:false;
	var num=(to<3)?((element.style.marginLeft==="")?0:parseInt(element.style.marginLeft)):((element.style.marginTop==="")?0:parseInt(element.style.marginTop));
	var max=(to%2==1)?(num+far):num;
	var min=(to%2==1)?num:(num+far);
	var time=setInterval(function  () {
	    if(add){
	        num++;
	        (to<3)?(element.style.marginLeft=num+"px"):(element.style.marginTop=num+"px");
	        if(num>=max){
	            add=false;
	            cishu--;
	            if(cishu==0){clearInterval(time)}
	        }
	    }else{
	        num--;
	        (to<3)?(element.style.marginLeft=num+"px"):(element.style.marginTop=num+"px");
	        if(num<=min){
	            add=true;
	            cishu--;
	            if(cishu==0){clearInterval(time)}
	        }
	    }
	},time);
}

(代码挺短的吧~三元操作符真是个好东西啊

参数解释:

要移动的元素、移动多少像素、移动类型、移动次数、定时器执行间隔时间(毫秒)
移动类型规定如下:
1 左右来回移动,起始点是从左向右
2 左右来回移动,起始点是从右向左
3 上下来回移动,起始点是从上向下
4 上下来回移动,起始点是从下向上
移动次数定义如下:
为0时为无限制来回移动,否则定义为多少则移动多少次。注意,一次单向运动算1次,一次来回运动算2次。

可能看的有点迷,没关系,接下来我一个个上例子。
Read More →

js做的元素不间断来回移动的效果

07/2
2015
游戏

元素终于万攻了


前两天把65浅蓝法杖+16带上之后,攻击只有9100多,换上65浅蓝套也才9200多点。后来把下三件首饰都换成了魔攻3.9的史诗,攻击到了10176。攻击破万,可以说到了一个新的层次,现在的副本里,基本无往而不利了。不过没有大师和成套的灵魂,PK的话属性不行,只能刷图打怪。
三个首饰分别是2.8E、3.3E、3.8E收的,现在金币比例是1:28。如果以后再收套灵魂的话估计差不多也要300。现在还没打算收。
现在遗憾的是两个戒指都是+3的,高一点会更好。然后身上可以打魔石的地方再打上魔石。

元素终于万攻了

05/3
2015
学习

js判断某元素是否存在

	var divA=document.getElementById("a");
	if (!!divA) {
		alert("存在此元素")
	}else{
		alert("此元素不存在!")
	};

非常简单,先获取这个元素,然后进行判断。我以前以为获取一个不存在的元素就会报错,原来把这个元素保存到变量里的时候,即使该元素不存在,也不会报错。如果是在语句的执行中需要对此元素进行操作,这时候找不到才会报错。
if条件里加了两个!!,其实不加也可以,加了的话在语法上更严谨,因为这两个感叹号的作用是把该变量转换为布尔值。

js判断某元素是否存在

09/10
2014
学习

使用js创建页面元素的函数

    <div id="a"  style="background:#DAE0F1;">
        <p id="b">bbbbbbbbbbbbbbbbb</p>
    </div>
	<script type="text/javascript">
        function createE (tagName,id,className,style,innerHTML,addway,parentId,reforeId) {
            var newElement=document.createElement(tagName);
            newElement.id=id;
            newElement.className=className;
            newElement.style.cssText=style;
            newElement.innerHTML=innerHTML;
            if (addway=='end') {
                if (parentId=='body') {
                    document.body.appendChild(newElement);
                }else{
                    document.getElementById(parentId).appendChild(newElement);
                }
            }
            if(addway=='before'){
                 if (parentId=='body') {
                    document.body.insertBefore(newElement,document.getElementById(reforeId));
                 }else{
                    document.getElementById(parentId).insertBefore(newElement,document.getElementById(reforeId));
                }
            }
        }
        createE('div','aa','link','font-size: 30px;','追加在a的末尾','end','a','');
        createE('h1','','','font-size: 30px;','插入在a中的b之前','before','a','b');
        createE('h1','c','','font-size: 30px;','追加在body末尾','end','body','');
        createE('h1','d','','font-size: 30px;','插入在body中的a之前','before','body','a');
	</script>

输出如下:
使用js创建页面元素
今天写了个使用js创建页面元素的函数,如果有多个元素需要使用js来创建的话,倒还是可以方便一些的。函数参数如下:
元素的标签名,元素的id,元素的class名,元素的内部样式,元素的内部代码,追加方式(填写“end”或者“before”),追加到的父元素的id,父元素中子元素的id(仅当追加方式为before时填写)。
如果追加方式为end,则使用appendChild()方法追加到父元素内;如果追加方式为before,则使用insertBefore()方法插入到父元素内某个子元素之前。
考虑到body是创建元素时常用的一个节点,如果把父元素的id填写为“body”则会按body来处理。

使用js创建页面元素的函数